Comercio electrónico

Magento: ¿Cómo cambiar el estado de un pedido a través de programación?

Fuente: http://blog.chapagain.com.np/magento-how-to-change-order-status-programmatically/

Para modificar el estado de un pedido a través de programación es necesario como primer paso el cargar el pedido (order) para el que se va a modificar:

$orderId = YOUR_ORDER_ID;
$order = Mage::getModel('sales/order') ->load($orderId);

Si en lugar del ID del pedido tenemos su increment_id (el número asignado al pedido como visible a ojos del cliente), nosotros podemos cargar el pedido de la siguiente forma:

$orderIncrementId = YOUR_ORDER_INCREMENT_ID;
$order = Mage::getModel('sales/order') ->loadByIncrementId($orderIncrementId);

Una vez cargado el pedido podemos modificar el estado del pedido:

/**
* cambiar estado a 'Pendiente'
*/

$order->setState(Mage_Sales_Model_Order::STATE_NEW, true)->save();

/**
* cambiar estado a 'PendientePaypal'
*/

$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true)->save();

/**
* cambiar estado a 'Procesando'
*/

$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true)->save();

/**
* cambiar estado a 'Completado'
*/

$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true)->save();

/**
* cambiar estado a 'Cerrado'
*/

$order->setState(Mage_Sales_Model_Order::STATE_CLOSED, true)->save();

/**
* cambiar estado a 'Cancelado'
*/

$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true)->save();

/**
* cambiar estado a 'En Suspenso'
*/

$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true)->save();

Otra forma de cancelar un pedido:

if($order->canCancel()) { $order->cancel()->save(); }

Otra forma de poner en suspenso un pedido:

if($order->canHold()) { $order->hold()->save(); }

Para sacar del suspenso a un pedido:

if($order->canUnhold()) { $order->unhold()->save(); }

Última actualización: 4 de junio de 2012

¿Tienes alguna duda?
Contacta y te la resolvemos

Contacto General Cámara Zaragoza

Contacto General Cámara Zaragoza

Sede Central
(+34) 976 30 61 61
secretaria@camarazaragoza.com

Inscripción a la agenda

Enviar consulta