marcoispolo Posted September 4, 2020 Share Posted September 4, 2020 Hallo Zusammen, ich bin auf der Suche nach einem Modul mit dem ich Bestellungen und die dazugehörigen Adressen per CSV exportieren kann. Die Module von Presta habe ich mir bereits angesehen, werde aber da aus einigen Beschreibungen nicht schlau, da die Beispielbilder nicht das abbilden, was ich möchte. Vielleicht setzt ja jemand von euch bereits ein solches Modul ein und kann mir einen Tip geben, welches Modul tatsächlich für mich geeignet ist. Folgendes möchte ich exportiert haben: Exportauswahl entweder über Datum von bis oder per checkbox Exportiert werden soll dann die Bestell ID, die Prestashop typische Bestell ID / Nummer, Name, Adresse, Email, Telefon des Käufers, Artikelnummer, Menge, Artikelname Für jeden in der Bestellung vorkommenden Artikel soll dann eine Zeile in der CSV sein Beispiel Bestell Id | Bestellnummer | Kunde | Strasse | PLZ / Ort | Email | Telefon | Artikelnummer | Menge | Artikelname 1 | ABCDEFGHI | Max Muster | Musterstr. 7 | 12345 Musterstadt | [email protected] | 0049-00000 | 12345 | 5 | Testartikel 1 1 | ABCDEFGHI | Max Muster | Musterstr. 7 | 12345 Musterstadt | [email protected] | 0049-00000 | 12347 | 1 | Testartikel 2 2 | FGTZFDRV | Tanja Muster | Musterstr. 99 | 12145 Musterstadt | [email protected] | 0049-00000 | 12885 | 1 | Testartikel 7 Falls möglich wäre auch eine Trennung von PLZ und Ort toll. Alternativ kann ich mich auch mit einer SQL Abfrage und anschließendem CSV Export anfreunden; aber leider kann ich nicht wirklich programmieren und meine Versuche eine Abfrage für diese Zwecke hinzubekommen sind kläglich gescheitert Link to comment Share on other sites More sharing options...
JBW Posted September 4, 2020 Share Posted September 4, 2020 Dafür brauchst du nix kaufen. Exportiere deine Bestellansicht in den SQL Manager und passe dann dort die Felder an (geht auch mit Click & Choose) 1 Link to comment Share on other sites More sharing options...
Dp. Posted September 4, 2020 Share Posted September 4, 2020 Die Tabellen deiner Wahl sind dabei ps_orders, ps_order_detail, ps_customer und ps_address. Natürlich mit dem bei dir genutzten Präfix. Link to comment Share on other sites More sharing options...
marcoispolo Posted September 4, 2020 Author Share Posted September 4, 2020 (edited) Das mit dem SQL Manager hatte ich schon probiert, da komme ich irgendwie nicht klar mit, bzw. ich bekomme nicht das Ergebnis was ich brauche. Hiermit bin ich schon ein Stückchen weiter: SELECT o.`id_order` AS `ID`, o.`reference` AS `Bestellnummer`, ROUND(o.`total_products_wt`,2) AS Gesamtpreis, p.`wholesale_price` AS `Einkaufspreis`, cu.`name` AS `Währung`, c.`date_upd` AS `Datum`, c.`firstname` AS `Vorname`, c.`lastname` AS `Nachname`, ad.`address1` AS ` Empfängeradresse 1`, ad.`address2` AS ` Empfängeradresse 2`, ad.`postcode` AS `PLZ`, ad.`city` AS `Stadt`, st.`name` AS `Bundesland`, co.`name` AS `Land`, cou.`iso_code` AS `Landesvorwahl`, c.`email` AS `Kundenemail`, ad.`phone_mobile` AS `Kunde Handynummer`, p.`reference` AS `Artikel SKU`, d.`product_quantity` AS `Produkt-Menge`, o.`payment` AS `Zahlart` FROM ps_orders o LEFT JOIN `ps_order_detail` d ON (o.id_order = d.id_order) LEFT JOIN `ps_customer` c ON (o.id_customer = c.id_customer) LEFT JOIN `ps_address` ad ON(o.`id_customer`=ad.`id_customer`) LEFT JOIN `ps_state` st ON(ad.`id_state`=st.`id_state`) LEFT JOIN `ps_country_lang` co ON(ad.`id_country`=co.`id_country`) LEFT JOIN `ps_country` cou ON(ad.`id_country`=cou.`id_country`) LEFT JOIN `ps_product` p ON(d.`product_id`=p.`id_product`) LEFT JOIN `ps_currency` cu ON(o.`id_currency`=cu.`id_currency`) WHERE o.`valid` = 1 GROUP BY o.id_order,d.id_order_detail ORDER BY o.`id_order` Allerdings bekomme ich den Artikelnamen nicht da rein. Kann mir da jemand helfen? UND es werden ALLE Bestellungen exportiert ; gibt es vielleicht eine Möglichkeit das einzuschränken? Edited September 4, 2020 by marcoispolo (see edit history) Link to comment Share on other sites More sharing options...
marcoispolo Posted September 4, 2020 Author Share Posted September 4, 2020 Kann mir vielleicht jemand helfen, den Artikel noch in der SQL Abfrage unterzubringen? Link to comment Share on other sites More sharing options...
Dp. Posted September 8, 2020 Share Posted September 8, 2020 (edited) On 9/4/2020 at 4:42 PM, marcoispolo said: Allerdings bekomme ich den Artikelnamen nicht da rein. Kann mir da jemand helfen? UND es werden ALLE Bestellungen exportiert ; gibt es vielleicht eine Möglichkeit das einzuschränken? 1) ps_order_detail hast du ja als d schon gejoined. Also musst du nur noch d.`product_name` AS `Artikel`, an die gewünschte Stelle packen. 2) z.B. durch Erweiterung deiner WHERE clause: WHERE o.`valid` = 1 AND o.`date_add` between '2020-07-01' and '2020-12-31' Du holst das Datum gerade aus der Kunden-Datenbank und siehst also, wann das Kundenkonto zuletzt geupdated wurde. Ich glaube, du willst eher das Bestelldatum, oder? o.`date_add` AS `Bestelldatum`, Edited September 8, 2020 by Dp. (see edit history) Link to comment Share on other sites More sharing options...
marcoispolo Posted September 8, 2020 Author Share Posted September 8, 2020 Hi, vielen Dank für die Hilfe. Also den Artikel habe ich schonmal drin; nur mit dem Datum komme ich nicht zurecht. Link to comment Share on other sites More sharing options...
Dp. Posted September 8, 2020 Share Posted September 8, 2020 Es sollte eigentlich klappen, wenn du deine dritt-letzte Zeile mit der aktuellen WHERE clause durch die o.g. ersetzt. Also: SELECT o.`id_order` AS `ID`, o.`reference` AS `Bestellnummer`, ROUND(o.`total_products_wt`,2) AS Gesamtpreis, p.`wholesale_price` AS `Einkaufspreis`, cu.`name` AS `Währung`, c.`date_upd` AS `Datum`, c.`firstname` AS `Vorname`, c.`lastname` AS `Nachname`, ad.`address1` AS ` Empfängeradresse 1`, ad.`address2` AS ` Empfängeradresse 2`, ad.`postcode` AS `PLZ`, ad.`city` AS `Stadt`, st.`name` AS `Bundesland`, co.`name` AS `Land`, cou.`iso_code` AS `Landesvorwahl`, c.`email` AS `Kundenemail`, ad.`phone_mobile` AS `Kunde Handynummer`, p.`reference` AS `Artikel SKU`, d.`product_name` AS `Artikel`, d.`product_quantity` AS `Produkt-Menge`, o.`payment` AS `Zahlart` FROM ps_orders o LEFT JOIN `ps_order_detail` d ON (o.id_order = d.id_order) LEFT JOIN `ps_customer` c ON (o.id_customer = c.id_customer) LEFT JOIN `ps_address` ad ON(o.`id_customer`=ad.`id_customer`) LEFT JOIN `ps_state` st ON(ad.`id_state`=st.`id_state`) LEFT JOIN `ps_country_lang` co ON(ad.`id_country`=co.`id_country`) LEFT JOIN `ps_country` cou ON(ad.`id_country`=cou.`id_country`) LEFT JOIN `ps_product` p ON(d.`product_id`=p.`id_product`) LEFT JOIN `ps_currency` cu ON(o.`id_currency`=cu.`id_currency`) WHERE o.`valid` = 1 AND o.`date_add` between '2020-07-01' and '2020-12-31' GROUP BY o.id_order,d.id_order_detail ORDER BY o.`id_order` Link to comment Share on other sites More sharing options...
marcoispolo Posted September 8, 2020 Author Share Posted September 8, 2020 Jaaa , so klappt es ; vielen Dank. Hatte ein Komma zuviel gesetzt und dadurch eine Fehlermeldung bekommen. Mensch Klasse , tausend Dank. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now