我有两个价格(每月价格和价格)的可配置产品。由于产品的价格是固定的,只有每月的价格可以随选项变化,我添加了一个存储价格的属性(device_price),价格属性将具有每月的价格。
当然,当我将产品添加到购物车时,我需要收取价格,而不是每月的价格。所以我使用了一个带有以下代码的 checkout_cart_product_add_after 观察者:
public function updatePrice(Varien_Event_Observer $observer){
$item = $observer->getQuoteItem();
if ($item->getParentItem()) {$item = $item->getParentItem();}
if ($item->getProduct()->isConfigurable()){
$device_price = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getPrice_device();
//set information
$item->setCustomPrice($device_price);
$item->setOriginalCustomPrice($device_price);
$item->getProduct()->setIsSuperMode(true);
}
}
但是现在我想在购物车上显示两个价格,当我在观察者上更新它时,最终价格会自动出现,但是我如何获得每个月的价格?(产品价格加上所选联营公司的价格)。
我想在我覆盖它之前,每月价格在报价项目的某个地方(我实际上是覆盖它还是只是说 magento 来查看自定义而不是原始价格?)。
我的想法是获取每月价格并将其存储在 quoteItem 的某个位置,以便我可以轻松地在购物车上访问它。
如何在观察者上获得可配置产品的最终价格?
如果考虑到有更好的方法来解决它,我愿意接受其他建议。
编辑解决方案
最后我找到了它在哪里。我现在感觉很糟糕,因为实际上很容易得到它:(我一直试图从项目中获取价值,但它实际上是在项目内部的产品上
$_item->getProduct()->getFinalPrice();
这将为您提供所选选项的可配置产品的最终价格。
也许这可以帮助其他人不浪费我所做的时间。