Jump to content

Recommended Posts

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 | muster@muster.xx | 0049-00000 | 12345 | 5 | Testartikel 1
1 | ABCDEFGHI | Max Muster | Musterstr. 7 | 12345 Musterstadt | muster@muster.xx | 0049-00000 | 12347 | 1 | Testartikel 2
2 | FGTZFDRV | Tanja Muster | Musterstr. 99 | 12145 Musterstadt | xyzvbg@muster.xx | 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

Share this post


Link to post
Share on other sites

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)

  • Like 1

Share this post


Link to post
Share on other sites

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 by marcoispolo (see edit history)

Share this post


Link to post
Share on other sites
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 by Dp. (see edit history)

Share this post


Link to post
Share on other sites

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`

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More