【问题标题】:Prestashop one step checkout programatically change carrierPrestashop 一步结帐以编程方式更改运营商
【发布时间】:2017-12-19 15:33:21
【问题描述】:

我正在处理一个问题,如果您的购物车中有特定类型的产品和一定数量的产品,我一直在使用与购物车规则几乎相同的模块,该模块设置免费送货承运人为您服务,这可以通过折扣代码来实现,我知道,但要求是特定的,这样做......不使用折扣代码,因此,该网站启用了一步结帐,该模块在 5一步结帐,但钩子 DisplayBeforePayment 不起作用,我知道它可能由于 ajax 调用而不起作用,为了简单起见,我该怎么做才能让我的模块与一步结帐一起工作? (订单-opc 控制器)。提前致谢!

【问题讨论】:

    标签: prestashop prestashop-1.6 checkout carrier


    【解决方案1】:

    我认为您需要使用不同的钩子。请查看this 页面。 如果您搜索“DisplayBeforePayment”,您会看到它仅在 /controllers/front/OrderController.php 中使用。 5 步结帐使用此控制器。

    一步结账使用不同的控制器:/controllers/front/OrderOpcController.php。

    该控制器中不存在钩子 DisplayBeforePayment,所以这就是为什么我认为您的模块在单页结帐时不起作用。

    【讨论】:

    • Aurora,实际上我现在正在使用 actionCartSave 来执行此操作,我还有一个问题,我正在启用和禁用运营商(免费送货运营商)以防止某些用户选择它.如果启用,我会选择它......但添加购物车规则不是更好吗?而不是在每次金额大于 500 的特定类型产品时启用和禁用运营商?我正在将承运人设置在此挂钩中,并且还更改了交付选项……这会带来一些麻烦吗?如果多个客户同时决定购买相同的产品,金额大于 500?
    • @lfelisiak 嗨,请将 awnser 标记为正确,以便其他人也可以从您的问题中学习 :)。你是对的。因为如果您的模块禁用了承运人,如果其他用户的购物车
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2010-11-19
    • 2013-08-21
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多