Spartacus 1.5调用getProductPromotionForEntry返回空数组问题咨询
Spartacus 1.5 版本
promotionService.getProductPromotionForEntry 正常返回促销信息的必要条件 - 后端促销规则配置要求
- 该方法仅返回**产品级促销(Product Promotion)**数据,你配置的已应用促销必须是产品级类型,订单级促销(如全场满减、订单满赠等)不会在该接口返回
- 促销规则必须处于
已发布(Published)状态,且当前时间在规则的生效时间范围内,未激活、已过期、未到生效时间的规则不会被识别 - 促销规则的适用范围必须包含当前访问站点、当前操作用户所属用户组,同时当前商品属于规则的适用商品/分类范围,规则的所有排除条件都未命中
- 购物车数据同步要求
- 调用该方法前必须确保购物车已经完成和后端SAP Commerce的促销计算同步,本地未同步的临时修改的购物车条目不会携带促销标识,建议在
cartService.loadCart()的完成回调后再调用促销查询方法 - 购物车条目携带的
product.code必须和促销规则绑定的商品编码完全匹配,不存在多站点编码映射偏差
- 调用该方法前必须确保购物车已经完成和后端SAP Commerce的促销计算同步,本地未同步的临时修改的购物车条目不会携带促销标识,建议在
- 前端配置与调用规范要求
- 必须在 Spartacus 根模块配置中开启产品促销拉取开关,未开启时不会拉取产品促销数据:
B2cStorefrontModule.withConfig({ // 其余业务配置 promotion: { enableProductPromotions: true // 该配置项必须为true,默认1.5版本开启,若被自定义覆盖为false会导致返回为空 } }) - 调用方法时传入的购物车entry参数必须是完整的条目对象,至少包含
entryNumber、product.code两个必填字段,仅传入部分字段会导致方法无法匹配对应促销数据 - 若开启了前端促销本地缓存,需确保缓存未过期,可调用
promotionService.clearPromotionsCache()清除缓存后重试
- 必须在 Spartacus 根模块配置中开启产品促销拉取开关,未开启时不会拉取产品促销数据:
内容的提问来源于stack exchange,提问作者rayss
相关产品推荐
相关产品推荐

