hi, ich bin auf der Suche nach dem richtigen Event für setOrderStatus momentan habe ich mich auf ‚Shopware\Models\Order\Order::postUpdate‘ registriert. Ich möchte aber nur reagieren wenn sich der Orderstatus ändert. ein Hook auf sOrder::setOrderStatus::after funktioniert irgendwie gar nicht. $this-\>subscribeEvent( 'sOrder::setOrderStatus::after', 'onSetOrderStatus' ); [...] $order = $args-\>getSubject(); Shopware()-\>Debuglogger()-\>info('', array('hello'));
Hat jemand einen Tipp?
so, ich habe jetzt versucht über getHistory() an die History ranzukommen. Das scheint auch zugehen aber leider komme ich dann nicht an getPreviousOrderStatus() dran. [quote]Fatal error: Call to undefined method Doctrine\ORM\PersistentCollection::getPreviousOrderStatus()[/quote] Wie kann ich prüfen ob der Status geändert wurde? $model = $args-\>get('entity'); // Bestellung selbst (das Model) $orderId = $model-\>getId(); //Bestellungs ID $orderStatus = $model-\>getOrderStatus()-\>getId(); // aktueller Bestell Status $orderHistory = $model-\>getHistory()-\>getPreviousOrderStatus(); // vorheriger bestell Status ? Shopware()-\>Pluginlogger()-\>info('', array($orderHistory));
ok, ich mache jetzt einfach eine Abfrage auf s_order_history und prüfe ob sich die Status-Id geändert hat.
Hi, die History ist eine Collection. Wenn du dir aus dieser Collection zunächst den letzten Eintrag holst, kannst du den vorherigen Status abfragen. $model-\>getHistory()-\>last()-\>getPreviousOrderStatus();