如果您要登錄到Magento並將一些產品添加到您的購物籃中,然後離開該網站,這些會在下次您返回網站時保存下來。如何阻止Magento在登錄時合併購物籃?
但是,當您返回時,會導致問題。如果您返回的產品沒有登錄並且在結帳過程開始時登錄,那麼您的客人和保存的購物籃將被合併。這是不可取的。
如果您當前的購物籃中有商品,有沒有辦法讓Magento在登錄時清除已保存的購物籃?
在此先感謝
如果您要登錄到Magento並將一些產品添加到您的購物籃中,然後離開該網站,這些會在下次您返回網站時保存下來。如何阻止Magento在登錄時合併購物籃?
但是,當您返回時,會導致問題。如果您返回的產品沒有登錄並且在結帳過程開始時登錄,那麼您的客人和保存的購物籃將被合併。這是不可取的。
如果您當前的購物籃中有商品,有沒有辦法讓Magento在登錄時清除已保存的購物籃?
在此先感謝
看起來管轄本是Mage_Checkout_Model_Session
代碼,具體在哪裏,它調用Mage_Sales_Model_Quote::merge
。這意味着你有幾個選擇。
sales_quote_merge_before
)的事件並使用該機會清空其中一個購物車。你將不得不在周圍探測什麼時候應該完成,但它比其他兩個更清潔。讓我知道,如果這不明確的某種方式。希望有所幫助!
謝謝, 喬
感謝約瑟夫Mastey,您的評論已經幫了我很多,我已經爲事件/觀察者做,我用了describias事件,然後我刪除了報價如下:
public function emptyCartUserNoLogged($observer){
$event = $observer->getEvent();
$quote = $event->getSource();
$quote->setIsActive(false);
$quote->delete();
}
非常感謝您的幫助。
嗨。你可以做一個git或簡單地向我們展示你的代碼,這可以幫助我解決目前我面臨的一個問題。 – Chiragit007 2014-12-10 09:49:38
會很好,你可以分享完整的代碼(法師1.9.0.1) – 2015-03-22 09:22:36
我已經修改了合併函數中的第1344行的Quote.php(/ Sales/Model /)以下內容。
foreach ($this->getAllItems() as $item) {
$this->removeItem($item->getId());
}
天才!如果用戶從結帳中登錄,並且未保存的購物車中有物品,我就用#3去打開一個觀察員模塊來清除已保存的購物車。 – 2011-04-13 09:27:11
@PhilLavin我對一些代碼感興趣,如果你不介意的話。我一直在上下查找代碼,但仍然無法正確對待。 – user00265 2012-05-01 14:32:25
這一個工作社區,但不是在企業,在發佈時 - https://github.com/jacquesbh/jbh_cartmerge – Ashfame 2012-10-23 20:00:01