2011-07-27 7 views
3

カスタムボタンを押した後、チェックアウトカートページでアイテムごとにディスカウント(たとえば$ 10)を動的に設定したいとします。私はそれを見つけるためにMagentoののコーディングのいくつかを、チェックしています - 誰(どのMagentoのコードは)割引について話したとき 各カートアイテムにダイナミックディスカウントをプログラムで設定するにはどうすればよいですか?

  • は、主に「Mage_Sales_Model_Quote_Address」クラスは、常に影響を受けています。
  • があり「Mage_Sales_Model_Quote_Address」の2つのインスタンスである - 「配送」アドレスタイプのための他の「請求」アドレスタイプ&ための1つが、後者は主にクーポンコードに関連する割引のために使用されます。

は、これらのエリアをチェックした後、私はとして、「Mage_Sales_Model_Quote_Address」の「出荷」アドレスタイプをターゲットに、いくつかのコードを書くようになった: -

$cart = Mage::getSingleton('checkout/cart'); 
$objShippingAddress = $cart->getQuote()->getShippingAddress(); 
$discountAmount = 10; 

$objShippingAddress->setDiscountDescription('any description'); 
$objShippingAddress->addTotal(array(
    'code' => 'discount', 
    'title' => "Custom Discount", 
    'value' => -$discountAmount, 
)); 

$totalDiscountAmount = $discountAmount; 
$subtotalWithDiscount = $discountAmount; 
$baseTotalDiscountAmount = $discountAmount; 
$baseSubtotalWithDiscount = $discountAmount; 

$objShippingAddress->setDiscountAmount($totalDiscountAmount); 
$objShippingAddress->setSubtotalWithDiscount($subtotalWithDiscount); 
$objShippingAddress->setBaseDiscountAmount($baseTotalDiscountAmount); 
$objShippingAddress->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount); 

$objShippingAddress->setGrandTotal($objShippingAddress->getGrandTotal() - $objShippingAddress->getDiscountAmount()); 
$objShippingAddress->setBaseGrandTotal($objShippingAddress->getBaseGrandTotal() - $objShippingAddress->getBaseDiscountAmount()); 

しかし、それでもまだ、私は得ることはありません私のチェックアウトカートのページの "totals"セクションにある行は、チェックアウトのレビューセクションの1ページに&です。

誰でも手伝ってください。私はそれが実行可能であることを知っています。

ありがとうございます。

+0

これを試す人はいませんか?それは難しいことだと私は認めているが、マジェントの仕事でこれを試した人がいなければならない。 –

+3

アイバンの答えをチェックする:http://stackoverflow.com/questions/4877413/magento-adding-duties-taxes-to-a -quote-while-review/4879662#4879662それは私のために働いた。 – OSdave

+1

@OSdaveが正しいです。カスタム料金や割引を加えるのが最善の方法です。 –

答えて

0

ディスカウントティアを設定するリクエストがありました。現在の割引モデルを使用することができなかったため、CartControllerのcouponPostActionを変更しました。私たちはダミークーポンを設定し、顧客に関する他の情報に基づいて、そのクーポンで段階的な割引制度を提供することができました。

関連する問題