spartacus-storefront - 如何从 SAP Spartacus 店面更改 BaseStore

标签 spartacus-storefront

由于 Spartacus 适用于 B2C 流程,所以没有任何选项可以从店面更改 BaseStore。我有不同国家/地区的下拉菜单,现在想从中更改 BaseSite。

最佳答案

所以我终于成功了。如果 baseSite 从下拉列表中更改并且用户返回时首先从 session 中读取它,我会将 baseSite 存储到 session 中。 在这里你必须做些什么才能让它工作:

  1. 覆盖BaseSite 服务并更改初始化方法,类似于LanguageService 的初始化方法。 (检查 baseStore 是否存储在 session 中)

  2. 监听 SET_ACTIVE_BASE_SITE 操作并将负载设置为 session 。 (再次类似于 LanguagesEffects 中的 activeLanguage 效果)

  3. 现在在 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/

相关文章:

spartacus-storefront - SAP Spartacus OccStoreFinderAdapter 覆盖

angular - 如何在斯巴达克斯中抑制静态页面的自定义上下文?

spartacus-storefront - OutletService 是否支持在按钮处理程序中动态添加组件

angular - 仅在没有 CMS 组件的情况下将带有纯 html 的 Angular 组件插入类别页面

styling - 将 OOTB 样式应用于扩展组件

sap-commerce-cloud - 如何覆盖斯巴达克斯店面中的共享组件

angular - OccAdapters 和 Services 之间的使用差异是什么?

angular - 如何在 Spartacus 2.1 中使用类型增强?

spartacus-storefront - SAP 斯巴达克斯 NullInjectorError : No provider for CmsComponentData