Les commandes sous Magento possèdent différents états afin de suivre leur processus (facturée, expédiée, remboursée…) au sein du Workflow de commandes. Ces états sont invisibles dans le back office de Magento. En effet ce que l’on peut voir sont les statuts des commandes et non pas leurs états.
Chaque état peut avoir un ou plusieurs statuts alors qu’un statut ne peut avoir qu’un seul état. Par défaut, le statut porte généralement le même nom que l’état, ce qui peut porter à confusion. Voici la liste des états et statuts disponibles par défaut.
| Code état | Nom état | Code statut | Nom statut |
|---|---|---|---|
| new | New | ||
| pending_payment | Pending Payment | pending_paypal | Pending PayPal |
| pending_payment | Pending Payment | pending_amazon_asp | Pending Amazon Simple Pay |
| processing | Processing | processing | Processing |
| complete | Complete | complete | Complete |
| closed | Closed | closed | Closed |
| canceled | Canceled | canceled | Canceled |
| holded | On Hold | holded | On Hold |
Pour ajouter un nouveau statut à un état, il suffit de le déclarer dans un fichier config.xml
... <!-- Statuses declaration --> <label>My Processing Status</label> <!-- Linking Status to a state -->
Lorsque l’on modifie le statut d’une commande dans le code, on doit être sûr que l’état actuel accepte ce statut. Pour cela, on peut modifier en même temps l’état et le statut avec la méthode setState
$order = Mage::getModel('sales/order')->loadByIncrementId('100000001');
$state = 'processing';
$status = 'my_processing_status';
$comment = 'Changing state to Processing and status to My Processing Status';
$isCustomerNotified = false;
$order->setState($state, $status, $comment, $isCustomerNotified);
$order->save();
$statut peut aussi prendre la valeur false, afin de modifier uniquement l’état de la commande, ou true afin de modifier le statut en prenant le premier statut associé à l’état.
Vous pouvez donc désormais ajuster votre processus de gestion des commandes dans Magento.



Merci pour cette information intéressante