我在生產系統 6.4.2.1 上,但在較新的版本 6.4.14 上遇到了同樣的問題
如果您第一次使用查詢引數 URL 進入商店,例如 https://shop/?affiliateCode=test&campaignCode=test,代碼將不會保存到會話中以在購物車中使用它或具有此標志在訂單上(這是標準的商店軟體功能)。
進入商店后,您必須導航到另一個頁面,而不是粘貼帶有查詢引數的 url 以將其保存到會話中。
如果您洗掉您的站點資料并使用此查詢引數 url 再次進入商店,則它不再起作用。
此問題僅在啟用快取的情況下在生產中發生。據我調查這個問題,我注意到symfony第一次觸發Shopware監聽的“BeforeSendResponseEvent”,但這只是用我們的查詢引數終止第一個請求所以現在如果你導航到另一個頁面并輸入url再次查詢引數,Symfony 將觸發 Shopware 監聽的 KernelEvent 將查詢引數添加到會話中。
以前有沒有其他人遇到過這個問題?
uj5u.com熱心網友回復:
是的,我認為你說得對。查看偵聽器,如果命中 http 快取,則不會調度相應的事件。附屬和活動引數成為快取鍵的一部分,因此連續請求將導致快取命中,從而避開偵聽器。
我認為您最好的選擇可能是在問題跟蹤器上創建一張票。最終,這將需要在代碼庫中修復。
目前,確保代碼存盤在會話中的唯一方法是使用非 http 快取的路由上的引數公開 URL,例如/account/register. 對于解決方法,您可以注冊自己的控制器來避免 http 快取并重定向到主頁,只是為了不丟失這些引數。另一種選擇是按照此處HttpCacheHitEvent所述收聽并自行將代碼設定為會話,即使您可能還必須在那時開始會話。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/520753.html
