Il semble qu'il n'y ait pas d'événement d'état de l'ordre par défaut, alors comment procédez-vous habituellement pour observer le changement d'état de l'ordre? Il y a deux possibilités que je vois: a) Écraser le modèle de vente / commande pour créer votre événement personnalisé pour un changement d'état b) Observer l'événement d'enregistrement de commande et regarder l'état dans celui-ci
Est-ce que l'un d'eux est la voie à suivre ou existe-t-il une meilleure option?
Edit: Merci pour vos réponses jusqu'à présent. La situation est un peu plus compliquée. Je souhaite ajouter des informations à la commande en fonction de l'état actuel. Voici maintenant le problème: dans l'événement save_before, j'ai toujours l'ancien état et pas maintenant le nouvel état, car dans le modèle de vente / commande, la méthode _beforeSave () est la suivante:
parent::_beforeSave();
$this->_checkState();
//...
Ainsi, l'événement est traité en parent::_beforeSave();
MAIS l'état de la commande est en fait modifié par la suite $this->_checkState();
(c'est le changement automatique, par exemple si vous créez une facture, l'état passe en traitement s'il n'y a pas encore d'expédition)
Je ne peux pas non plus utiliser l'événement save_after, car je veux enregistrer qch. à la commande et cela casserait probablement tout pour appeler une sauvegarde dans l'événement save_after.
Des idées? Ma seule idée maintenant est de reproduire le $this->_checkState();
comportement dans mon observateur save_before pour savoir quel sera finalement l'état ...