Benachrichtigung über Lagerbestandsänderungen in Plugin

Gibt es eine Möglichkeit sich in seinem eigenen Plugin über Lagerbestandsänderungen informieren zu lassen? Dies sollte in beide Richtungen bei Änderungen funktionieren. also bei verkäufen genauso wie bei der Lagerhaltung, wenn neue Artikel eintreffen. Hat jemand eine Idee dazu?

Hi Almare, Du könntest versuchen dich mit deinem Plugin an die Doctrine Model Events zu hängen. http://wiki.shopware.com/Shopware-4-Mod … del_Events Ich habe dieses vorgehen aber verworfen, da Shopware nicht immer die Doctrine Model verwendet bzw. eine Bestandsänderung von „Wo-Anders“ herkommen kann und habe es über Datenbanktrigger (MySQL) und einem Cronjob gelöst. Die Trigger werden von der Datenbank ausgelöst und füllen eine „changed“-Tabelle, diese durchlaufe ich alle x-Minuten und löse dann entsprechende Aktionen aus.

1 „Gefällt mir“

Danke für den Link. Die Events waren mir bekannt. Ich hätte jedoch gedacht das es expliziet einen Event gibt, der den alten und neuen Bestand im System meldet. Ich denke das ist definitiv ein Manko! Um ein Beispiel zu nennen. Wenn man bei Amazon einen Artikel im Bestand von 1 führt diesen aber gerade über seinen Shop verkauft hat, zu warten bis ein Cron läuft und den neuen Bestand dann an Amazon sendet ist echt nicht gut und es kann so zu doppel verkäufen kommen. Der Betreiber des Shops kommt so in Teufelsküche, wenn er Artikel verkauft, die er gar nicht vorrätig hat. Schlechte Bewertungen etc. Zudem ist ein Event meiner Meinung nach effektiver als ein Cronjob der immer alle Artikel überprüft und dann noch mit einem alten Bestand abgleichen muss. Deine Lösung mit dem Datenbank Trigger finde ich persönlich echt gut. Ich werde mir das mal genauer ansehen wie man mit Triggern arbeitet. Danke im speziellen für diesen Lösungsansatz! :thumbup: Klar ist auch, wenn ein anderes Plugin den Bestand mittels Mysql Befehl direkt ändert das dies nicht gemeldet werden kann. Das sollten dann aber die Entwickler der jeweiligen Plugins beachten Stichwort best practice. Wäre schön wenn sich Shopware hierzu mal äussern könnte ob es geplant ist diesbezüglich einen Event einzubauen oder eine andere Möglichkeit zur Verfügung stellt.