我有可配置的产品,有两种价格(价格和每月价格)。由于产品的价格是固定的,只有每月的价格可以随选项而变化,我添加了一个属性(device_price)来存储价格,而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();
这将为您提供所选选项的可配置产品的最终价格。
也许这可以帮助别人不浪费我的时间。
答案 0 :(得分:0)
您将从请求中获得的选项价格。
Mage::app()->getFrontController()->getRequest()