2014-04-14 48 views
1

這絕對是Magento的新業務規則。如何驗證Magento中'checkout_cart_add'事件的產品組合?

「你必須在你的購物車的產品A和/或B,以添加其他產品」

有沒有人有一個想法如何實現這一點?

我一直在尋找http://markshust.com/2012/08/27/create-checkout_cart_product_add_before-observer-magento但不是事件之前,我會創造「後」,那麼請檢查有沒有使用

$totalItemsInCart = Mage::helper('checkout/cart')->getItemsCount(); 

和刪除產品,如果A或B是不是在列表中。

您認爲這是正確的做法嗎?

和另一個問題。我如何將消息從觀察者傳遞到前端(/ checkout/cart /),並說「對不起你不會因爲bla bla bla而囉嗦bla」?

回答

0

您的方法聽起來很合理,但我更願意使用sales_quote_add_item觀察者。

拋出一個錯誤信息,使用方法:

Mage::getSingleton('customer/session')->addError('Your error message here'); 

恩重定向他們算賬:

$this->_redirect('path/to/page/'); 
+0

是什麼sales_quote_add_item和checkout_cart_add之間的區別?還有一個問題。我不使用$ this - > _ redirect('path/to/page /');我讓頁面進入/ checkout/cart /。我用Mage :: getSingleton('customer/session') - > addError('你的錯誤信息')給你的建議;但不要在/ checkout/cart/page上看到它。我必須加載一些塊嗎? – Cherven

+0

基本上我需要購物車被修改時的事件名稱。 – Cherven

+0

嘗試:$ this - > _ redirect('checkout/cart /'); –