Workflow des statuts de commande sur Magento
Grégoire Genestier | 3 décembre 2009Magento comporte un workflow de commande préétabli et relativement standard. Certains pourront déplorer le peu de souplesse de ce workflow, qu’on ne peut modifier directement depuis le BackOffice, et sans toucher au cœur du produit. Certains pousseront un « ouf » de soulagement en découvrant cela, se rappelant des customisations complètes d’un bon vieil OsCommerce, où les statuts pouvaient être créés dynamiquement, et où l’on pouvait passer d’un statut à un autre en un clic, mais sans aucune logique commerciale. Bref, un méga bazar en perspective où les statuts ne correspondaient à rien de précis, mais seulement à une information en l’air associée à une commande, et pouvant être totalement incohérente avec l’état réel de la commande (facture envoyée ? colis expédiés ? commande remboursée ?…).
Magento fait le ménage et impose un workflow logique et cohérent en fonction des actions faites sur les commandes. Qui dit workflow cohérent ne dit pas forcément bridage complet et coups de fouet pour rester dans le droit chemin. Des ajouts de statuts dits « équivalents » permettent de customiser le workflow de commande en y injectant des étapes pour des besoins spécifiques.
Succession des statuts de commandes « standards » sur Magento :

Création de nouveaux statuts « équivalents » dans Magento :
Interférer dans ce workflow nécessite une modification profonde de celui-ci et des règles complètes du process de commande. Cela nécessite du temps de développement, beaucoup de temps de test et complexifie grandement toute mise à jour ultérieure du cœur de Magento. Cela est possible mais n’est donc pas recommandé. D’autant plus que ce process a été pensé pour être utilisable par le plus grand nombre de sociétés et qu’en sortir n’est peut-être pas très bon signe pour plus tard (dans l’optique d’intégration avec des ERP par exemple).
Si l’on ne préfère donc pas toucher au cœur du workflow, il est néanmoins possible de toucher directement aux blocs de statuts en rajoutant des « sous-statuts » à des statuts existants (aussi appelés « états »). Cela permet ainsi de proposer au client des étapes supplémentaires liées à des règles ou des processus métiers, spécifiques à l’entreprise.

Process standard Process avec ajout d’équivalents
Prenons pour exemple l’une des branches du schéma ci-dessus : le passage du statut « En attente » au statut « En cours de traitement » puis « Terminée ».
Le premier schéma ci-dessous montre le process standard, avec un unique statut « En cours de traitement ». Le second schéma montre l’ajout d’équivalents au niveau du statut « En cours de traitement ». Une fois la commande dans le statut « En cours de traitement », l’administrateur du site pourra passer d’un statut équivalent à un autre sans impact sur le workflow.
En effet, pour Magento, que la commande soit « En cours de traitement », « En cours de préparation » ou « Prêt pour expédition », pour lui la commande sera « En cours de traitement » (statut « maître »).
Au niveau paramétrage de Magento, on définit simplement dans un fichier XML de configuration (/app/etc/config.xml), les éléments suivants pour le nouvel « équivalent » :
- Un libellé
- Le statut « maître » (état) auquel il est rattaché
Concrètement, pour créer un nouveau statut équivalent, ajoutez le code suivant à l’intérieur du fichier config.xml :
<config>
…
<global>
…<sales>
<order>
<!– Déclarer le nouveau statut –>
<statuses><mon_nouveau_statut translate=”label”>
<label>Mon nouveau statut</label>
</mon_nouveau_statut>
</statuses>
<!– Lier les statuts –>
<states><processing>
<statuses>
<mon_nouveau_statut/>
</statuses>
</processing>
</states>
</order>
</sales>
</global>
…
</config>
Dans le fichier XML ci-dessus, le mot-clé « processing » est à remplacer par le mot-clé du statut « maître » que l’on souhaite associer. Les différentes valeurs possibles sont les suivantes :
| Nom | Mot-Clé |
| New | new |
| Pending Payment | pending_payment |
| Processing | processing |
| Complete | complete |
| Canceled | canceled |
| On Hold | holded |
| Closed | closed |
Magento est donc rigide sur le Workflow des commandes et suit une droite ligne de conduite lorsqu’il est utile de cadrer les choses, mais permet tout de même une certaine souplesse pour les ecommerçants qui ont des toujours des besoins spécifiques de traitement interne.





[...] Un nouvel article sur notre blog : "Workflow des statuts de commande sur Magento" http://www.bysoft.fr/blog/?p=207 Posted in December 3, 2009 ¬ 10:00 amh.adminNo Comments » [...]
[...] Lire l’article original [...]