Функция изменения порядка 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');
?>
Author: Venu Prasath, 2016-10-05

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();
 0
Author: InfoBeans, 2016-10-05 10:01:34