0

2 つの価格 (価格と月額) を持つ構成可能な製品があります。製品の価格は固定されており、オプションで変更できるのは月額料金のみであるため、価格を格納する属性 (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();

これにより、選択したオプションを含む構成可能な製品の最終価格が表示されます。

多分それは私がした時間を無駄にしない他の誰かを助けることができます.

4

1 に答える 1

0

リクエストから取得するオプションの価格。

Mage::app()->getFrontController()->getRequest()
于 2012-11-02T19:48:02.777 に答える