由于Spartacus适用于B2C流程,因此无法从店面更改BaseStore。我在其他国家/地区都有一个下拉菜单,现在想从中更改BaseSite。
答案 0 :(得分:1)
所以最终我使它工作了。如果将baseSite从下拉列表更改为空,并且用户再次从会话中读取它,则我将baseSite存储到会话中。 要使它正常工作,您必须执行以下操作:
重写LanguageService
服务并更改与LanguagesEffects
的initialize方法类似的initialize方法。 (用于检查baseStore是否存储在会话中)
收听SET_ACTIVE_BASE_SITE操作并将有效负载设置为会话。 (再次类似于 B2cStorefrontModule.withConfig({
context: {
baseSite: ['electronics','mystore2','mystore-uk', 'mystore-canada'],
language: ['en'],
currency: ['USD']
}
中的activeLanguage效果)
现在在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'
}
}),