在观察者中获得可配置产品的最终价格

时间:2012-11-02 13:32:57

标签: magento magento-1.7 cart observers configurable-product

我有可配置的产品,有两种价格(价格和每月价格)。由于产品的价格是固定的,只有每月的价格可以随选项而变化,我添加了一个属性(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();

这将为您提供所选选项的可配置产品的最终价格。

也许这可以帮助别人不浪费我的时间。

1 个答案:

答案 0 :(得分:0)

您将从请求中获得的选项价格。

Mage::app()->getFrontController()->getRequest()