报价的地址“ freemethodgoight”代表什么?
题
我看到它已在 Mage_Sales_Model_Quote_Address_Total_Shipping::collect()
它大致相当于地址的总重量。此外,各种承运人都根据此值进行检查:
if ($request->getFreeMethodWeight()!=$request->getPackageWeight()) {
$r->setFreeMethodWeight($request->getFreeMethodWeight());
}
你们知道它的目的是什么?
解决方案
FreeMethodwoight是请求(通常设置为0)的属性,作为标识符,该订单有资格免费送货。运输模型通常会定义哪种方法有资格免费送货,并通过免费方法重量确定使用此方法。
在上面的示例中,它们被设置在$ r对象上,这是类型的 Mage_Shipping_Model_Rate_Request
.
Getter和Setter是魔术 - 他们设置了一个称为的属性 free_method_weight
在请求对象上。
其他提示
五量量级仅与购物车价格规则相关联:如果您选择免费送货:“仅适用于匹配的项目”,那么您将其放入折扣数量字段中的数字(意味着每个项目的数量)将是免费的。看到 Mage_SalesRule_Model_Validator::processFreeShipping
. 。免费方法重量将在总模型中计算 Mage_Sales_Model_Quote_Address_Total_Shipping
对于物品的重量 不是 自由的。例子:
- 您选择免费送货:“仅适用于匹配的物品”在购物车价格规则中,并在discount_qty字段中设置“ 2”。
- 然后报价项目将获得免费_shipping = 2
- freemethodgeight将变为项目重量 *(itemqty -2)
Mage_Sales_Model_Quote_Address_Total_Shipping
(=根据折扣规则定义不免费的物品的重量)
如果没有配置此类折扣规则,则频次轻量级将始终等于软件包的重量。
因此,在大多数情况下,自由锻炼等于包装的重量,但是考虑到某些运输方法中的运输价格计算。