我对此问题感到震惊是否有任何方法我将通过订单详细信息和订单ID恢复购物车。我想在Prestashop中执行相同的重新排序功能。在Magento中有一个简单的代码在上次订单ID的帮助下恢复购物车,如下所示:
if ($lastQuoteId = Mage::getSingleton('checkout/session')->getLastQuoteId()) {
$quote = Mage::getModel('sales/quote')->load($lastQuoteId);
$quote->setIsActive(true)->save();
}
如果这样的事情在Prestashop上工作的话。对我来说这将是一个很大的帮助。 请给我你宝贵的建议。 在此先感谢。
答案 0 :(得分:1)
我在TheDrot的帮助下找到了这个。感谢参考。
$order = new Order(Order::getOrderByCartId($id_cart));
if ($order) {
$oldCart = new Cart($id_cart);
$duplication = $oldCart->duplicate();
if (!$duplication || !Validate::isLoadedObject($duplication['cart'])) {
$this->errors[] = Tools::displayError('Sorry. We cannot renew your order.');
} elseif (!$duplication['success']) {
$this->errors[] = Tools::displayError('Some items are no longer available, and we are unable to renew your order.');
} else {
$this->context->cookie->id_cart = $duplication['cart']->id;
$context = $this->context;
$context->cart = $duplication['cart'];
CartRule::autoAddToCart($context);
$this->context->cookie->write();
if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) {
Tools::redirect('index.php?controller=order-opc');
}
Tools::redirect('index.php?controller=order');
}
}