Jump to content

Bestelleradressen exportieren


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 | [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

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)
Link to comment
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)
Link to comment
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`

 

Link to comment
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...