想要在Prestashop中恢复带有订单ID和详细信息的购物车吗?

时间:2017-03-11 13:15:38

标签: prestashop prestashop-1.6 prestashop-1.7

我对此问题感到震惊是否有任何方法我将通过订单详细信息和订单ID恢复购物车。我想在Prestashop中执行相同的重新排序功能。在Magento中有一个简单的代码在上次订单ID的帮助下恢复购物车,如下所示:

 if ($lastQuoteId = Mage::getSingleton('checkout/session')->getLastQuoteId()) {
            $quote = Mage::getModel('sales/quote')->load($lastQuoteId);
            $quote->setIsActive(true)->save();
        }

如果这样的事情在Prestashop上工作的话。对我来说这将是一个很大的帮助。 请给我你宝贵的建议。 在此先感谢。

1 个答案:

答案 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');
        }
    }