Spartacus 与 CDS 集成,profile.consent.given 清除站点数据后未设置 cookie

Spartacus integration with CDS, profile.consent.given cookie not being set after clearing site data

我们正在将 SAP Commerce 2005 和 Spartacus 2.0.3 与 CDS(上下文驱动服务)集成。我们按照 https://sap.github.io/spartacus-docs/cds-integration/ 的说明进行操作,并且一切正常。

不过,我们注意到一个问题。

当我们清除网站数据时(通过 Chrome DevTool 或通过浏览器设置),名为 profile.consent.given 的 cookie 不会在刷新页面时重新设置 - 即使 PROFILE 同意已spartacus-local-data > anonymous-consents > consents 中本地存储中的 consentState“GIVEN”。

最初我认为它只是在 DevTools 中不可见,但是当我添加 url 参数 ?profileTagDebug=true 时,在控制台中有一条日志说:

"[Profile Tag] No cookie found with name profile.consent.given".

当我用值 true 手动设置此 cookie 时,一切开始正常工作,所有其他需要的 cookie 和负责跟踪用户行为的本地存储数据都已正确设置。

您是否看到我们可能做错了什么导致此 cookie 无法正常工作的地方? Spartacus 库的哪个模块或组件可以提供解决此问题的线索?


编辑:出现这种奇怪行为的原因在于我们的团队在 CDS 中创建的个人资料标签。它包含:

"consentListener": "type":"cookie","cookieName":"profile.consent.given","cookieValue":"true"},

这使得 cookie profile.consent.given 变得必要,但它不应该。使用没有这部分的个人资料标签使一切正常。

关于 CDS-Spartacus 集成的快速参考:配置文件标签脚本由 Spartacus 从配置的 URL 中提取,脚本正在执行所有事件和数据“抓取”。 Cookie 也由脚本放置在浏览器中。

你的问题和 评论让我认为脚本没有处理这种情况。

我什至不确定它是否应该处理它,所以直接联系 CDS 团队可能是更好的主意。

有了 Spartacus,这个 cookie 就没有意义了。它由 Commerce 后端创建,与加速器前端结合使用效果最佳。 Cds-spartacus 与 ProfileTag 的结合依赖于 Spartacus 加载的匿名同意或用户同意(取决于用户是否登录)。可以在此处找到有关匿名同意的更多信息:https://sap.github.io/spartacus-docs/anonymous-consent/.