2
如果实行免费送货,为什么“送货总额”将销售报价项目的row_weight设置为0?
前言:这旨在作为Magento为社区(和我本人)的体系结构的书面观察,以及一个实际的问题。我们正在使用经过大量修改的购物车和结帐体验,但是此问题的根源在于Magento的核心逻辑。 背景 我们使用标准购物车价格规则功能创建了免费送货优惠券。优惠券没有任何条件,唯一的动作就是将Free Shipping设置为For matching items only。由于没有条件,这将设置free_shipping到1所有销售报价的项目。 按照惯例,我们还启用了免费送货送货方式。该Freeshipping运营商模式将提供利率每当请求有免费送货,或小计匹配或超过阈值(但我们不使用阈值选项)。见Mage_Shipping_Model_Carrier_Freeshipping::collectRates: $this->_updateFreeMethodQuote($request); if (($request->getFreeShipping()) // <-- This is the condition we're relying on || ($request->getBaseSubtotalInclTax() >= $this->getConfigData('free_shipping_subtotal')) ) { /* Snip: Add $0.00 method to the result */ } 而且Mage_Shipping_Model_Carrier_Freeshipping::_updateFreeMethodQuote是这样的: protected function _updateFreeMethodQuote($request) { $freeShipping = false; $items = $request->getAllItems(); $c = count($items); …