REST API: Varianten und Optionen

Thema wurde von Anonymous, 19. Februar 2022 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.124
    Danke vergeben:
    947
    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?
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    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.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.124
    Danke vergeben:
    947
    #3 Anonymous, 19. Februar 2022
    Zuletzt bearbeitet: 19. Februar 2022
    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?
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.124
    Danke vergeben:
    947
    ... 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?
     
  5. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.761
    Danke erhalten:
    1.372
    Danke vergeben:
    305
    @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.
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.124
    Danke vergeben:
    947
    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?
     
  7. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    Kurz: Ja.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    22. September 2011
    Beiträge:
    904
    Danke erhalten:
    85
    Danke vergeben:
    136
    @L & B
    Kann es sein das du an einem JTL Connector arbeitest?