我已从System->Configration->Shipping Methods启用免费送货,并将最小订单金额设置为 50,但它不起作用
我也想知道为什么这个条件if($request->getFreeShipping())
总是返回 false
我已从System->Configration->Shipping Methods启用免费送货,并将最小订单金额设置为 50,但它不起作用
我也想知道为什么这个条件if($request->getFreeShipping())
总是返回 false
实际上,我自己也遇到了这个问题,并且偶然发现了这个问题。对我来说,这是因为购物车小计未正确加载到位于以下路径的 Freeshipping.php 文件中。
文件路径:
/app/code/core/Mage/Shipping/Model/Carrier/Freeshipping.php
现在,复制此文件:
/app/code/core/Mage/Shipping/Model/Carrier/Freeshipping.php
到这个文件位置
/app/code/local/Mage/Shipping/Model/Carrier/Freeshipping.php
找到有这个的行
if (($request->getFreeShipping())
|| ($request->getBaseSubtotalInclTax() >= $this->getConfigData('free_shipping_subtotal'))
并用这个替换它
$totals = Mage::getSingleton('checkout/cart')->getQuote()->getTotals();
$subtotal = $totals["subtotal"]->getValue();
if (($request->getFreeShipping())
|| ($subtotal >= $this->getConfigData('free_shipping_subtotal'))
完成所有这些后,免费送货应该可以工作。
我已经在 magento 1.7.0.2 上实现了 Calvin K 的上述答案,它立即解决了我们的问题。
但是,不要更新文件,而是首先确保复制文件并将其上传到:
/app/code/本地/Mage/Shipping/Model/Carriers/Freeshipping.php
这样您就不会修改核心 Magento 代码。