我已通过系统 - > Configration->送货方式启用免费送货,并且我将最低订单金额设置为50,但它无法正常工作
我也想知道为什么这个条件if($request->getFreeShipping())
总是返回false
答案 0 :(得分:11)
我自己实际上遇到了这个问题,偶然发现了这个问题。对我来说,这是因为购物车小计未在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'))
答案 1 :(得分:4)
免费送货应该在完成所有这些工作后才能运作。
答案 2 :(得分:2)
我已经在magento 1.7.0.2上实现了Calvin K的答案,它立即解决了我们的问题。
但是,不是更新文件,而是首先确保复制文件并将其上传到:
/应用程序/代码/ 本地强> /Mage/Shipping/Model/Carriers/Freeshipping.php
这样你就不会修改核心的Magento代码。