2012-03-20 19 views
0

私は現在、商品をカートにプログラム的に追加して、自分のサイトに「無料サンプル」を作成しています。商品がカートに追加されたときの小計の更新

現在、これらの製品はすべて$ 0で、最大15個を追加できます。カート内に5個の無料サンプル製品があれば、小計に$ 20を追加する必要があります。

Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal(); 

しかし、私は小計にアクセスしてくださいどのようにも、それに$ 20追加:

は、私が使用してgrandtotalを得ることができます知っていますか?

$ 20を追加するかどうかを確認するために、カートから商品が追加/削除されたときを確認する必要があるため、オブザーバーを書く必要があると思います。

誰もこれを行う前にこれをやったことがありますか、私はこれを行う方法の正しい方向に私を指すことができますか?

感謝

おかげ

答えて

5

私はショッピングカートのルールを作成することを提案する「X得る追加のn自由のために」と思い、あなたの現在のタスクのための

は何をすべきかの基本的な考え方で、聞かせてあなたがより具体的な詳細が必要な場合、私は知っている: このイベントを探し観察者sales_quote_add_item」を追加します。

<events> 
    <sales_quote_add_item> 
     <observers> 
      <priceupdate_observer> 
       <type>singleton</type> 
       <class>mymodule/observer</class> 
       <method>updatePrice</method> 
      </priceupdate_observer> 
     </observers> 
    </sales_quote_add_item> 

観察者がこのような何かをする方法を持っている必要があります。

public function updatePrice($observer) { 
    $event = $observer->getEvent(); 
    $quote_item = $event->getQuoteItem(); 
    if(sample etc...) $new_price = <insert logic> 
    $quote_item->setOriginalCustomPrice($new_price); 
    $quote_item->save(); 
} 
+0

ここで、xmlを追加していますか? 'Mage/Checkout/etc/config.xml'?私は – terrid25

+0

の前にオブザーバを作成していません。xmlタグはconfigのグローバルタグの中に入り、関数はModelフォルダ内のオブザーバファイルに入ります。ここにビルドアップとオブザーバーの構築方法に関するリンクがあります。http://www.magentocommerce.com/wiki/5_-modules_and_development/0_-module_development_in_magento/customizing_magento_using_event-observer_method –

+0

サンプル製品の追加/削除時に自動的に呼び出されますか? ?これは、10サンプルの製品が追加されたときに小計を更新するでしょうか? – terrid25

0

あなたはこの少し間違って、合計はあなたが引用し、「合計」を持っているアイテムの価格に対して計算されてきているだけであなたが望むように加算または減算することができますものではありませんに。私は実際にここ最近、この質問に答え

関連する問題