Hallo.
Als Shopware6 Neuling habe ich ein Frage zum Produkt-Export:
Wir möchten gerne unsere Produkte (und Varianten) exportieren und zwar so, dass in der Tabelle nicht die UUIDs der Eigenschaften stehen, sondern der Name der Eigenschaftsausprägung.
Zum Beispiel statt der UUID der Eigenschaft der passende Wert „S“, „XL“.
Kompliziert wird es natürlich bei mehreren Eigenschaften, z.B. „grün“ und „XL“.
Aber die generelle Frage: Kann ich beim Export irgendwie an diese Felder ran, und wenn ja, wie heißt der passende Datenbankeintrag.
ich beschäftige mich auch erst seit wenigen Monaten mit Shopware 6. Mit dem Import/Export von Produkten musste ich mich schon etwas auseinandersetzen. Die gegebenen Möglichkeiten sind leider etwas enttäuschend, wie ich finde.
Man kann zwar im Admin-Bereich unter „Einstellungen → Import/Export“ eigene Profile anlegen, diese beziehen sich aber immer nur auf einen „Objekt-Typ“ (letzten Endes DB-Tabellen). Man bräuchte hier aber zwei „Produkt“ und „Eigenschaften“.
Deswegen scheidet dieser Punkt aus (soweit mir bekannt ist).
Um an die Daten (für einen Export) ranzukommen kann man entweder selbst ein Script schreiben, das direkt auf die DB-Tabellen
product,
product_translation (Titel),
property_group_option_translation (Eigenschaftsausprägung, die tatsächlichen Werte),
property_group_translation (Eigenschaft, die Bezeichnung),
property_group_option (Zuweisung Eigenschaft → Eigenschaftsausprägung)
zugreift. Mittlerer Kopfschmerz- und Frickelfaktor. Oder …
Die API benutzen, was über kurz oder lang eher sinnvoll erscheint, zumindest für mich
Der Admin API Endpunkt (zur Produktsuche „/product“) ist:
http://<shop_url>/api/search/product
Bei dieser API kann man dann, über Assoziationen (-> b. associations) auf Daten aus anderen Tabellen (Eigenschaften) zugreifen
Der Request Body sollte in etwa so wie unterhalb aussehen, das gibt dir dann ein Array mit allen Produkt-Objekten zurück.
Unter einem einzelnen Produkt hast du dann unter „properties“ ein Array mit allen Eigenschaftsausprägungen (sind einzelne Objekte), z.B. „grün“ oder „XL“.
data[0]->product-object->properties[0]->property_group_option-object->name → „grün“
Die Eigenschaft(sbezeichnung) z.B. „Größe“ wäre innerhalb eines einzelnen Eingeschaftsobjekts unter „group“ zu finden.
data[0]->product-object->properties[0]->property_group_option-object->group->property_group-object->name → „Farbe“
Den Kommentar unterhalb „// Eigenschaftsausprägung Id, Name (Wert), group (unter key „group“) → Eigenschaft Id, Name“ bitte entfernen, falls das benutzt wird *