我使用的是生产系统6.4.2.1,但在更新版本6.4.14 上遇到了同样的问题
例如,如果您第一次使用查询参数URL进入商店https://shop/?affiliateCode=test&campaignCode=test,代码将不会保存到会话中以使用它,例如在购物车中或在订单上具有此标志(这是标准的商店软件功能(。
在您进入商店后,您必须导航到另一个页面,然后粘贴带有查询参数的url以将其保存到会话中。
如果你删除了你的网站数据并再次进入商店查询参数url无法正常工作。
只有在启用缓存的情况下,才会在生产中出现此问题。就我所能调查的这个问题而言,我注意到symfony第一次发射了";BeforeSendResponseEvent";哪个Shopware监听,但这只是终止了带有查询参数的第一个请求因此,现在如果您导航到另一个页面并再次输入带有查询参数的url,则Symfony将触发Shopware侦听的KernelEvent,将查询参数添加到会话中。
以前有其他人在这个问题上遇到过麻烦吗?
我认为你最好的选择可能是在问题跟踪器上创建一个票证。最终,这将需要在代码库中进行修复。
目前,确保代码存储在会话中的唯一方法是在非http缓存的路由上公开带有参数的URL,如/account/register
。为了解决问题,您可以注册自己的控制器,避免http缓存并重定向到主页,只是为了不丢失这些参数。另一种选择是按照此处所述收听HttpCacheHitEvent
,并自己为会话设置代码,即使此时可能还必须启动会话。