Artikelanlage / Speichern - Artikel auf laststock setzen

Hallo,

ist es möglich per Plugin abzufangen wenn ein Artikel angelegt wird (bspw über die API Schnittstelle) und diesem Artikel direkt die Laststock Option zu setzen?

Wenn ja, welcher Ansatz wäre da der richtige? Hat mir jemand einen Tipp? 

Vielen Dank und beste Grüße

Hey,

schaue dir am besten den folgenden Controller an:

Shopware_Controllers_Api_Articles

Dort werden in

postAction()

neue Artikel erzeugt und in

putAction()

Artikel aktualisiert.

Du könntest auf

'Enlight_Controller_Action_PreDispatch_Api_Articles'

subscriben und die PostData modifizieren, bevor die genannten Methoden aufgerufen werden.

 

Hilft dir das weiter?

Grüße

1 „Gefällt mir“

Alternativ gibs auch den weg von ORM Events. Dort auf preUpdate listen und den Wert immer auf 1 setzen

1 „Gefällt mir“

Hallo,

danke für die Hilfe, konnte es mit get- und setPost() lösen. Mit den drei Subscribern sollte ich doch alle Änderungen/Artikelanlagen abfangen können, die über die Schnittstelle oder händisch im Backend gemacht werden?

 'Enlight\_Controller\_Action\_PreDispatch\_Backend\_Article' =\> 'onArticleSave', 'Enlight\_Controller\_Action\_PreDispatch\_Api\_Articles' =\> 'onArticleSave', 'Enlight\_Controller\_Action\_PreDispatch\_Api\_Variants' =\> 'onArticleSave', (Brauche ich diesen hier für die Varianten?)

 

Mein Problem ist noch, dass das lastStock bei den Varianten über die API-Schnittstelle nicht aktualisiert wird, wenn ein Artikel angelegt wird… Führe ich das POST aus, wird laststock in der s_articles korrekterweise auf 1 gesetzt selbst wenn ich in dem POST ein false mitgegeben habe. Leider passiert das nicht bei den Varianten (s_articles_details).

Habt Ihr mir hierfür vielleicht auch einen Tipp?

Danke und beste Grüße

 

Hallo @Pudellek‍,

probier mal was hat @Shyim‍ empfehlen,  ORM Events ist deine beste Lösung.

schau mal Shopware models

und hier du darfst Shopware\Models\Article\Article  und Shopware\Models\Article\Detail  Subscribering .

VG,

Ahmad

Tel.: +49 755 - 183 990 00 | Web: http://enbit.de/

1 „Gefällt mir“

@Shyim schrieb:

Alternativ gibs auch den weg von ORM Events. Dort auf preUpdate listen und den Wert immer auf 1 setzen

@Shyim‍

Hallo,

Danke für Eure Hilfe es hat funktioniert.

Eine Frage noch: wäre es nicht besser auf preFlush zu listen? Wenn ich die Dokue richtig verstanden habe, greife ich doch dann jegliche mögliche Änderung an meinem Artikel oder an meiner Variante ab?

Danke und beste Grüße

Das preFlush Event greift erst nach dem preUpdate Event. Wäre auch ein Weg. Wenn du allerdings vor dem Flush schon mit deinem modidizierten Objekt weiter arbeiten willst, ist preUpdate besser.

1 „Gefällt mir“