PrestaShop 1.7.6.9购物车规则:折扣生效但免运费不生效求助
PrestaShop 1.7.6.9 购物车规则同时生效折扣+免运费的解决方案
针对同一购物车规则内30%折扣生效但免运费失效的问题,可按以下步骤排查解决:
检查免运费设置细节
进入后台「营销>购物车规则」编辑目标规则:- 确认「免运费」选项选择「是,适用于所有配送方式」,避免仅勾选特定配送方式导致不生效;
- 核实规则的「最低消费金额」阈值,确保当前购物车(折扣前)金额达标,1.7.6.9版本默认校验折扣前金额。
调整规则全局设置
进入后台「营销>购物车规则>设置」:- 开启「允许多个优惠码」选项,确保规则叠加逻辑生效;
- 调整目标规则的优先级(数值越小优先级越高),避免被其他冲突规则覆盖。
修复版本内置逻辑冲突
PrestaShop 1.7.6.x存在同一规则内百分比折扣与免运费互斥的bug,需修改核心文件:- 打开
classes/CartRule.php文件; - 找到
public function checkValidity($cart, $useCache = true)方法; - 定位并注释掉以下冲突判断(若存在):
// if ($this->reduction_type != 'none' && $this->free_shipping) { // return false; // } - 保存文件后,前往后台「高级参数>性能」清除缓存。
- 打开
拆分规则替代方案
若不想修改代码,可拆分两个独立规则:- 保留原30%折扣规则,设置相同适用条件;
- 创建新的免运费规则,匹配同一优惠码、消费门槛及客户群体;
- 开启「允许多个优惠码」后,用户输入优惠码即可同时触发两种福利(若版本不支持同一码对应多规则,可设置两个码告知用户同时输入)
内容的提问来源于stack exchange,提问作者Gabbodrummer
相关产品推荐
相关产品推荐

