为什么 prestashop 购物车规则(优惠券)没有显示在前端?

Why are prestashop Cart Rules (Vouchers) not showing in frontend?

我成功生成了测试购物车规则并分配给了我的用户。

我可以在后台和 'my vouchers' 下的我的帐户页面上看到它。所以我们确定它是 recorderd 并已分配。

发生的情况是,在购物车页面中,即使以我的用户身份登录后,我也看不到任何凭证字段。

深入挖掘,我可以说 $discounts 模板 var 没有填充,或者,简单地说它计数为零。所以我看了一下控制器,看到它通过 $order->getCartRules() 分配了它。而 getCartRules 只是读取一个数据库 table。还有惊喜?? order_cart_rule table 是空的。所以它不会被填充。那么这里可能是什么问题呢?有人遇到过同样的问题吗?这是一件奇怪的事情..

可能的主要问题是:where/when 购物车和规则是否正确created/applied?我可以在 FrontController 中看到正在创建的购物车,但此时似乎还没有设置购物车规则。

顺便说一下,我 运行 使用最新的 prestashop 1.6.1.4

$order->getCartRules

函数 $order->getCartRules() 为您提供购物车规则列表 适用于此订单 (您可以在 table ps_order_cart_rule ).

购物车规则在哪里?

所有购物车规则都在 table ps_cart_rule.

如果您将购物车规则标记为 Highlight - 您可以看到:

如果您已将任何购物车规则添加到您的商店 - 您可以看到:

如果您看不到 Vouchers 字段 - 要么您没有任何购物车规则,要么您安装的 theme 不支持它。

是一个迟到的答案,但我注意到如果您启用 paypal,它在 paypal.js 中有一行不仅删除凭证区域而且删除垃圾桶以删除产品:

见图:https://i.gyazo.com/403a9004aaa745a2817f11884d52346b.png

/* 1.5 One page checkout*/
var qty = $('.qty-field.cart_quantity_input').val();
$('.qty-field.cart_quantity_input').after(qty);
$('.qty-field.cart_quantity_input, .cart_total_bar, .cart_quantity_delete, #cart_voucher *').remove();

通过将 cart_voucher 重命名为 cart_voucher_2(如果您不使用快速结帐)并将 cart_quantity_delete 重命名为 cart_quantity_delete_2,您将 return 拥有你的事情是对的:)