关于加价产品和追销产品以及其在购物车绑定方法
大白话修改方法:
加车时,主商品和关联商品会带隐藏属性,用来表示绑定关系。
主商品会带:
_scm_bind = 唯一绑定 IDaddPrice 加价购商品会带:
_scm_bind_to = 主商品的 _scm_bind
_scm_inject_type = addPrice
upsell 追销商品会带:
_scm_bind_to = 主商品的 _scm_bind
_scm_inject_type = upsell
请不要通过商品标题、SKU、handle、商品 ID 写死判断
addPrice或upsell,必须通过这些隐藏属性判断。
需要实现:
1. 读取购物车商品属性
在购物车行项目里解析商品属性/properties/line item properties,读取:
_scm_bind_scm_bind_to_scm_inject_type_scm_bind_qty_scm_bind_delete
2. 建立绑定关系:
- 主商品:有
_scm_bind - 关联商品:有
_scm_bind_to - 当关联商品的
_scm_bind_to等于主商品的_scm_bind时,认为两者绑定
3. addPrice 商品规则:
_scm_inject_type = addPrice
需要做到:
- 不允许单独删除
- 不允许手动修改数量
- 数量必须跟随主商品
- 主商品删除时,绑定的
addPrice也要删除 addPrice显示价格 =addPrice单价 × 当前数量
注意:不要完全依赖购物车接口返回的
line_price,因为有些平台/主题里line_price会比quantity慢一拍。addPrice的展示价格应优先用单价乘数量计算。
4. upsell 商品规则:
_scm_inject_type = upsell
默认:
- 可以识别为关联商品
- 不强制数量跟随主商品
- 通常允许单独删除
5. 如果存在规则字段,则按规则字段优先:
数量规则:
_scm_bind_qty
值 | 含义 |
|---|---|
| 允许单独改数量 |
| 不允许改数量 |
| 跟随主商品数量 |
删除规则:
_scm_bind_delete
值 | 含义 |
|---|---|
| 允许单独删除 |
| 不允许单独删除 |
6. 购物车交互要求:
当主商品数量变化时:
- 找到所有
_scm_bind_to = 主商品 _scm_bind的addPrice - 把
addPrice数量同步成主商品数量 - 同步后刷新购物车 UI / 小计 / 总价
当主商品删除时:
- 找到所有
_scm_bind_to = 主商品 _scm_bind的addPrice - 一起删除这些
addPrice - 删除后刷新购物车 UI / 小计 / 总价
7. UI 要求:
addPrice 商品:
- 隐藏删除按钮
- 隐藏数量加减按钮
- 只显示当前数量
- 价格显示为 单价 × 当前数量
upsell 商品:
- 不要误套
addPrice的强绑定逻辑 - 除非
_scm_bind_qty/_scm_bind_delete明确要求
8. 兼容性要求:
不同平台字段名称可能不同,例如:
propertiesline_item.propertiesitem.propertiesattributeslineItemProperties
请写一个通用读取函数,能从对象、JSON 字符串、数组属性里读取 _scm_* 字段。
9. 不要做的事:
- 不要写死具体商品 ID
- 不要写死具体 SKU
- 不要写死商品标题
- 不要只靠 URL handle 判断
- 不要只隐藏按钮但不处理接口同步
- 不要只改数量不改价格显示
- 不要只改前端显示,不处理主商品删除后的
addPrice残留
最终目标:
- 用户只能操作主商品。
addPrice自动跟随主商品数量和删除状态。upsell可识别但不被误强制绑定。- 新增
addPrice/upsell商品时,只要加车属性带对,不需要再改主题代码。
给开发看的极简版
一句话就是:
请在购物车里按
_scm_bind/_scm_bind_to/_scm_inject_type实现关联商品绑定。addPrice必须跟随主商品数
本指南只实现功能逻辑,并不涉及UI样式等。
拓展阅读
新手入门
进阶功能
加价与追销
更新于: 26/10/2026
谢谢!
