getBaseCalculationPrice
(第315行)
获取以基础货币计算报价的计算价格。
getBaseOriginalPrice
(第389行)
以基本网站货币获得原始商品价格(来自产品)。
getCalculationPrice
(第296行)
获取用于报价计算过程的商品价格。
getConvertedPrice
(第434行)
获取商品价格转换为报价货币
getOriginalPrice
(第363行)
获取物品的原始价格(从产品中检索)。
getPrice
(第412行)
获取商品价格。商品价格货币是网站基础货币。
我正在尝试获取购物车中显示的最终价格,如果有任何促销活动,则已经打折的价格。我应该使用getPrice
或getCalculationPrice
或getBaseCalculationPrice
还是其他?
Magento中所有这些不同的价格函数有何不同。
答案 0 :(得分:3)
复杂不是吗?但它必须复杂,以便Magento可以涵盖所有可能的方式来计算和显示价格。
快速回答是:getCalculationPrice()
我建议研究显示购物车价格的.phtml文件,因为在您的问题中,您写的是“我正在尝试获取购物车中显示的最终价格”,为此,您需要遵循逻辑通过那些.phtml文件。您需要应用税务逻辑,税收显示逻辑,货币转换和显示格式。留出几天的时间进行代码阅读和测试。
有许多价格计算(这些没有与您上面列出的函数一对一映射,这只是设置场景)。价格可能会显示为:
//price excluding discount without tax in default currency
//price excluding discount without tax in local currency
//price excluding discount with tax in default currency
//price excluding discount with tax in local currency
//price including discount without tax in default currency
//price including discount without tax in local currency
//price including discount with tax in default currency
//price including discount with tax in local currency
税收很复杂,因为Magento有WEEE税和销售税(WEEE可能不适用于您的商店,但WEEE逻辑会混淆下面讨论的.phtml文件)。在您的商店中,您可以选择在购物车中显示已包含或不包含税的价格。并且可能已输入原始产品价格,包括税。
因此,Magento正在跳过箍,例如,以包含税的产品价格以默认货币计算,减去税,应用折扣,为当前区域设置添加本地税并转换为货币当前的语言环境。
您列出的功能与您在上面描述的功能类似,但我们非常认真地考虑价格的存储和更改的不同方式,您需要阅读代码并应用每种情况的逻辑:产品可能具有例如定制价格。大多数功能确实返回相同的数字或两个数字之一(原价或折扣价)
getBaseCalculationPrice()
:包括折扣,无货币兑换,可能包括也可能不包含税。如果没有自定义价格,则与调用getPrice()
相同
getBaseOriginalPrice()
:不包括折扣,不包括货币转换,可能包括也可能不包含税
getCalculationPrice()
与getConvertedPrice()
相同
getConvertedPrice()
会返回getPrice()
的结果并应用了货币转换
getPrice()
:包括折扣(我认为),没有货币兑换,可能包括也可能不包含税
getOriginalPrice()
:getBaseOriginalPrice()
这可能没有帮助。 您必须阅读代码 。
如果您想获得购物车中显示的价格,您应该遵循构成购物车布局的那些.phtml文件中的逻辑。
对于非捆绑产品,请参阅
app/design/frontend/themename/default/template/checkout/cart/item/default.phtml
对于捆绑产品,请参阅
app/design/frontend/themename/default/template/bundle/catalog/product/price.phtml
并注意捆绑功能$_priceModel->getTotalPrices()
添加到您的大量定价功能(它返回捆绑的最高和最低价格(包括或不包括税),因此不在购物车显示中使用)。
所以有很多代码要做。但是如果你仔细阅读所有函数(从.phtml文件开始,而不是抽象类 - 比起尝试从抽象类中追踪更容易处理)那么你就会知道每个函数的作用。如果您阅读这些函数并设置一些测试代码来输出所有不同的值,您将会到达它的底部。
税务助手$_taxHelper = Mage::helper('tax');
也有一个功能$_taxHelper->getPrice();
答案 1 :(得分:2)
在购物车中显示的是购物车总数,而不是价格。
所以我认为如果Mage_Sales_Model_Quote_Item
:
getRowTotal()
getRowTotalInclTax()
getRowTotalWithDiscount()