2013-12-17 6 views
1

Я пытался добиться этого в течение последних нескольких дней. Я читал так много сообщений, я уверен, что я близок (или, по крайней мере, закрываю в какой-то момент), но я просто не могу это понять. Я использую даже наблюдатель checkout_cart_save_after Вот что я делаю внутри checkout_cart_save_afterMagento Event Observer Change Cart Base Итого

$session = Mage::getSingleton('checkout/session'); 
$quote = Mage::getSingleton('checkout/session')->getQuote(); 
$quote->setBaseSubtotal(0); 
$quote->save(); 

Все, что я пытаюсь сделать, это получить подытог равным 0 ... Из того, что я прочитал, я хочу, чтобы установить " BaseSubtotal "из-за валютных различий. В конечном итоге то, что я сделаю с этим, как только я смогу заставить его работать, динамично меняет цену, поэтому это не всегда будет 0. Но детские шаги здесь LOL Я просто хочу попробовать сначала изменить цену на конкретную стоимость.

+0

Похоже, я наконец-то нашел что-то здесь http://pradeepkumarrcs.blogspot.com/2011/12/applying-custom-discount-amount-in.html ... похоже, что работает, idk why ... Будет ли потратить некоторое время, чтобы разорвать его и понять. Я решил, что корректирующие цены будут немного более простыми, чем это. – Banning

ответ

0

Вы забыли сделать

$quote->setSubtotal(0);  // needs to be there ;) 
$quote->setBaseSubtotal(0); 

объекта и базовые объекты две разные вещи, и оба должны быть установлены.

+0

Поэтому я попытался изменить его на '$ session = Mage :: getSingleton ('checkout/session');' '$ quote = Mage :: getSingleton ('checkout/session') -> getQuote();' '$ quote-> setSubtotal (0); ' ' $ quote-> setBaseSubtotal (0); ' ' $ quote-> save(); '', и он все еще не обновил общее количество на странице проверки. Промежуточный итог еще не был установлен в 0 = \ – Banning

+0

Я знаю, что это звучит излишне, но попробуйте заменить BaseSub на Sub – ehime