wir möchten einen Kategorie-Import unserer bestehenden Struktur in einen neuen Shopware 6 Shop realisieren.
Dieser Abgleich soll regelmäßig automatisch als Cron laufen und wir realisieren es deshalb über die REST API (Admin API).
Das hier ist der Request-Body von Shopware
wie man sieht, muss man sämtliche IDs als UUID angeben.
Aber wie macht man das bei einem initialen Import? Ich muss ja auch Parents angeben, kann ich aber ohne UUID nicht. Ich habe nur die IDs aus unserem System.
Muss ich erst jede Kategorie einzeln anlegen, damit ich eine UUID zurückbekomme, und mit dieser dann dem Parent zuordnen? Das halte ich für sehr umständlich…
Und was wäre dann bei einem Update der bestehenden Kategorien? Wie kann ich eine Kategorie eindeutig über die API identifizieren? Wäre super, wenn ich unsere System-ID dort irgendwo mit ablegen könnte…
Generiere von deinen bestehenden Daten eine ID indem du deren id mit MD5 hashst. Wenn du eine parentId brauchst gehst du wieder hin und hashst deine parentId mit MD5.
Solange alle Eltern zuerst angelegt werden ist das kein Problem.
Das ganze ist auch nützlich da du deine Produkt zu Kategorie Zuweisungen auf die selbe art und weise machen kannst.
Habe das selber so bei mir gemacht. Ich habe einfach meine IDs aus der Quelldatenbank gehasht. Dadurch kann ich ganz einfach Updates durchführen von alt zu neu.
ja hast Recht @tducc hab es jetzt auch so gemacht. Super Idee!
Hab zur Sicherheit an alle IDs noch den String “_import” gehängt vor dem Hashen. Damit die Wahrscheinlichkeit noch weiter sinkt, eine Kollission in Shopware zu erzeugen