由于 Spartacus 适用于 B2C 流程,所以没有任何选项可以从店面更改 BaseStore。我有不同国家/地区的下拉菜单,现在想从中更改 BaseSite。
最佳答案
所以我终于成功了。如果 baseSite 从下拉列表中更改并且用户返回时首先从 session 中读取它,我会将 baseSite 存储到 session 中。 在这里你必须做些什么才能让它工作:
覆盖
BaseSite
服务并更改初始化方法,类似于LanguageService
的初始化方法。 (检查 baseStore 是否存储在 session 中)监听 SET_ACTIVE_BASE_SITE 操作并将负载设置为 session 。 (再次类似于
LanguagesEffects
中的 activeLanguage 效果)现在在 B2cStorefrontModule 配置中将您的其他站点添加为
B2cStorefrontModule.withConfig({
context: {
baseSite: ['electronics','mystore2','mystore-uk', 'mystore-canada'],
language: ['en'],
currency: ['USD']
}
所以主要的解决方案是,您监听 basestore 更改操作并将值存储到 session 并在页面加载时从 session 读取 basestore
关于spartacus-storefront - 如何从 SAP Spartacus 店面更改 BaseStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822830/