2010-08-18 21 views
7

Actualmente estoy creando un módulo que me obliga a tomar un objeto de pedido y hacer que se reordene a sí mismo ... creando así un nuevo pedido en el backend con los mismos elementos y credenciales exactos.Magento - Reordenar programáticamente

Este es el código que tengo hasta ahora ... no parece reordenar el artículo ni crear y agregar otro pedido de back-end.

$personsOrder = Mage::getModel(’sales/order’); 
$personsOrder->loadByIncrementId($order[’model_order_id’]); 

$order_model = Mage::getSingleton(’adminhtml/sales_order_create’); 
$personsOrder->setReordered(true); 

$order_model->initFromOrder($personsOrder); 

/* 
$order_model->save(); 

$order_model->place(); 
$order_model->sendNewOrderEmail(); 
*/ 

¡Cualquier ayuda es muy apreciada!

Respuesta

3

Lo primero que pensé es que usted debe utilizar $order->getIncrementId() en la línea 2 en lugar de $order['model_order_id'], pero no estoy seguro de que usted está recibiendo $order de, en primer lugar. ¿Ha comprobado que $order['model_order_id'] está devolviendo un ID de incremento válido? No veo model_order_id como un campo en la base de datos en cualquier lugar ...

Le sugiero que haga funcionar su IDE y XDebug para que pueda inspeccionar los objetos mientras trabaja con ellos y comprender qué está pasando .

Saludos, JD

7
$orderId= $YOUR_ORDER_NUMBER; 
$personsOrder = Mage::getModel('sales/order')->load($orderId); 
$order_model = Mage::getSingleton('adminhtml/sales_order_create'); 
$personsOrder->setReordered(true); 
$order_model->initFromOrder($personsOrder); 
$order_model->createOrder(); 
1

Si la orden que ha colocado la primera vez también se crea a través de la codificación y no de frente de la tienda, entonces usted necesita para asegurarse de que se ha agregado una entrada en el sales_flat_quote_item tabla. De lo contrario, ese orden no se puede reordenar. Así que asegúrese de que no sea el caso con la creación de su pedido.

Cuestiones relacionadas