Hallo, muss man wie bei JTL erst Optionen über die API anlegen und mit denen dann Varianten erzeugen? Weil in der Doku unter Varianten steht: Option hinzufügen und Option entfernen. Wenn ja, was passiert wenn in Variantennoch eine Option in Verwendung ist, die gelöscht wird?
Der Shop kennt keine Attribute und Eigenschaften mehr, sondern nur noch eine Sache, und das ist Optionen. Eine Option ist dann zum Beispiel eine Farbe und hat die Optionswerte rot, grün, blau. Erst nach dem allgemeinen anlegen einer Option weist man die in einem zweiten Schritt als Produktvariante (nahe an Eigenschaften) oder Produktzusatzoption (nahe an Attributen) zu. Wenn du so willst kannst du sagen das Anlegen einer Option legt immer gleichzeitig ein Attribut und eine Eigenschaft an. Die Antwort dürfte damit Ja lauten. Ich müsste den Code erst anstarren um zu sehen was wir dann genau machen, das weiss ich nicht aus dem Kopf.
Also erst mit GET (Link nur für registrierte Nutzer sichtbar.){productId}/options prüfen ob es die Option(en) schon gibt, z.B. TShirt: rot, gelb und Größe: M, L Wenn nein dann mit POST (Link nur für registrierte Nutzer sichtbar.){productId}/options eine anlegen, wenn wohl dann mit PATCH (Link nur für registrierte Nutzer sichtbar.){productId}/options die bestehende aktualisieren, dann mit GET (Link nur für registrierte Nutzer sichtbar.){productId}/variants prüfen, ob es die gewünschten Varianten aus kombinierten Optionen schon gibt, und wenn ja updaten mit PATCH (Link nur für registrierte Nutzer sichtbar.){productId}/variants und wenn nein eine anlegen mit POST (Link nur für registrierte Nutzer sichtbar.){productId}/variants Z.B. Größe S mit Farbe grün? Oder gibt es einen kürzeren Weg? Bei den Varianten greift man ja offenbar auf IDs zurück statt auf Werte. Was ist da die Empfehlung? Für jede Option nach Größe: M suchen um sich die ID ausgeben zu lassen, oder je eine mapping-Tabelle von option_id zu products_id und von option_ids zu varianten_id und von varianten_id zu products_id, oder wie ist das gedacht? Heißt das auch, dass wenn ich 100 verschiedene T-Shirts habe, die Option Größe: M auch 100x anlegen muss? Weil die Calls ja offenbar alle auf Produktebene stattfinden? Bisher konnte man ja ein und das selbe Attribut für viele Artikel verwenden, oder?
... Und gibt es eine Möglichkeit, in Cloud-Shop-Datenbanken Mapping-Tabellen zu führen, um den Synchronisationsstatus zu führen? Kann man die additional_fields Tabellen dafür missbrauchen, oder wie ist das gedacht?
@L & B Es gibt noch einen Endpunkt der ohne Artikelbezug ist, hier musst du erst die Optionen anlegen oder die ID dir raussuchen für welche du dann im Endpunkt für die Artikel die Zusatzoptionen oder Varianten hinzufügen willst. (Link nur für registrierte Nutzer sichtbar.) Also wäre der Ablauf wie folgt: GET (Link nur für registrierte Nutzer sichtbar.) GET (Link nur für registrierte Nutzer sichtbar.){optionId}/values Um die entsprechenden Optionen zu prüfen welche mit welchen Werten vorhanden sind. POST (Link nur für registrierte Nutzer sichtbar.) Um neue Optionen anzulegen z.B. "Farbe" POST (Link nur für registrierte Nutzer sichtbar.){optionId}/values Um einen neuen Wert anzulegen für die entsprechende Option z.B. "rot" Erst dann kommen deine Endpunkt für die Aritkel zum Einsatz um die dann vorhanden Optionen und Wert den Artikeln zuzuweisen. Einen Synchronisationsstatus musst du selber in deiner Schnittstelle speichern, dafür gibt es keine Endpunkte in der API, das ist die Aufgabe der Schnittstelle das in seiner eigenen Datenbank oder lokal als Datei zu speichern, welche Optionen und Werte bereits übertragen wurden. Das kann die API für dich nicht übernehmen und sollte nicht in der Datenbank des Shops gespeichert werden, denn das ist immer für jede Schnitstelle individuell und sollte streng gestrennt sein.
Also nochmal ganz genau, um nicht Arbeit umsonst zu machen: Eine Option grundsätzlich im System anlegen. Wenn ich die Option so nackt einem Produkt zuordne, ist es etwa das was mal ein Attribut war (z.B. Geschenkverpackung, kein eigenes Regalfach). Wenn ich die Option aber nicht als Option einem Produkt hinzufüge, sondern als Variante (z.B. T-Shirt Blau, eigenes Regalfach), dann ist es etwa das was mal eine Eigenschaft war. Also erstmal ist alles eine Option, aber je nachdem ob ich es als option oder als variante einem Produkt hinzufüge, unterscheidet es sich?