REST-API: "lastStock" korrekt setzen bei Aktualisierung?

Hallo,

Wir haben Probleme mit dem „lastStock“-Feld bei Artikelupdates. Wir möchten die Funktionalität per REST-API für einzelne Artikel aktivieren und deaktivieren können. Nun ist es so:

  • Wenn wir das lastStock-Feld auf Artikelebene (nicht mainDetail!) befüllen, wird der Haken in der Artikelmaske korrekt gesetzt, allerdings hat es erstmal keine Auswirkungen auf die Darstellung im Frontend. Erst, wenn der Artikel nochmal in Shopware gespeichert wird.
  • Wenn wir das lastStock-Feld auf Variantenebene befüllen, hat es zwar die gewünschte Auswirkung im Backend, aber - weil der Artikel kein Variantenartikel ist - wird der Haken im Backend nicht gesetzt.

Die Frage ist jetzt: Wie macht man es denn per API korrekterweise? Setze ich den Haken pro Variante, funktioniert es ja bei nicht-Varianten im Frontend, aber nicht im Backend (weil man ja nicht auf den Varianten-Tab kommt). Setze ich den Haken auf Artikelebene, sind alle Varianten betroffen.

Welches Feld muss ich denn nun verwenden, damit für Einzelartikel der Einzelartikel, für Variantenartikel aber die einzelne Variante betroffen ist und der Haken im Backend korrekt gesetzt ist?

Setze ich den Haken auf Artikelebene, sind alle Varianten betroffen.

meines Wissens ist dies nicht der Fall. Ich würde denken, am besten lastStock für Main und für Detail setzen, auch wenn es ein Artikel ohne Varianten ist.

Ja, aber wenn es eine Variante ist, dann würde ich damit ja das Flag auch für die “Hauptvariante” setzen, oder?

Mein aktueller Ansatz sieht jetzt so aus:

  • Ich hole mir die Daten zur Variante und zum Artikel
  • Wenn der ArticleDetailId gleich dem MainDetailId ist, dann ist es entweder die Hauptvariante oder ein Einzelartikel und ich setze es, wie Du gesagt hast. Ansonsten nur für die Variante

Aber das habe ich noch nicht fertig. Ich melde mich nochmal mit dem Ergebnis des Tests.

Ja, aber wenn es eine Variante ist, dann würde ich damit ja das Flag auch für die „Hauptvariante“ setzen, oder?

Ja, so muss es aber gemacht werden.

Ich glaube das „Problem“ ist, dass die Hauptvariante lastStock an 2 Stellen hat. In s_articles und in s_articles_details.

Hm, wenn ich mir aber einen Artikel anschaue, der Varianten hat, dann sehe ich bei den Variantenoptionen ebenfalls einen Haken „last stock“. Somit muss ich doch die Unterscheidung, ob ich das für den Artikel oder die Variante setze auf der Basis machen, ob es sich bei der SKU um eine Variante oder den Artikel selbst handelt, oder nicht?

Shopware kennt keine klassischen Parents. Ein Child fungiert gleichzeitig als Parent. Im Backend gibt es tw. Felder die sich deswegen gegenseitig überschreiben.

Ich weiß - aber das ist hier nicht der Fall. Setze ich für eine Variante den Abverkauf-Haken, hat dies keinen Einfluss auf den Haken “im Artikel”. Und ungekehrt.

@altenbrand schrieb:

Ich weiß - aber das ist hier nicht der Fall. Setze ich für eine Variante den Abverkauf-Haken, hat dies keinen Einfluss auf den Haken „im Artikel“. Und ungekehrt.

wenn es die Hauptvariante ist, ist es dann ein inkonsistenter Zustand. S. mein Kommentar von vor 2 Stunden.

ist es dann ein inkonsistenter Zustand

… den ich gerade ausschließlich über die Web-Oberfläche herstellen kann? Komisch. Wenn ich das über das API gemacht hätte, dann würde ich das ja einsehen, aber ich kann das im Backend von Shopware so machen.

  • Artikel mit Varianten auswählen
  • Sicherstellen, dass unter „Stammdaten“ der Haken bei „Abverkauf“ nicht gesetzt ist
  • andere Variante im Reiter „Varianten“ öffnen
  • Haken bei „Abverkauf“ setzen und Speichern
  • Artikel neu aus Übersicht öffnen
  • Siehe da: Haken ist in Stammdaten nicht gesetzt, wohl aber bei der Variante

Gegenversuch:

  • Artikel mit Varianten öffnen
  • Haken „Abverkauf“ in Stammdaten setzen und speichern
  • Artikel neu aus Übersicht öffnen
  • Andere Variante in Reiter „Varianten“ öffnen
  • Ergebnis 1: Haken ist bei Variante nicht gesetzt
  • Ergebnis 2: Haken ist bei Standardauswahl-Variante gesetzt
  • Haken bei Standardauswahl-Variante löschen und speichern
  • Artikel neu aus Übersicht öffnen
  • Ergebnis: Haken ist bei allen Varianten raus, bei Stammdaten aber noch drin

Sehr übersichtlich, das Ganze…

Setze ich für eine Variante den Abverkauf-Haken, hat dies keinen Einfluss auf den Haken „im Artikel“. Und ungekehrt.

Hm, ich weiß nicht wo das Problem jetzt ist. Meiner Meinung ist das auch völlig korrekt. Der Abverkauf muss auch auf einzelne Varianten gültig sein, unabhängig vom jeweiligen Stammartikel der nicht zwangläufrig selber eine Variante darstellen muss. Bedeutet also bei der REST API, ja das Feld „laststock” wird beim Stammartikel und bei den Varianten gesetzt. Fertig :-) 

@altenbrand schrieb:

ist es dann ein inkonsistenter Zustand

… den ich gerade ausschließlich über die Web-Oberfläche herstellen kann? Komisch. Wenn ich das über das API gemacht hätte, dann würde ich das ja einsehen, aber ich kann das im Backend von Shopware so machen.

  • Artikel mit Varianten auswählen
  • Sicherstellen, dass unter „Stammdaten“ der Haken bei „Abverkauf“ nicht gesetzt ist
  • andere Variante im Reiter „Varianten“ öffnen
  • Haken bei „Abverkauf“ setzen und Speichern
  • Artikel neu aus Übersicht öffnen
  • Siehe da: Haken ist in Stammdaten nicht gesetzt, wohl aber bei der Variante

Gegenversuch:

  • Artikel mit Varianten öffnen
  • Haken „Abverkauf“ in Stammdaten setzen und speichern
  • Artikel neu aus Übersicht öffnen
  • Andere Variante in Reiter „Varianten“ öffnen
  • Ergebnis 1: Haken ist bei Variante nicht gesetzt
  • Ergebnis 2: Haken ist bei Standardauswahl-Variante gesetzt
  • Haken bei Standardauswahl-Variante löschen und speichern
  • Artikel neu aus Übersicht öffnen
  • Ergebnis: Haken ist bei allen Varianten raus, bei Stammdaten aber noch drin

Sehr übersichtlich, das Ganze…

gerade im Backend geht das. S. mein Kommentar diesbzgl. Ansonsten würde ich es wie R4M sehen. Einfach machen und fertig. 

@R4M schrieb:

Setze ich für eine Variante den Abverkauf-Haken, hat dies keinen Einfluss auf den Haken „im Artikel“. Und ungekehrt.

Hm, ich weiß nicht wo das Problem jetzt ist. Meiner Meinung ist das auch völlig korrekt. Der Abverkauf muss auch auf einzelne Varianten gültig sein, unabhängig vom jeweiligen Stammartikel der nicht zwangläufrig selber eine Variante darstellen muss. Bedeutet also bei der REST API, ja das Feld „laststock” wird beim Stammartikel und bei den Varianten gesetzt. Fertig :-) 

Richtig! Und genau so würde ich das erwarten und so ist es ja auch. NextMike schrieb aber, dass sich die Werte teilweise überschreiben. Ich wollte damit nur sagen, dass es in diesem Fall eben (korrekterweise) nicht so ist.

Es geht mit nur darum, dass ich ja offenbar trennen muss, ob ich einen Einzelartikel/die Standardvariante bearbeite oder eine andere Variante. Das eine geht über den articles-Endpoint, das andere über den Variants-Endpoint.

Wenn ihr die Artikel über die REST API aktualisiert, dann müssen die Informationen zum Artikel ja irgendwo her kommen, also auch die Info Einzelartikel oder Variantenartikel. Und je nachdem muss dann das Update bezüglich dem Abverkauf erfolgen. Kann ja jetzt nicht so schwer sein.

Die Frage war ja auch nur, ob das API hierfür bereits einen Mechanismus enthält (denn Shopware wüsste ja, ob es eine Variante oder die Standardvariante oder ein Einzelartikel ist), oder ob ich es genau so zu Fuß ausprogrammieren muss.

Technisch ist ja kein Problem - ich wollte nur wissen, ob es ein „Best Pratice“ gibt.