Blog

MAGENTO Ajouter un « order status » personnalisé depuis une extension

Depuis la version 1.5 de Magento la gestion des statuts de commande se fait depuis l’espace d’administration. La configuration de ces statuts est donc stockée en base de données, rendant ainsi impossible la personnalisation par le biais du config.xml comme détaillé à divers endroits sur le web.

En tant que développeur Magento, vous serez sans doute amené à devoir ajouter un statut particulier aux commandes. Dans ce cas (si la solution manuelle depuis l’administration ne suffit pas), il vous faudra gérer ça depuis le script d’installation de votre extension.

Ci-dessous un exemple vous montrant comment ajouter un nouveau statut (« status ») associé à l’état (« state ») processing de Magento :

[cce_php]
/**
* Install new order statuses
*/
$data = array(
array(‘status’ => ‘processing_custom’, ‘label’ => ‘Processing Custom’),
// other statuses here
);
$installer->getConnection()->insertArray(
$installer->getTable(‘sales/order_status’),
array(‘status’, ‘label’),
$data
);

/**
* Install order status/states mapping
*/
$data = array(
array(‘status’ => ‘processing_custom’, ‘state’ => ‘processing’, ‘is_default’ => 0),
// other mapping here
);
$installer->getConnection()->insertArray(
$installer->getTable(‘sales/order_status_state’),
array(‘status’, ‘state’, ‘is_default’),
$data
);

$installer->endSetup();
[/cce_php]

Il vous suffit désormais d’adapter ce code en ajoutant autant de lignes que nécessaire dans les tableaux [cci_php]$data[/cci_php] !