Функция изменения порядка Magento
Я пытался выяснить последние 3 дня, но тщетно, я ищу, чтобы отправить электронное письмо с напоминанием клиентам о необходимости изменить порядок их предыдущей покупки. Функция перезаказа Magento работает с зарегистрированными клиентами с помощью www.yourdomain.com/sales/order/reorder/{order_id}
, которая добавляет товары из их предыдущих заказов в их корзину покупок. Но если клиент не зарегистрирован, он перенаправляется на гостевую форму. я хочу загрузить товары из предыдущего заказа в их корзину покупок, даже если они не вошли в систему. поэтому, когда клиент нажимает ссылка, затем он перенаправляется на страницу checkout/cart
со всеми товарами из их предыдущего заказа. я попытался использовать следующий код
<?php
include_once 'app/Mage.php';
Mage::app();
$orderId= '2986';
$quote = Mage::getModel('sales/order')->load($orderId);
$cart->init();
$cart = Mage::getModel('sales/quote')->load($quote);
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
$this->_redirect('checkout/cart');
?>
1 answers
Пожалуйста, используйте приведенный ниже код для создания заказа на основе идентификатора заказа, Вы можете создать ссылку с этим идентификатором заказа,
Для этого вы можете сделать наблюдение перед загрузкой страницы корзины.
$order=Mage::getModel('sales/order')->load(2); // 2 is order entity_id
$cart = Mage::getSingleton('checkout/cart');
$items = $order->getItemsCollection();
foreach ($items as $item) {
try {
$cart->addOrderItem($item);
} catch (Mage_Core_Exception $e){
if (Mage::getSingleton('checkout/session')->getUseNotice(true)) {
Mage::getSingleton('checkout/session')->addNotice($e->getMessage());
}
else {
Mage::getSingleton('checkout/session')->addError($e->getMessage());
}
} catch (Exception $e) {
Mage::getSingleton('checkout/session')->addException($e,
Mage::helper('checkout')->__('Cannot add the item to shopping cart.')
);
}
}
$cart->save();