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

⏲️ ~3 min de lecture

Publié le par Pierre
Magento php

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 :

/**
* 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();

Il vous suffit désormais d'adapter ce code en ajoutant autant de lignes que nécessaire dans les tableaux $data !

Cet article vous a plu ? Sachez que nous recrutons !

← Accueil