Api 预售订单状态问题和购物车

Api 预售订单状态问题和购物车,api,prestashop,payment,shop,Api,Prestashop,Payment,Shop,我正在开发集成第三方api的支付模块。来自api的一些订单失败,我想用支付api消息error将它们标记为错误,但当我创建订单和订单状态为失败时,我丢失了购物车。在这种情况下,我希望用户保留他的购物车,并可能选择其他付款方式 我怎么能做到 thnx这在Presta中是不可能以任何常规方式完成的,因此如果您希望订单状态失败并为用户保留购物车,则需要克隆购物车并在上下文中进行设置 $newCart = $cart->duplicateObject(); $pro

我正在开发集成第三方api的支付模块。来自api的一些订单失败,我想用支付api消息error将它们标记为错误,但当我创建订单和订单状态为失败时,我丢失了购物车。在这种情况下,我希望用户保留他的购物车,并可能选择其他付款方式

我怎么能做到


thnx

这在Presta中是不可能以任何常规方式完成的,因此如果您希望订单状态失败并为用户保留购物车,则需要克隆购物车并在上下文中进行设置

        $newCart = $cart->duplicateObject();
        $products = $cart->getProducts();

        foreach($products as $product) {
            $newCart->updateQty($product['cart_quantity'], $product['id_product']);
        }

        $newCart->save();
        Hook::exec('actionCartSave');

        $this->context->cookie->id_cart = $newCart->id;

正如我所看到的,这是不可能以简单的方式实现的,因为FrontModule已经检查了已经有订单的购物车。如果您在后端启用了重新排序选项,客户可以从他们的订单历史页面中单击重新排序按钮,重新创建购物车。