gpt4 book ai didi

Magento 免运费购物车规则适用于折扣后

转载 作者:行者123 更新时间:2023-12-02 16:34:17 25 4
gpt4 key购买 nike

我遇到了一个无法找到解决方案的问题。我有一条购物车规则,订单小计金额 > 75 美元即可免运费。但是,如果使用折扣代码,则即使订单总金额低于 75 美元,该规则仍会再次应用。没有税收和其他费用。我只想在顾客消费超过 75 美元时提供免费送货服务。我有什么想法可以解决这个问题吗?提前致谢

最佳答案

您是对的,购物车规则仅适用于购物车小计,免费送货承运人模式也是如此。使用小的重写可以改变免费送货模型的行为。

首先,停用授予免费送货的购物车规则。然后转到系统 > 配置 > 送货方式 并激活免费送货承运商,为其指定 75 美元的“最低订单金额”。

接下来,我们需要添加重写,以便免费送货模型使用折扣值而不是小计。

使用适当的模块注册文件添加模块 My_Shipping。既然您在 stackoverflow 上询问,我假设您熟悉创建 Magento 模块。然后添加带有以下重写声明的 My/Shipping/etc/config.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<global>
<models>
<shipping>
<rewrite>
<carrier_freeshipping>My_Shipping_Model_Freeshipping</carrier_freeshipping>
</rewrite>
</shipping>
</models>
</global>
</config>

现在唯一缺少的是重写的运营商模型。以下代码实现了您需要的更改:

class My_Shipping_Model_Freeshipping extends Mage_Shipping_Model_Carrier_Freeshipping
{
/**
* Force the original free shipping class to use the discounted package value.
*
* The package_value_with_discount value already is in the base currency
* even if there is no "base" in the property name, no need to convert it.
*
* @param Mage_Shipping_Model_Rate_Request $request
* @return Mage_Shipping_Model_Rate_Result
*/
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
$origBaseSubtotal = $request->getBaseSubtotalInclTax();
$request->setBaseSubtotalInclTax($request->getPackageValueWithDiscount());
$result = parent::collectRates($request);
$request->setBaseSubtotalInclTax($origBaseSubtotal);
return $result;
}
}

就是这样。现在,如果包含折扣的小计金额超过 75 美元,则可以使用免费送货方式。否则客户将看不到它。

关于Magento 免运费购物车规则适用于折扣后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11393617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com