首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开购物车免运例外

打开购物车免运例外
EN

Stack Overflow用户
提问于 2012-11-21 00:35:28
回答 2查看 3.2K关注 0票数 1

我提供免费的在线送货,订单总额超过75美元,提供这种折扣的过程是直接的。

我将很快在我的库存中添加一些庞大的项目,需要免除免费送货折扣,因为如果买家不支付运费,这些项目的运费将导致交易损失。

在开放式购物车中,我如何免除某些项目的“免费送货超过$75”政策?我猜这将不得不在代码中完成,但我不确定在哪里查找。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:37:04

实际上,使用标准的交付扩展在OpenCart中提供免费交付的过程是愚蠢的。它为客户提供了计算送货或免费送货的选择!这只有在交付方式不同时才有意义--即免费交付速度较慢。

由于你想免除购买的免费送货,而不是有更低价格的送货选择,我假设目前当任何客户选择免费送货时,你只是多赚一点钱。

我强烈建议您将这两条规则合并为一个发货扩展。这不仅允许您删除免费送货率,而且不会显示付费送货选项,因为这将是愚蠢的。

你在哪里可以找到这段代码?

Admin部分中的每个发货计算选项都是发货扩展。它被分成五个文件。

逻辑在catalog\model\shipping中,管理控件在admin\controller\shippingadmin\view\template\shipping中。在catalog\language\english\shippingadmin\language\english\shipping中也有语言。在所有这些文件夹中,文件名应该是相同的。

你可以添加你自己的发货扩展,方法是从你现有的‘免费’发货扩展中获取文件,并用新的文件名和匹配的类名复制它们,或者你可以修改你现有的扩展名。

如果你从一个现有扩展的副本创建你的扩展,不要忘了相应地修改类名(例如更改ModelShippingFreeControllerShippingFree中的自由部分以匹配你的文件名)。

因为我总是使用特定于商店的规则,所以我总是以商店的名字来命名这些文件。这也使得哪一个应该是活动的变得更加明显。

在你陷入编写代码的泥潭之前,先弄清楚你理想的组合规则应该是什么伪代码,例如,如果你对非大件产品有一个统一的费率,而你实际上只对大件产品设置了大于0的权重,它应该是这样的:

如果总重量>0,则成本= subtotal>75 +(1*总重量),如果总重量>0,则cost=0 = cost=10

查看所有现有的扩展,例如你可以使用和调整的代码,找出哪些值你喜欢硬编码,哪些值需要在Admin设置中进行调整。

(您可以从$this->cart->getWeight获得总权重,从$this->cart->getTotal()获得小计)

如果您已经在使用weight,那么除非您仍然可以看出购物车中有一个笨重的产品,因为总重量太高,否则编码就会变得更加困难。你将不得不逐步通过购物车中的每个项目,并添加“大”的产品,以匹配一些其他模式。首先看一下可以在OpenCart中编辑的字段。

最后,为了避免意外,不要忘记更改您的文本屏幕,以说明免费送货不适用于大件物品,并更改您的产品屏幕,以显示产品是笨重的,并且免除免费送货。

票数 4
EN

Stack Overflow用户

发布于 2012-11-21 01:02:22

在标准的OC设置中,这是不可能的。你需要在某种标志中编码,你可以将产品设置为排除,然后在免费送货扩展的模型文件中,你必须对其进行重新编码,以计算没有该标志的商品的成本。标准购物车只使用$this->cart->getTotal(),它不会排除已标记的商品

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13477763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档