REST API: Unit by id not found

Bin eben über ein neues Problem gestossen => Unit by id not found

Im normalen Export mit XML und per GET REST API wird die „unitId” als Zahl übergeben. Aber was passiert, wenn man in einem anderen Shop diese Daten wieder einspielen möchte und die ID dort gar nicht existiert? Zumindest kommt es zur Fehlermeldung und der Artikel wird nicht eingelesen :frowning:

Kann man nicht anstelle von „unitId” die Einheit als Wort übergeben, so dass diese ggf. ein einlesen automatisch angelegt wird, falls diese nicht vorhanden ist?

Wie macht ihr das an dieser Stelle?

Du legst sie im neuen Shop an und replaced den Inhalt der XML mit der neuen ID.

Ne, das ist keine Lösung. Abgesehen davon, lese ich die Daten per API aus Shop A aus und spiele sie per API in Shop B wieder ein. Das umschreiben in einer XML kann ich auch keinen normalen Kunden zumuten und war jetzt hier nur als Beispiel erwähnt.

Dann könntest du eigentlich Shop A und B die Einheiten vergleichen “s_core_units”. Also id  und unit  .

Wenn du sowieso eine XML generierst, kannst du zur unitID auch gleich die “unit” mitgeben

  • Wenn identisch, dann Artikel darf in Shop B mit der gleichen unitID
  • und wenn nicht identisch. dann lege in Shop B neue Einheit an und schreibe unitID des Artikels um auf diese neue unitID (EDIT: oder suche id wo unit gleich heisst)

und wenn nicht identisch. dann lege in Shop B neue Einheit an

Und wie machst du das per API? Du kannst über die API nichts abfragen, ob schon vorhnaden oder nicht. Du kannst auch keine neue ID anlegen. 

An dieser Stelle hat Shopware beim denken aufgehört. Es geht auch weniger um das Vergleichen, sondern viel mehr wenn es die ID im Shop noch gar nicht gibt. Bei configuratorSet mit seine Gruppen und Optionnen geht auch, nur bei den Maßeinheiten scheitert es. Was nutzt beim Export (egal ob XML oder API) eine ID zur Maßeinheit, wenn diese im neuen Shop eine völlig andere sein muss oder im schlimmsten Falle gar nicht existiert.

Was macht der Kunde, der von IDs, XML, API und/oder Datenbank gar keine Ahnung hat. Er steht da wie Max in der Sonne und kann seine Artikel nicht einspielen, weil der Import sofort blockiert wenn die ID nicht vorhanden ist.

Wie schon erwähnt, ich arbeite nur mit der API die bestimmte Produkte aus Shop A ausliest und im Shop B wieder einspielen muss.

Ich nutze die Api nur noch rudimentär und gehen hart auf MySQL (mit PHP).

Soweit klappt ja alles (fast vollautomatisch), bis nun auf diese blöde Maßeinheit.

Du könntest dir ein Backend API Plugin schreiben, was eine entsprechende XML Variante per REST API bereitstellt und einliest.