如何从SAP Spartacus店面更改BaseStore

时间:2019-09-06 13:19:29

标签: spartacus-storefront

由于Spartacus适用于B2C流程,因此无法从店面更改BaseStore。我在其他国家/地区都有一个下拉菜单,现在想从中更改BaseSite。

2 个答案:

答案 0 :(得分:1)

所以最终我使它工作了。如果将baseSite从下拉列表更改为空,并且用户再次从会话中读取它,则我将baseSite存储到会话中。  要使它正常工作,您必须执行以下操作:

  1. 重写LanguageService服务并更改与LanguagesEffects的initialize方法类似的initialize方法。 (用于检查baseStore是否存储在会话中)

  2. 收听SET_ACTIVE_BASE_SITE操作并将有效负载设置为会话。 (再次类似于 B2cStorefrontModule.withConfig({ context: { baseSite: ['electronics','mystore2','mystore-uk', 'mystore-canada'], language: ['en'], currency: ['USD'] } 中的activeLanguage效果)

  3. 现在在B2cStorefrontModule配置中,将您的其他网站添加为

DAYNAME

所以主要的解决方案是,您侦听basestore的更改操作,并将该值存储到session中,并在页面加载时从session中读取basestore。

答案 1 :(得分:0)

我认为您正在寻找这个。检查Building the Spartacus Storefront from Libraries

上的完整代码

B2cStorefrontModule.withConfig({
    backend: {
      occ: {
        baseUrl: 'https://localhost:9002',
        prefix: '/rest/v2/',
        legacy: false
      }
    },
    authentication: {
      client_id: 'mobile_android',
      client_secret: 'secret'
    },
    context: {
      baseSite: ['electronics']
    },
    i18n: {
      resources: translations,
      chunks: translationChunksConfig,
      fallbackLang: 'en'
    }
  }),