Я хотел бы программно переупорядочить определенные заказы cronjob и отправить подтверждение заказа по почте. У меня есть простой файл PHP в моем корневом каталоге, который запускаемый cronjob каждый раз в то время:Magento - Программно переупорядочивать несколько заказов cronjob
<?php
include_once 'app/Mage.php';
Mage::app();
//some existing order ids
$orderIds= array('911', '1106', '926');
foreach($orderIds as $orderId){
Mage::unregister('rule_data');
Mage::getModel('adminhtml/session_quote')
->clear();
/* @var Mage_Sales_Model_Order $order */
$order = Mage::getModel('sales/order')->load($orderId)
->setReordered(true);
/* @var Mage_Sales_Model_Quote $quote */
$quote = Mage::getModel('sales/quote')
->setStoreId($order->getStoreId())
->assignCustomer(Mage::getModel('customer/customer')->load($order->getCustomerId()))
->setUseOldShippingMethod(true);
/* @var Mage_Adminhtml_Model_Sales_Order_Create $model */
$model = Mage::getModel('adminhtml/sales_order_create')
->initFromOrder($order)
->setQuote($quote);
/* @var Mage_Sales_Model_Order $newOrder */
$newOrder = $model->createOrder();
$newOrder->setQuoteId($quote->getId())
->sendNewOrderEmail();
$model->getSession()
->clear();
}
Это, кажется, работает до сих пор, новые заказы размещаются и электронные письма отправляются. Но проблема, которую я испытал, заключается в том, что заказчик в новых заказах всегда является одним из первого старого порядка (в этом случае заказ с идентификатором 911). Конечно, это также влияет на электронные письма с подтверждением заказа, поэтому все они отправляются на тот же адрес электронной почты ... Кроме того, элементы заказа, похоже, складываются в корзину, поэтому последний порядок, который переупорядочен, содержит все элементы заказа из предыдущих заказов ... Что я делаю неправильно?
Я ценю каждую помощь, которую я могу получить! Спасибо!
Чтобы было ясно: я хочу создать новые заказы из существующих заказов по их идентификатору. Новые заказы должны содержать всю информацию, имевшуюся у старых (предметы, клиент, информация о доставке и т. Д.). К сожалению, Magento хранит информацию Клиента во время цикла по идентификаторам заказов, поэтому все электронные письма отправляются клиенту первого заказа. – biedert