我在magento的結帳過程中有一個鉤子,在觀察者處:checkout_controller_onepage_save_shipping_method。這個觀察者行爲發生在用戶在Magento中選擇一種送貨方式後,點擊「下一步」按鈕來保存送貨方式,並繼續完成結賬流程。magento onepage結帳,創建錯誤消息並重定向
我寫過的代碼有時可能會告訴用戶(取決於各種因素,例如購物車項目以及他們正在運送的狀態)他可能不會繼續結帳過程,而必須調用商店來代替特殊運輸說明。
,因爲它被包裝在一個AJAX腳本定期重定向功能不onepage結賬裏面工作,我曾嘗試以下:
Mage::getSingleton('core/session')->addError('The shipping required for one of the products you are attempting to order..');
$response1 = $observer->getResponse();
$url = Mage::getUrl('checkout/cart');
$response1->setRedirect($url);
和
Mage::throwException($this->__('The shipping required for one of the products you are attempting to order requires special instructions, please call us.'));
$observer->getRequest()->setParam('return_url','http://www.google.com/');
exit;
和
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
Mage::app()->getResponse()->sendResponse();
exit;
但這些都沒有工作。我相信我必須重寫OnePageController.php中的一些函數,但我不知道需要更新哪些內容。任何幫助將不勝感激。謝謝!
我會在哪裏重新定義了window.location - 這是我唯一的選擇,因爲我不能讓他們甚至提出在他們的車與某些產品的訂單(如果產品被運到某些州) – vaskaloidis
'window.location ='checkout/cart''是你如何在javascript中啓動重定向。您需要在onepage結帳時掛入的javascript事件是'shipping/in/template/checkout/onepage/shipping.phtml'中的shipping.save()。確保您重定向到自定義控制器,該控制器看起來像您的第一個代碼示例,以便您可以添加消息並將用戶發送到產品頁面。 – giaour