Я могу успешно конвертировать конвертируемый заказ в квоту, но все равно не могу загрузить его в текущую корзину. Я пробовал несколько методов, но безрезультатно. Вот самый простой:
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
$_quote->setIsActive(true)->save();
Мне удалось получить идентификатор цитаты, но объект цитаты не загружается в текущую корзину.
Я тоже пробовал
$_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save();
$_quote = Mage::getModel('sales/quote')->load($_quote->getId());
if ($_checkoutQuote->getId() != $_quote->getId() && $_quote->getId()) {
$_checkoutQuote->merge($_quote)->save();
Mage::getModel('checkout/session')
->setQuote($_checkoutQuote)
->init();
Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
}
и подобные подходы, но все еще не загружая цитату. Большое спасибо!
magento-enterprise
orders
sales
quote
user1240207
источник
источник
Предыдущий ответ работает, только если цитата все еще доступна в БД. Я столкнулся с ситуацией, когда этого больше не было, поэтому этот код не работает:
Вместо этого мы можем использовать
Mage_Sales_Model_Convert_Order
для преобразования существующего заказа обратно в новую цитату, используяtoQuote(Mage_Sales_Model_Order $order)
метод. Он принимает заказ на вход и выводит новый объект цитаты.Вам необходимо вызвать дополнительные функции для преобразования адреса выставления счета / доставки, предметов и т. Д. Для каждого объекта вы найдете функцию в этом классе.
источник