Cómo cambiar el estado de un pedido en Magento 1.9
He tenido más de una vez, sobre todo en tareas de testeo, la necesidad de cambiar el estado de un pedido a completado desde el código. Por ejemplo, para implementar un Observer cuando un pedido cambia de estado.
Para esta tarea puedes utilizar el código que muestro a continuación.
$order = Mage::getModel('sales/order')->loadByIncrementId(NUMERODEPEDIDO) ; $order->setData('state', "complete"); $order->setStatus("complete"); $history = $order->addStatusHistoryCommen t('Cambio de estado por codigo.', false); $history->setIsCustomerNotifie d(false); $order->save();
Lo que hace el código es: cargar el pedido dado el id NUMERODEPEDIDO, pasa, tanto ‘state’ como ‘status’ a ‘complete’, le añade un comentario y lo guarda el pedido. En este caso lo hemos pasado a completo (complete) pero también puedes pasarlo a ‘new’, ‘pending_payment’, ‘processing’, ‘closed’, ‘canceled’, ‘holded’ o ‘payment_review’.
Espero que te sirva de ayuda.