价格体系
价格体系用于在商品零售价之外定义可选的扩展价格,例如“会员价”“渠道价”“员工价”。扩展价格是应用级通用交易能力,不属于某个营销方案或营销场景。
普通应用不需要配置价格体系。没有扩展价格时,商品只维护并使用零售价,现有交易流程不受影响。
整体关系
三处配置各自负责不同内容:
| 位置 | 负责什么 | 示例 |
|---|---|---|
| 设置 → 价格体系 | 定义价格名称、状态和排序 | 创建“会员价” |
| 商品 SKU 售卖价格 | 为每个 SKU 填写具体扩展金额 | 红色/L 会员价 238 元 |
| 资格提供方 | 决定什么身份可以使用哪种价格 | 营销方案会员等级选择“会员价” |
价格体系只定义“有一种价格叫会员价”,不会自动给商品打折,也不会自动判断哪些用户是会员。
创建价格类型
进入 设置 → 交易履约 → 价格体系,点击 新增价格类型。
| 字段 | 约束 | 填写建议 |
|---|---|---|
| 价格名称 | 必填、最多 20 个字符、应用内不能重名 | 使用用户和运营都能理解的名称,例如“会员价” |
| 排序 | 大于等于 0 | 数字越小越靠前;可按 10、20、30 留出插入空间 |
保存后系统自动生成稳定标识。运营不需要输入或维护标识;以后修改价格名称也不会改变商品和等级的关联。
新增价格类型本身不会改变任何商品价格。还需要在商品 SKU 中填写金额,并由资格来源引用后才会对用户生效。
编辑价格类型
点击行内 编辑 可以修改名称和排序:
- 改名会更新后台和后续用户端使用的显示名称。
- 改名不会改变内部关联,不需要批量修改商品。
- 历史订单继续显示下单时保存的名称和成交价格快照。
- 修改排序只改变管理端展示顺序,不改变用户成交价。
价格名称用于表达业务含义,不要在名称中写具体金额,例如不要命名为“会员价 238 元”,因为不同商品和 SKU 的金额可以不同。
在商品中配置扩展价格
应用创建扩展价格后,商品编辑的 SKU 规格与售价 或店铺 售卖配置 会按排序显示对应价格列。
每个 SKU 独立填写
同一商品的不同 SKU 可以使用不同金额:
| SKU | 零售价 | 会员价 | 渠道价 |
|---|---|---|---|
| 红色 / M | 268 元 | 238 元 | 218 元 |
| 红色 / L | 288 元 | 258 元 | 238 元 |
扩展价格金额是可选项:
- 填写大于 0 的金额:用户资格命中时使用该价格。
- 留空:该 SKU 对应身份回退零售价。
- 不允许填写 0、负数或无效金额。
单店和多店如何维护
商品编辑入口如果同时维护商品源数据和当前店铺售卖数据,会在同一张 SKU 表中显示零售价与扩展价格,保存时由系统分别写入正确的商品数据。
铺货或店铺售卖配置入口只编辑当前店铺的售卖价格。无论单店还是多店,用户实际购买使用的都是店铺售卖 SKU 中的零售价和扩展价格,不需要在两个无关位置重复维护同一个价格体系。
与其他价格字段的关系
- 零售价必须大于 0。
- 有商品指导价时,零售价仍需满足指导价约束。
- 划线价不得低于零售价。
- 扩展价格只要求大于 0,不强制高于成本价,也不强制低于零售价。
允许扩展价格低于成本价,是为了支持平台补贴、亏本清仓和引流商品;运营必须自行评估利润、佣金和资金池成本。
哪些用户使用扩展价格
价格资格由其他业务能力提供。当前已经支持营销方案中的等级可选引用扩展价格。
例如:
普通用户:按商品零售价
会员:会员价
服务商:会员价
合伙人:渠道价多个等级可以共用一个扩展价格,也可以分别选择不同价格。一个身份一次最多使用一种扩展价格,不会把会员价和渠道价叠加。
营销方案等级的具体配置参见权重分佣。未来其他会员、企业客户或渠道身份也应复用同一价格体系,不需要再给商品增加固定的“会员价字段”。
价格如何解析
服务端按以下顺序确定用户本次基础购买价:
读取 SKU 零售价
-> 读取用户下单前已经具备的价格资格
-> 查找资格引用的扩展价格
-> 检查价格类型是否启用
-> 读取当前 SKU 对应金额
-> 有合法金额:使用扩展价格
-> 无资格、已停用或金额缺失:使用零售价未登录用户没有身份资格,使用零售价。用户登录后,商品列表、详情、购物车和结算会按当前身份重新解析。
购物车不保存固定成交价。用户升级、价格改动或价格类型停用后,再次进入购物车和结算时会重新读取当前有效价格;正式创建订单仍由服务端重新计算,不能以前端显示金额作为成交依据。
与活动和优惠的顺序
扩展价格属于用户身份对应的基础购买价,不属于优惠券或立减金额。
SKU 零售价
-> 身份扩展价格
-> 商品活动价
-> 自动立减
-> 优惠券
-> 积分抵扣
-> 余额抵扣活动价只有严格低于当前用户基础购买价时才生效。
例如零售价 268 元、会员价 238 元:
| 活动价 | 普通用户 | 会员 |
|---|---|---|
| 250 元 | 250 元 | 238 元 |
| 218 元 | 218 元 | 218 元 |
会员价与零售价之间的差额不作为优惠券、立减或活动优惠金额统计。
停用价格类型
停用前,系统会统计有多少营销方案等级、商品和 SKU 正在引用该价格。
停用后的规则:
- 新订单不再使用该扩展价格,统一回退零售价。
- 等级中的价格引用保留,不自动清空。
- 商品 SKU 已填写的金额保留,不批量删除。
- 历史订单不受影响。
- 重新启用后,原等级绑定和商品金额自动恢复生效。
因此,停用适合临时停止一种价格制度。停用前应关注回退零售价是否会造成用户看到的价格突然变化。
删除价格类型
删除是不可恢复的配置清理,只允许在以下条件全部满足时执行:
- 没有营销方案等级引用;
- 没有任何商品 SKU 保存该价格金额;
- 没有其他当前业务配置引用。
仍有引用时系统会拒绝删除,只能停用。若确实要删除:
- 先解除所有等级或其他身份绑定。
- 清理所有商品 SKU 中对应价格金额。
- 再回到价格体系执行删除。
不要为了删除价格类型直接批量修改历史订单。历史订单依赖自己的成交快照,不依赖当前价格体系继续存在。
方案切换和商品场景调整
- 商品不保存营销方案或等级信息。
- 商品切换营销场景不会修改扩展价格。
- 切换营销方案不会扫描或批量改写商品。
- 目标方案等级没有绑定扩展价格时,新订单按零售价。
- 切回原方案后,原方案等级绑定继续生效。
这使一个应用即使有大量商品或频繁切换方案,也不需要重新建立商品价格。
成交价格何时确定
用户资格以预结算和正式创建订单时已经存在的身份为准。
例如普通用户购买 268 元升级礼包,支付后升级为会员:
本单:下单前还是普通用户,按 268 元成交
支付后:升级为会员
下一单:若 SKU 配置了会员价,则按会员价成交支付、确认收货或奖励结算后获得的新身份,不会反向改变本单成交金额。
订单会保存成交时的零售价、基础购买价、价格来源、价格名称和资格快照。以后改名、停用、改价或切换方案都不会重算历史订单、退款和对账金额。
常见问题
新建“会员价”后,商品为什么还是零售价
只创建名称还不够。需要给商品 SKU 填写会员价,并让用户当前身份绑定该价格。
商品填写了会员价,普通用户为什么没使用
扩展金额不是公开促销价。用户必须具有引用该价格的有效身份;普通用户没有资格时使用零售价。
等级已经绑定会员价,部分商品为什么仍是零售价
检查当前商品和选中的 SKU 是否填写了会员价。SKU 金额缺失时按规则回退零售价。
停用后为什么等级和商品配置还在
这是可逆设计。停用只让新交易回退零售价,不删除业务绑定;重新启用后可以直接恢复。
为什么扩展价格可以高于零售价
系统只把它作为身份基础购买价候选,并不强制必须打折。虽然技术上允许,但名称为会员价却高于零售价通常会引发客诉,应由运营检查业务合理性。
上线前检查
- 价格名称是否清晰、无重复。
- 排序是否符合商品编辑时的维护习惯。
- 所有需要使用的商品 SKU 是否已填写金额。
- 资格提供方是否绑定到正确价格。
- 未登录、普通用户和各身份用户的商品列表、详情、购物车、结算价格是否一致。
- 活动价与身份价同时存在时是否按更低的有效规则结算。
- 停用时回退零售价是否符合预期。
- 已完成一笔下单、身份升级、改价和退款测试。
