Jump to content

SQL Abfragen zum Datenexport - csv Import


Luca01

Recommended Posts

Hallo Foris, :)

beim Wechsel von der 1.5 zu 1.6 habe ich vor den csv Import zu nutzen. Ich möchte gerne alle für mich relevanten Daten (Kategorie, Produkte, Varianten - im Prinizip alles was man über die Importfunktion regulär importieren kann) in eine neue Datenbank importieren. Es könnte nämlich sein, dass einige Probleme in der Datenstruktur über die Versionen hinweg fortgeschrieben sind z.B. Fehler in den nested sets oder auffällig viele Redundanzen in den Configurationstabellen. Ich lebe nun gerade in der Hoffnung, dass ich nicht alle sql selber schreiben muß. Vielleicht hat ja jemand schon sql's für diesen Zweck geschrieben. Vielleicht können wir auch tauschen? Gerne gegen pm.

Viele Grüße

Edited by Luca01 (see edit history)
Link to comment
Share on other sites

Hallo Foris,

ich futter mal ein bischen an  :)  und stelle einen sql ein mit dem man eine csv-Datei für den Kategorieimport erhält.

select c.id_category as ID, c.active as Active, c.name as Name, d.name as 'Parent category',
 c.is_root_category as 'Root category', c.description as Description, c.meta_title as 'Meta title',
c.meta_keywords as 'Meta keywords', c.meta_description as 'Meta description', c.link_rewrite as 'URL rewritten',
CONCAT('http://www.mydomain.de/img/c/',c.id_category,'.jpg') as 'Image URL'
   FROM
(SELECT a.id_category, a.active, b.name, a.id_parent,
a.is_root_category, b.description, b.meta_title,
b.meta_keywords, b.meta_description, b.link_rewrite
 FROM ps_category as a INNER JOIN
ps_category_lang as b on a.id_category = b.id_category) as c INNER JOIN
  ps_category_lang as d ON c.id_parent =  d.id_category  ORDER  BY c.id_parent

Viele Grüße

 

ps: Bei der Verwendung des sql ist wichtig, dass man die Hauptkategorien 0 und 1 aus der csv Datei löscht. Ansonsten kann es Schwierigkeiten mit dem Lauf geben.

Edited by Luca01 (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Hallo Foris,

mittlerweile habe ich alle für den sql-Import der Prestashopschnittstelle möglichen Export sql's fertig. Also zunächst für die Artikel/Produkte:

SELECT a.id_product, a.active, b.name, c.categories, a.price, a.id_tax_rules_group, a.wholesale_price, a.reference, a.supplier_reference, d.name, e.name, a.ean13,
      a.upc, a.ecotax, a.width, a.height, a.depth, a.weight, f.quantity, a.minimal_quantity, a.visibility, a.additional_shipping_cost, a.unity, a.unit_price_ratio,
      b.description_short, b.description, g.tags, b.meta_title, b.meta_keywords, b.meta_description, b.link_rewrite, b.available_now, b.available_later, a.available_for_order,
      a.available_date, a.date_add, a.show_price, h.bild, 1 as bilder_loschen, a.online_only, a.condition, a.customizable, a.uploadable_files, a.text_fields, a.out_of_stock,
      b.id_shop
    FROM ps_product as a
    left outer join ps_product_lang as b on a.id_product = b.id_product
    left outer join (SELECT ps_category_product.id_product, GROUP_CONCAT(ps_category_lang.name) as categories
                        FROM ps_category_product
                        left outer join ps_category_lang on ps_category_product.id_category = ps_category_lang.id_category GROUP BY ps_category_product.id_product) as c
                     on a.id_product = c.id_product
    left outer join ps_supplier as d on a.id_supplier = d.id_supplier
    left outer join ps_manufacturer as e on a.id_manufacturer = e.id_manufacturer
    left outer join (SELECT *
                        FROM ps_stock_available where id_product_attribute = 0) as f
                    on a.id_product = f.id_product
    left outer join (SELECT ps_product_tag.id_product, GROUP_CONCAT(ps_tag.name) as tags
                        FROM ps_product_tag
                        left outer join ps_tag on ps_product_tag.id_tag = ps_tag.id_tag GROUP BY ps_product_tag.id_product) as g
                    on a.id_product = g.id_product
    left outer join  (SELECT ps_image.id_product, GROUP_CONCAT('http://www.meinedomain.de/img/p/',(CASE
		                          WHEN LENGTH(ps_image.id_image)=1 THEN substr(ps_image.id_image,1,1)
		                              ELSE (CASE
		                                  WHEN LENGTH(ps_image.id_image)=2 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1))
		                                  ELSE (CASE
		                                  WHEN LENGTH(ps_image.id_image)=3 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1))
		                                  ELSE (CASE
		                                      WHEN LENGTH(ps_image.id_image)=4 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1))
		                                      ELSE CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1),'/',substr(ps_image.id_image,5,1))
		                                  END)
		                          END)
		                      END)
		              END),'/',ps_image.id_image, '.jpg') AS bild
                        FROM ps_image GROUP BY ps_image.id_product) as h
                    on a.id_product = h.id_product

Hier ist einmal wichtig, dass die Schnittstelle das Attribut /default_categorie/ nicht unterstützt, was für das Alter der Schnittstelle spricht. Das Attribut muß also mit Hilfe eines update nachgepflegt werden. Zusätzlich unterstützt die Schnittstelle die meisten Stammdaten wie die Steuerkonfiguration nicht. Stammdaten müssen also auch nachgepflegt werden. Nichts desto trotz ist der Artikelimport hilfreich.

Edited by Luca01 (see edit history)
  • Like 2
Link to comment
Share on other sites

Hallo Foris,

so jetzt wird es wieder einfach. Der Kundenimport ist ein einfacher, aber feiner sql.

SELECT a.id_customer, a.active, a.id_gender, a.email, a.passwd, a.birthday, a.lastname, a.firstname, a.newsletter,
a.optin, b.gruppen

    FROM ps_customer as a
    LEFT OUTER JOIN (SELECT ps_customer_group.id_customer, GROUP_CONCAT(ps_group_lang.name) as gruppen
                        FROM ps_customer_group
                        left outer join ps_group_lang on ps_customer_group.id_group = ps_group_lang.id_group
                        GROUP BY ps_customer_group.id_customer) as b ON a.id_customer = b.id_customer
  • Like 1
Link to comment
Share on other sites

Hallo Forst,

hier ist der Adressen-export der eine csv-Datei für den Adressenimport erstellt.

SELECT a.id_address, a.alias, a.active, b.email, a.id_customer, c.name, d.name, a.company, a.lastname, a.firstname,
a.address1, a.address2, a.postcode, a.city, e.name, f.name, a.other, a.phone, a.phone_mobile, a.vat_number
    FROM ps_address AS a
    LEFT OUTER JOIN ps_customer AS b ON a.id_customer = b.id_customer
    LEFT OUTER JOIN ps_manufacturer AS c ON a.id_manufacturer = c.id_manufacturer
    LEFT OUTER JOIN ps_supplier AS d ON a.id_supplier = d.id_supplier
    LEFT OUTER JOIN ps_country_lang AS e ON a.id_country = e.id_country
    LEFT OUTER JOIN ps_state AS f ON a.id_state = f.id_state
  • Like 1
Link to comment
Share on other sites

Hallo Foris,
zum Import der Produkte gehört auch der Import der Produktvarianten. Der Export zielt auf jeweils ein Auswahlfeld oder Farbfeld für die betroffenen Produkte. Wer mehr hat, muß die Abfrage aufbohren.

SELECT a.id_product, CONCAT(e.name,':',d.group_type,':',d.position) as 'Name:Anzeigetyp:Anzeige-Position',
CONCAT(f.name,':',c.position) as 'Wert: Position', a.supplier_reference, a.reference, a.ean13, a.upc, a.wholesale_price,
a.price, a.ecotax, g.quantity, a.minimal_quantity, a.weight, a.default_on, i.position, h.bild, 1 as bilder_loschen
    FROM `ps_product_attribute` as a
    LEFT OUTER JOIN ps_product_attribute_combination as b ON a.id_product_attribute = b.id_product_attribute
    LEFT OUTER JOIN ps_attribute as c ON b.id_attribute = c.id_attribute
    LEFT OUTER JOIN ps_attribute_group as d ON c.id_attribute_group = d.id_attribute_group
    LEFT OUTER JOIN ps_attribute_group_lang as e ON d.id_attribute_group = e.id_attribute_group
    LEFT OUTER JOIN ps_attribute_lang as f ON c.id_attribute = f.id_attribute
    LEFT OUTER JOIN ps_stock_available as g ON a.id_product_attribute = g.id_product_attribute
    LEFT OUTER JOIN  (SELECT ps_product_attribute_image.id_product_attribute, ps_product_attribute_image.id_image,
                                    CONCAT('http://www.meinedomain.de/img/p/',(CASE
		                          WHEN LENGTH(ps_product_attribute_image.id_image)=1 THEN substr(ps_product_attribute_image.id_image,1,1)
		                              ELSE (CASE
		                                  WHEN LENGTH(ps_product_attribute_image.id_image)=2 THEN CONCAT(substr(ps_product_attribute_image.id_image,1,1),'/',substr(ps_product_attribute_image.id_image,2,1))
		                                  ELSE (CASE
		                                  WHEN LENGTH(ps_product_attribute_image.id_image)=3 THEN CONCAT(substr(ps_product_attribute_image.id_image,1,1),'/',substr(ps_product_attribute_image.id_image,2,1),'/',substr(ps_product_attribute_image.id_image,3,1))
		                                  ELSE (CASE
		                                      WHEN LENGTH(ps_product_attribute_image.id_image)=4 THEN CONCAT(substr(ps_product_attribute_image.id_image,1,1),'/',substr(ps_product_attribute_image.id_image,2,1),'/',substr(ps_product_attribute_image.id_image,3,1),'/',substr(ps_product_attribute_image.id_image,4,1))
		                                      ELSE CONCAT(substr(ps_product_attribute_image.id_image,1,1),'/',substr(ps_product_attribute_image.id_image,2,1),'/',substr(ps_product_attribute_image.id_image,3,1),'/',substr(ps_product_attribute_image.id_image,4,1),'/',substr(ps_product_attribute_image.id_image,5,1))
		                                  END)
		                          END)
		                      END)
		              END),'/',ps_product_attribute_image.id_image, '.jpg') AS bild
                        FROM ps_product_attribute_image) as h ON a.id_product_attribute = h.id_product_attribute
    Left OUTER Join ps_image as i ON h.id_image = i.id_image
                        WHERE CONCAT(e.name,':',d.group_type,':',d.position)IS NOT NULL
Edited by Luca01 (see edit history)
  • Like 1
Link to comment
Share on other sites

Hallo Foris,

so, nun stelle ich hier noch die zwei Abfragen für Hersteller und Lieferanten ein. Im Prinzip sind beide gleich. Mit diesen Abfragen sind alle csv-Import-Schnittstellen der 1.6 Version bedient. Wie schon geschrieben muß man einige Stammdaten direkt über die Datenbank einpflegen. Hier wären mehr Schemata schön, um auch dieses Datenfeld über die Schnittstelle bedienen zu können

SELECT a.id_manufacturer, a.active, b.description, b.short_description, b.meta_title, b.meta_keywords,
b.meta_description, CONCAT('http://www.meinedomain.de/img/m/',b.id_manufacturer,'.jpg') as 'Image URL'
    FROM ps_manufacturer AS a
    LEFT OUTER JOIN ps_manufacturer_lang AS b ON a.id_manufacturer = b.id_manufacturer
SELECT a.id_supplier, a.active, a.name, b.meta_title, b.meta_keywords,
b.meta_description, CONCAT('http://www.meinedomain.de/img/su/',a.id_supplier,'.jpg') as 'Image URL'
    FROM ps_supplier AS a
    LEFT OUTER JOIN ps_supplier_lang AS b ON a.id_supplier = b.id_supplier
Edited by Luca01 (see edit history)
  • Like 1
Link to comment
Share on other sites

Hallo Luca,

 

genial - vielen Dank fürs Teilen!

 

[OFF TOPIC]

Es wird mal wieder deutlich, dass hier im Deutschen Forum definitiv eine Rubrik fehlt, in der solche Beiträge sinnvoll gesammelt werden können. So etwas wie "Development" oder "Snippets" oder "Bastelecke" ,,, - ich werde mal versuchen da was anzuschieben.

Falls ihr zu dem Thema noch Ideen habt, bitte PN an mich,

 

Grüsse

Whiley

  • Like 1
Link to comment
Share on other sites

Hallo Whiley,

danke für Deine Rückmeldung.  :)  Ich bin mir nicht so sicher, ob das Teilen einen Sinn gemacht hat. Es interessiert sich scheinbar keiner für den Datenexport und Import in die neue Version. :unsure: Wobei ich das nicht verstehen kann. Bei dem Datenmüll, der bei uns seit dem Wechsel von 1.3 bis 1.5 entstanden ist, und auch der Statistik, ohne Reset- bzw. Komprimierungsfunktion ist es m.E. nur eine Frage das Zeit bis die Datenbank crasht oder der Shop langsam wird. Das müßte ja gerade kleine und mittelgroße Shopbetreiber ohne großes Serverpotential interessieren. Mit dem Import der wichtigen Shopdaten kann man quasi einen neuen Shop aufsetzen und den Kundenstamm mitnehmen.

Die kryptischen Passworte habe ich noch nicht durchgetestet. Ich vermute aber mal, das wenn man die secure keys in den neuen Shop mit nimmt, dass dann auch die Passworte der Kunden wieder genutzt werden können. Mal sehen ...

Viele Grüße

Link to comment
Share on other sites

Es wird mal wieder deutlich, dass hier im Deutschen Forum definitiv eine Rubrik fehlt, in der solche Beiträge sinnvoll gesammelt werden können. So etwas wie "Development" oder "Snippets" oder "Bastelecke" ,,, - ich werde mal versuchen da was anzuschieben.

Na dann, viel Glück. Das hatten rumata und ich auch schon mal probiert. Mr Utterback lässt das nicht zu.

Edited by eleazar (see edit history)
Link to comment
Share on other sites

Hallo Luca,

 

Es interessiert sich scheinbar keiner für den Datenexport und Import in die neue Version.

Ich glaube, dass im Moment sich nur sehr Wenige an das Abenteuer "Update auf 1.6" heranwagen. Solange  kein Rechtssicherheits-Modul für Deutschland existiert wäre ein Update ja auch niemandem ernsthaft zu empfehlen.

Grundsätzlich sind deine Skripte ideal zum "entmüllen" der Datenbank geeignet und das vielleicht nicht nur beim Update auf die 1.6er Version! ;)

 

Grüsse

Whiley

 

 

Link to comment
Share on other sites

  • 4 weeks later...

Hallo Foris,

mittlerweile habe ich alle für den sql-Import der Prestashopschnittstelle möglichen Export sql's fertig. Also zunächst für die Artikel/Produkte:

SELECT a.id_product, a.active, b.name, c.categories, a.price, a.id_tax_rules_group, a.wholesale_price, a.reference, a.supplier_reference, d.name, e.name, a.ean13,
      a.upc, a.ecotax, a.width, a.height, a.depth, a.weight, f.quantity, a.minimal_quantity, a.visibility, a.additional_shipping_cost, a.unity, a.unit_price_ratio,
      b.description_short, b.description, g.tags, b.meta_title, b.meta_keywords, b.meta_description, b.link_rewrite, b.available_now, b.available_later, a.available_for_order,
      a.available_date, a.date_add, a.show_price, h.bild, 1 as bilder_loschen, a.online_only, a.condition, a.customizable, a.uploadable_files, a.text_fields, a.out_of_stock,
      b.id_shop
    FROM ps_product as a
    left outer join ps_product_lang as b on a.id_product = b.id_product
    left outer join (SELECT ps_category_product.id_product, GROUP_CONCAT(ps_category_lang.name) as categories
                        FROM ps_category_product
                        left outer join ps_category_lang on ps_category_product.id_category = ps_category_lang.id_category GROUP BY ps_category_product.id_product) as c
                     on a.id_product = c.id_product
    left outer join ps_supplier as d on a.id_supplier = d.id_supplier
    left outer join ps_manufacturer as e on a.id_manufacturer = e.id_manufacturer
    left outer join (SELECT *
                        FROM ps_stock_available where id_product_attribute = 0) as f
                    on a.id_product = f.id_product
    left outer join (SELECT ps_product_tag.id_product, GROUP_CONCAT(ps_tag.name) as tags
                        FROM ps_product_tag
                        left outer join ps_tag on ps_product_tag.id_tag = ps_tag.id_tag GROUP BY ps_product_tag.id_product) as g
                    on a.id_product = g.id_product
    left outer join  (SELECT ps_image.id_product, GROUP_CONCAT('http://www.meinedomain.de/img/p/',(CASE
		                          WHEN LENGTH(ps_image.id_image)=1 THEN substr(ps_image.id_image,1,1)
		                              ELSE (CASE
		                                  WHEN LENGTH(ps_image.id_image)=2 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1))
		                                  ELSE (CASE
		                                  WHEN LENGTH(ps_image.id_image)=3 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1))
		                                  ELSE (CASE
		                                      WHEN LENGTH(ps_image.id_image)=4 THEN CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1))
		                                      ELSE CONCAT(substr(ps_image.id_image,1,1),'/',substr(ps_image.id_image,2,1),'/',substr(ps_image.id_image,3,1),'/',substr(ps_image.id_image,4,1),'/',substr(ps_image.id_image,5,1))
		                                  END)
		                          END)
		                      END)
		              END),'/',ps_image.id_image, '.jpg') AS bild
                        FROM ps_image GROUP BY ps_image.id_product) as h
                    on a.id_product = h.id_product

Hier ist einmal wichtig, dass die Schnittstelle das Attribut /default_categorie/ nicht unterstützt, was für das Alter der Schnittstelle spricht. Das Attribut muß also mit Hilfe eines update nachgepflegt werden. Zusätzlich unterstützt die Schnittstelle die meisten Stammdaten wie die Steuerkonfiguration nicht. Stammdaten müssen also auch nachgepflegt werden. Nichts desto trotz ist der Artikelimport hilfreich.

hmm...ich erhalte da folgende fehlermeldung:

 

Die Tabelle "DEPENDENT-SUBQUERY" existiert nicht.

Link to comment
Share on other sites

Hallo dertypausz,

die sql-Abfragen sind z.B. für die phpmyadmin und nicht für den sql Manager von Prestashop.Whiley hatte das schon in einem vorherigen Post geschrieben. Es wurde hier schon festgestellt, dass der sql Manager diese Abfragen nicht verarbeiten kann weil er scheinbar nicht alle sql Codes interpretiert. :rolleyes:

Viele Grüße

Link to comment
Share on other sites

  • 6 months later...

 

Bei den Abfragen erhalte ich alles in 7-facher Ausfertigung. Also 7000 statt 1000 Produkte.

Ich vermute mal, das es an einen fehlenden where-Bedingung im sql liegt. Weil Deine Datenbank mehr oder anderen Inhalt in den Stammdaten hat. Genaueres könnte ich nur sagen, wenn ich einen Blick auf die Datenbank bzw. das Ergebnis hätte. :( Hast Du Ahnung von sql-Statments?

Link to comment
Share on other sites

Hallo zusammen,

 

mal eine Frage:

Wie zieht ihr denn die Bestellungen um?

 

Viele Grüße

 

Coyotee

 

Versuch es mal so:

SELECT d.id_order, os.name AS Status, d.product_name AS Produkt, d.product_price AS Preis, d.product_quantity AS Menge, d. product_weight AS Gewicht, o.payment AS Bezahlung, o.date_upd AS Datum, CONCAT_WS(' ', g.firstname, g.lastname) AS Kunde, gl.name AS Kundengruppe
    FROM ps_order_detail d
    LEFT JOIN ps_orders o ON (d.id_order= o.id_order)
    LEFT JOIN ps_customer g ON (o.id_customer = g.id_customer)
    LEFT JOIN ps_group_lang gl ON (g.id_default_group = gl.id_group)
    LEFT JOIN ps_order_state_lang os ON (o.current_state = os.id_order_state)
GROUP BY d.id_order

Und hier noch der Link für den Rechnungsexport, damit wir hier mal alles gebündelt haben: http://www.prestashop.com/forums/topic/374898-gel%C3%B6stauswertung-zur-den-rechnungen/?do=findComment&comment=1854640

  • Like 1
Link to comment
Share on other sites

Hallo,

wenn ein Update ansteht, habe ich in der Regel die Updatescripte von Prestashop über die Datenbank geschickt, die Datenbank mit dem mysqlDumper gesichert, Die Tabellen von Kategoriestruktur, Artikel, Kundendaten, Bestellungen usw. in einen neue Datenbank der neuen Version importiert und dann unser Theme angepasst. Fertig. :) Den Aufwand habe ich deswegen getrieben, weil manchmal die Struktur und die Speicherorte der Attribute in einer neuen Prestashopversion anders waren und bestimmte Inhalte plötzlich in anderen Tabellen gepflegt wurden (Versionswechsel 1.4 zu 1.5). Mit dem Import quasi "zu Fuß" habe ich dann die alten Daten an die neuen Orte geschrieben.

 

Inhalte für die es von Version 1.5 zu 1.6 keinen Import gibt habe ich in diesem Versionswechsel nicht importiert. War auch kein Problem weil Prestashop nicht unsere Buchhaltung ist. Der Hintergund ist, dass die Adressen beim Import zwingend eine neue id erhalten und der Import der Bestellungen bei uns die Datensatzinfo zerschossen hat.

Ich kann also von dem csv-Import der Adressen in Kombination mit dem Import der Bestellungen über phpmyadmin leidgeprüft nur abraten.

 

@eleazar

Versuch es mal so:

und wie importierst Du dann das Ergebnis dieses sql wieder in eine andere Datenbank? Ist mir ein Rätsel :unsure:

 

Viele Grüße

Edited by Luca01 (see edit history)
Link to comment
Share on other sites

Ein Rätsel ist das zwar nicht, aber ich würde es schon deswegen nicht machen, weil es viel zu umständlich wäre. Schließlich müssten ja gleich mehrere Datenbanktabellen geändert werden. Ich bevorzuge deine Lösung, zumal ja von 1.5 zu 1.6 ein einfacher Dump reicht, denn bis auf ein paar numerische Feldlängen wurde ja nichts geändert.

Link to comment
Share on other sites

Hallo Luca!

 

Das sind wirklich ein paar sehr hilfreiche Scripts. Habe den Shop mit 1.4 gestartet und würde beim Update auf 1.6 gerne frisch anfangen. Wichtig wäre mir nur der Import des Artikelbaums (ca 6000 Kategorien) und aller Artikel inkl. Varianten.

Was auch sehr wichtig wäre: Export und Import der Produktmerkmale. Hast du dazu auch ein SQL Script parat? :-)))

 

Und wenn ich das richtig verstanden habe wäre folgende Vorgehensweise die empfehlenswerteste:

 

1: Version 1.5 mit dem internen Updatescript (OneClick Update) auf 1.6 updaten

2: Die benötigten Tabellen mit deinen Scripts als cvs speichern.

3. Frischen 1.6 aufsetzen

4. Stammdaten und Einstellungen anpassen

5. Tabellen über phpmyadmin reimportieren.

 

Ist das in etwa richtig so?

Link to comment
Share on other sites

Hallo schibulski,

Und wenn ich das richtig verstanden habe wäre folgende Vorgehensweise die empfehlenswerteste:

Nein,die Scripte sind für den Import über den prestashopeigenen csv-Import. Das Ziel ist dabei, die Datenbankstruktur neu aufzubauen. Also z.B. den Kategoriebaum neu zu berechnen und/oder die Bilderstruktur neu einzulesen. Der Import über phpmyadmin läuft indem man die Tabellen der Datenbank nimmt und die relevanten Tabellen in die neue Datenbank einliest.

Viele Grüße

  • Like 1
Link to comment
Share on other sites

  • 6 months later...
  • 1 year later...

Hi alle,

habe gleiches Problem, der Export läuft super, jedoch alles in 7 facher Ausfertigung. Ich denke das wird an der language liegen, also irgend wie eine abfrage einbauen. z.B. WHERE lang = 1 oder ähnlich, weiss jedoch nicht wo das eingetragen werden muß.

Kann da einer helfen?

Danke schon mal

Gerd

Link to comment
Share on other sites

Welcher Export? Für Bestellungen kannst du diesen nehmen:

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`

https://www.prestashop.com/forums/topic/565992-bestellungen-exportieren-sql-manager-und-mit-excel-auswerten/

Link to comment
Share on other sites

Hallo Lausli,

danke für die schnelle Antwort, werde mir das erst mal wegspeichern, brauch ich später noch. Woran ich hänge ist die SQL Syntax für Join. der Export den ich fahren möchte ist der für Produkte. Fände das genial, gleiche Felder die der Importfilter benutzt auch für den Export zu benutzen. Zweck ist Datenpflege.

Also wenn du da einen Weg weißt, wäre toll ...

vg

Gerd

Link to comment
Share on other sites

Naja im besten Fall gibst du für die Datenpflege die 30€ aus und nimmst nen Addon. Damit exportierst du dann alle Produkte, Varianten, Kunden, Adresse und Bestellungen. Fertig. Dann hast du nicht 5 verschiedene SQL snippets.

 

Produkte kannst du so exportieren:

https://www.prestashop.com/forums/topic/143083-how-can-i-export-my-products-to-a-csv-file/

 

Oder hier:

https://www.prestashop.com/forums/topic/567172-von-prestashop-1619-zu-1700-testsystem-kein-produktiv-einsatz/

 

bzw > http://premiumpresta.com/blog/export-products-for-csv-import-prestashop-1-6/

 

Das sind dann alle Produkte. Die Reinfolge zwecks Import sollte stimmen. Sollte das nicht so sein, passt du das eben fix an.

Link to comment
Share on other sites

Hallo Lausli,

 

danke für die Hinweise, mit dem fix anpassen würde ich gerne den Export von Produkten (wie Luca01 beschrieben hat) anpassen, dann hätte ich alles was ich brauche (erst mal :-)).

die Addons arbeiten ja grundsätzlich auch mit ner SQL Abfrage, also finde ich den Weg von Luca01 schon optimal, direkt per PS SQL query oder myphpadmin den Import und Export zu organisieren.

Ansonsten werde ich mal weiter probieren und mich mit der SQL Join hin und her Syntax beschäftigen.

vg

Gerd

Link to comment
Share on other sites

joh, das stimmt, wie ich geschrieben habe funktioniert der export auch einwandfrei, bin glücklich damit.

Lediglich dass die exportierten Produkte 7 fach exportiert werde, nämlich für jede Sprache einmal.

Meine Frage bezog sich darauf, wie ich eine SQL Sequenz hinzufügen kann, die nur eine Sprache exportiert.

z.B. join tralala Where id_lang = 1

ich kriegs nur net hin, zu wenig Kenntnis von SQL und Join Jedöns.

 

vg

Gerd

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