2016-02-12 81 views
3

與大多數Magento相關的問題一樣,通常需要將頭靠在牆上才能找到解決方案。但是,這一次,沒有。Magento 1.9 - 產品未被添加到註銷用戶的購物籃中

對於註銷並嘗試將項目添加到空購物車的客戶,我遇到了一個奇怪的問題。它不適用於某些特定的產品類型。

我已經擴展了購物車控制器以添加對用戶輸入值的支持,而不是標準的Magento下拉方法。這意味着用戶可能會輸入一個尚不存在的號碼作爲相關產品到我的可配置(參見下圖)。

The "extra keys" are the user inputted values

所以我已經實現,將創造該產品應該是不存在的,然後將其添加到購物籃的系統。這對登錄用戶來說非常合適(甚至可以使用籃子中的現有項目登出用戶)。但是,即使添加了成功消息,註銷用戶仍有空購物車時,它不起作用。

我最初的想法是,這是一個與會話相關的問題,因爲沒有帳戶的用戶不訪問數據庫,並且因爲一旦註銷的用戶在籃子中存在項目,它就會隨機開始工作。

我嘗試刷新會話,初始化購物車,將其添加兩次以獲得較好的效果,但仍然沒有任何效果。任何幫助,將不勝感激。

非常感謝提前。

+0

你好克里斯, 偉大的工作! 您可以讓我知道對控制器的操作進行了哪些修改才能實現此功能。 ,以便它可以排除故障。 謝謝 Jyoti Ranjan Singh – Mageotron

+0

Hey Jyoti,沒有粘貼冗長的代碼並超過字符數限制:我添加了一個布爾值和浮點屬性到一個屬性(應用於一個集合),然後用於可配置的產品。管理員創建一個產品和一個相關產品,他/她的一面已經完成。現在在這個佈局中,我檢查這個布爾值來顯示一個輸入,它將一個值添加到要發佈到控制器的super_attributes。控制器在創建之前檢查相關產品是否存在。如果沒有,那麼它會創建它並添加到購物籃中。對於註銷的客戶,在創建1時不會添加它。 –

回答

0

感謝Bezzie原來是一個仿真問題。我從來不知道這樣的事情存在。無論何時您需要在管理員之外執行管理功能,您都必須將當前商店設置爲「管理員」。出於這個原因,在Magneto 1.5中引入了仿真。 Source here.

$appEmulation = Mage::getSingleton('core/app_emulation'); 

//Start environment emulation of the specified store 
$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation(Mage_Core_Model_App::ADMIN_STORE_ID); 

/* 
* Any code thrown here will be executed as we are currently running that store 
* with applied locale, design and similar 
*/ 

//Stop environment emulation and restore original store 
$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo); 

看起來很明顯,當你看它時,卻發現這個問題很瘋狂!謝謝貝茲

相關問題