Cámara de Zaragoza
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
Comercio electrónico
Sede central
976 30 61 61 (ext. 115)
nsamaniego@camarazaragoza.com