Magento免费送货不工作

时间:2013-08-28 13:16:15

标签: magento

我已通过系统 - > Configration->送货方式启用免费送货,并且我将最低订单金额设置为50,但它无法正常工作

我也想知道为什么这个条件if($request->getFreeShipping())总是返回false

3 个答案:

答案 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)

  1. 确保适用的国家/地区正确
  2. 确保不含税的产品价格为50或更高
  3. 刷新缓存(配置缓存应该足够)
  4. 免费送货应该在完成所有这些工作后才能运作。

答案 2 :(得分:2)

我已经在magento 1.7.0.2上实现了Calvin K的答案,它立即解决了我们的问题。

但是,不是更新文件,而是首先确保复制文件并将其上传到:

/应用程序/代码/ 本地 /Mage/Shipping/Model/Carriers/Freeshipping.php

这样你就不会修改核心的Magento代码。