Neu eigene CSV für Kampagne erstellen

MB Survival

Aktives Mitglied
12. Januar 2021
4
3
Hallo liebe Forengemeinde,
ich beabsichtige kurzfristig auf den JTL Shop 5 umzusteigen, benötige aber dringend Hilfe bei einer Sache.
Ich brauche eine CSV, die mir aus einer selbstdefinierten Kampagne (refID=XXX) die Anahl der Klicks und alle Bestellungen ausliest.
Der Aufbau sollte so gestaltet sein:

Besucher: XXX (alle Besucher mit diese refID)

Artikelnummer Menge Artikel Gesamtpreis Netto
12345 1 Testartikel 1 80,90
22222 5 Testartikel 2 9,29
22156 2 Testartikel 2 161,81
...

Das Affiliate Modul läuft nicht im 5er Shop und bei WebStollen klappt es zeitlich nicht zu helfen.
Kann mir jemand weiterhelfen und mir sagen, welche Dateien in die CSV includiert werden müssen, um die Daten aus den entsprechenden Tabellen zu bekommen?

Vielen Dank und herzliche Grüße
Martin
 

hula1499

Sehr aktives Mitglied
22. Juni 2011
5.401
1.325
Leider kann ich zu deiner Frage nichts beitragen, aber hast du dich umgeschaut, wegen alternativen zum Webstollen-Affiliate-Plugin?

Wir möchten auch "bald" umstellen, aber das Affiliate soll ja - laut eigener Roadmap - erst Ende Q2 verfügbar sein.
 

MB Survival

Aktives Mitglied
12. Januar 2021
4
3
Hab mir was zurecht "gebastelt". Vielleicht nicht schön, funktioniert aber... Bei Interesse einfach mal anrufen - 030 81473698
 

MB Survival

Aktives Mitglied
12. Januar 2021
4
3
Hier nachfolgen der Code... Wie gesagt vielleicht nicht schön, aber funktioniert bei mir...
Den Code einfach mit einem Texteditor (z.B. Notepad) als Datei (mit Endung ".php") speichern und in den Shoproot laden.

Code:
<?php

require("includes/config.JTL-Shop.ini.php");

/*##########################################################################*/

$Table = "twarenkorbpos";
$Table1 = "tbestellung";
$Table2 = "tkampagnevorgang";
$Table3 = "tartikel";
$campain = "4"; //hier die eigene Kampagnennummer eintragen!

/*##########################################################################*/

// Wenn die CSV nicht gleich in einem Texteditor oder Excel geöffnet werden soll, dann diese 4 Zeilen auskommentieren!
header('Content-Type: text/x-csv');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: attachment; filename=newsletter.csv');
header('Pragma: no-cache');

/*##########################################################################*/

/*Verbindung zur Datenbank aufnehmen*/
$conn = mysqli_connect( DB_HOST, DB_USER, DB_PASS, DB_NAME );
    if( !$conn ) {
        echo "Couldn't connect to database!<BR>";
    }


/*Anzahl der Klicks zählen und ausgeben*/   
$query_tvp = "SELECT count(*) as total from ".$Table2." WHERE kKampagneDef = 1";
    if ($result_tvp = $conn->query("$query_tvp")) {
    /* determine number of rows result set */
        $total_tvp = $result_tvp->fetch_row();
        $total_tvp = $total_tvp['0'];
        /* close result set */
        $result_tvp->close();
    }

echo "Besucher:;$total_tvp"."\r\n";



/*Tabellen und Spalten für Bestellungen aus der Kampagne auswählen*/
$ResultPointer = mysqli_query($conn, "SELECT distinct
                                             w.cArtNr,
                                             w.kArtikel,
                                             w.nAnzahl,
                                             w.cName,
                                             w.fPreisEinzelNetto,
                                             w.fPreis,
                                             w.kWarenkorb,
                                             w.kVersandklasse,
                                             b.dErstellt,
                                             b.kWarenkorb,
                                             b.kBestellung,
                                             b.cBestellNr,
                                             k.kKey,
                                             k.kKampagne,
                                             b.cStatus,
                                             a.kArtikel,
                                             a.kHersteller                                             
                                        FROM ".$Table." w
                                   LEFT JOIN ".$Table1." b
                                          ON b.kWarenkorb = w.kWarenkorb
                                   LEFT JOIN ".$Table2." k
                                          ON k.kKey = b.kBestellung                                             
                                   LEFT JOIN ".$Table3." a
                                          ON a.kArtikel = w.kArtikel                                             
                                       WHERE k.kKampagne = ".$campain."
                                         AND w.kVersandklasse != 0
                                         AND b.cStatus != -1
                                    ORDER BY b.cBestellNr DESC");


/*Kopfzeile ausgeben*/
echo "Datum;Artikelnummer;Anzahl;Artikel;Einzelpreis Netto;Gesamtpreis Netto;Hersteller"."\r\n";


for($i=0, $Export=""; $i<mysqli_num_rows($ResultPointer); $i++)
{
        $Daten = mysqli_fetch_object($ResultPointer);

        $timestamp = strtotime(str_replace("\"", "\"\"", $Daten->dErstellt));
        $Spalte[] = date('d.m.Y', $timestamp);
        $Spalte[] = str_replace("\"", "\"\"", $Daten->cArtNr);
        $anzahl = str_replace("\"", "\"\"", $Daten->nAnzahl);
        $anzahl = round($anzahl, 0);
        $Spalte[] = $anzahl;
        $Spalte[] = str_replace("\"", "\"\"", $Daten->cName);
        $price = str_replace("\"", "\"\"", $Daten->fPreisEinzelNetto);
        $price = round($price, 2);       
        $Spalte[] = number_format($price, 2, ',', '.') . "€";
        $gprice = str_replace("\"", "\"\"", $Daten->nAnzahl) * str_replace("\"", "\"\"", $Daten->fPreisEinzelNetto);
        $gprice = round($gprice, 2);       
        $Spalte[] = number_format($gprice, 2, ',', '.') . "€";
        $Spalte[] = str_replace("\"", "\"\"", $Daten->kHersteller);

        for($j=0; $j<count($Spalte); $j++)
        {
                $Export .= "\"" . $Spalte[$j] . "\"";
                if($j!=count($Spalte)-1)
                {
                        $Export .= ";";
                }
        }
        $Export .= "\r\n";
        $Spalte = array ();
}

echo $Export;

?>
 

hula1499

Sehr aktives Mitglied
22. Juni 2011
5.401
1.325
Danke @MB Survival fürs zur VErfügung stellen an die Community, top!

Hilft mir pers. leider wenig, ich muss das auf der Seite für unsere Affiliates anzeigen lassen, alles andre (exports etc) würde die nur heillos überfordern 😀
 

Ähnliche Themen