Shopware 6在我进入商店的任何时候都将关联方/活动代码保存到会话中



我使用的是生产系统6.4.2.1,但在更新版本6.4.14 上遇到了同样的问题

例如,如果您第一次使用查询参数URL进入商店https://shop/?affiliateCode=test&campaignCode=test,代码将不会保存到会话中以使用它,例如在购物车中或在订单上具有此标志(这是标准的商店软件功能(。

在您进入商店后,您必须导航到另一个页面,然后粘贴带有查询参数的url以将其保存到会话中。

如果你删除了你的网站数据并再次进入商店查询参数url无法正常工作。

只有在启用缓存的情况下,才会在生产中出现此问题。就我所能调查的这个问题而言,我注意到symfony第一次发射了";BeforeSendResponseEvent";哪个Shopware监听,但这只是终止了带有查询参数的第一个请求因此,现在如果您导航到另一个页面并再次输入带有查询参数的url,则Symfony将触发Shopware侦听的KernelEvent,将查询参数添加到会话中。

以前有其他人在这个问题上遇到过麻烦吗?

是的,我认为你说得对。查看侦听器,如果http缓存被命中,则不会调度相应的事件。联盟和市场活动参数成为缓存密钥的一部分,因此连续的请求将导致缓存命中,从而避免侦听器。

我认为你最好的选择可能是在问题跟踪器上创建一个票证。最终,这将需要在代码库中进行修复。

目前,确保代码存储在会话中的唯一方法是在非http缓存的路由上公开带有参数的URL,如/account/register。为了解决问题,您可以注册自己的控制器,避免http缓存并重定向到主页,只是为了不丢失这些参数。另一种选择是按照此处所述收听HttpCacheHitEvent,并自己为会话设置代码,即使此时可能还必须启动会话。

相关内容

  • 没有找到相关文章

最新更新