☰
从SKU穷举到可组合交易:客制化属性商品模型的领域建模与工程落地
2026/10/4 5:19:46 网站建设 项目流程

目录

一、问题的本质:定制化商品不是“更多SKU”,而是“可组合交易”

(一)从消费体验反推商品模型

1、线下的自由组合与线上的固定规格存在天然张力

2、判断一个字段应不应该进入SKU,要看它是否具有独立经营语义

(二)把“商品”和“成交结果”分开,是模型稳定性的起点

二、为什么“把配料做成销售属性”会必然失控

(一)组合爆炸不是实现细节,而是模型选错后的数学结果

1、传统SKU模型的增长方式是乘法

1.1 组合数量增长快于业务人员的理解能力

1.2 组合模型无法自然表达“默认值”和“份数”

2、动态上下文会让静态SKU穷举进一步失效

(二)SKU的库存语义被稀释,会反过来伤害供应链和数据体系

1、SKU本来应该代表可独立识别的库存或经营单元

2、原材料库存和成品SKU库存应当分层处理

(三)当模型语义错误时,系统会出现一连串“补丁式复杂度”

三、建模转向:用“SKU + 客制化属性”构造最终交易单元

(一)职责分离比新增一个字段更重要

1、SKU继续负责稳定的商品身份

2、客制化属性负责成交时的可选内容

3、客制化规则负责“在什么条件下可以怎么选”

(二)一个可落地的核心对象集合

1、目录层对象

1.1 Product:聚合展示和经营信息

1.2 SKU:可售变体和基础价格

2、配置层对象

2.1 CustomizationGroup:客制化组

2.2 CustomizationOption:具体选项

2.3 CustomizationRule:上下文规则

3、交易层对象

3.1 Selection:用户本次选择

3.2 PriceSnapshot:价格快照

3.3 OrderItemSnapshot:订单商品快照

四、规则模型:从“字段开关”升级为可解释的约束系统

(一)规则的本质是把配置空间裁剪到业务允许的范围

1、先定义可选空间,再定义条件变化

2、规则需要明确优先级,否则“覆盖”会变成不可预测

2.1 默认规则

2.2 SKU覆盖规则

2.3 门店/渠道规则

2.4 交易上下文规则

(二)规则不是越通用越好,而要围绕高频业务模式收敛

1、优先使用结构化规则表达80%的需求

2、复杂表达式只能作为受控扩展

五、价格模型:从“SKU有一个价格”升级为“交易价格可分解、可复现”

(一)实时计价必须先确定价格责任边界

1、基础价属于SKU,增量价属于客制化项

2、默认份数与“已包含份数”必须区分

(二)复杂价格需要从“固定加价”逐步演进,而不是一次做成万能引擎

1、固定单价与阶梯价

2、SKU相关价格

3、组合价格与套餐价格

(三)购物车、下单、退款必须共享同一套计价口径

六、库存与履约:弱库存场景不等于可以忽略资源约束

(一)成品SKU库存、门店产能和原材料库存是三类不同约束

1、成品SKU库存

2、原材料库存

3、产能与设备约束

(二)“客制化属性不进入SKU”并不意味着它脱离供给体系

七、前台交互:一个好模型应该直接生成正确的选择体验

(一)商品模型不只是后台数据结构,它应该驱动前台状态

1、前端不应硬编码某个品牌或品类的选择规则

2、禁用比报错更好的前提,是规则能够提前计算

3、默认选择要可解释,不能偷偷改变成交价

(二)前台选择状态应被视为一个受约束状态机

八、接口与数据结构:让配置、选择和快照在协议层有清晰边界

(一)商品详情接口应返回“可配置视图”,而不是数据库表的直出

1、一个建议的读取模型

2、写入接口只提交“事实”,不要提交客户端计算结果

(二)规则版本是分布式一致性的关键抓手

1、为什么需要configVersion

2、版本不要只靠updatedAt

九、性能与缓存:实时计算不意味着每次都去拼接几十张表

(一)运行时应该消费“编译后的商品配置”,而不是原始运营数据

1、配置态与运行态分离

2、缓存键必须包含影响结果的上下文

(二)规则引擎的性能优化重点不是“算得快”,而是“少算和可预测”

1、建立依赖索引

2、将静态规则提前折叠

3、报价接口要幂等

十、订单快照与可审计性:今天卖出的商品,半年后仍要解释得清

(一)订单不能只保存ID引用

1、商品名称和选项名称都需要快照

2、价格必须保存逐项明细

3、关键规则结果也应快照

(二)修改商品配置时,要明确“新单”和“历史单”的边界

十一、迁移路线:从“配料SKU”平滑切换到客制化属性

(一)第一步不是删SKU,而是识别哪些维度被误建模

1、按业务语义给现有属性分类

2、优先迁移组合爆炸最严重的维度

(二)双轨期要保证老链路可回退

1、建立旧SKU到“基础SKU + Selection”的映射

2、灰度发布时同时比对价格

3、等订单、库存、履约、报表都完成适配后再下线旧SKU

十二、测试体系:定制化模型最需要验证“组合边界”,而不是只测几个样例

(一)规则测试要覆盖边界值和组合关系

1、数量边界

2、联动边界

3、互斥与依赖

(二)价格测试应采用“金丝雀案例 + 属性测试”结合

1、金丝雀案例

2、属性测试

(三)性能测试要贴近用户连续点击的真实节奏

十三、治理与扩展:把“客制化属性”做成能力,而不是新的万能垃圾桶

(一)何时适合使用客制化属性

1、餐饮和现制商品

2、轻定制零售

3、服务型商品

(二)哪些内容仍然应该坚持使用SKU

1、需要独立库存的变体

2、具有长期编码和财务身份的变体

(三)客制化属性必须设置能力边界

1、不要把搜索筛选属性混入客制化

2、不要把营销规则全部塞进客制化规则

3、不要把后厨工艺全文当作前台选项

十四、常见误区:模型重构最容易在这些地方再次走回老路

(一)误区一:只是把“销售属性”改名成“客制化属性”

(二)误区二:客制化属性可以无限嵌套、无限联动

(三)误区三:既然实时计价,就不需要价格版本

(四)误区四:只改商品中心,不改订单和履约

(五)误区五:为了减少SKU,反而把真正的库存变体也客制化

十五、落地方法论:用六个问题判断模型是否健康

(一)面向架构评审的检查框架

1、这个选择是否需要形成长期独立经营单元

2、这个选择是否允许多选、重复或数量变化

3、这个选择是否会被SKU、门店、渠道或时间改变约束

4、价格是否能够逐项解释并在历史订单中复现

5、供给约束究竟属于成品库存、材料库存还是产能

6、前端能否仅依靠服务端元数据完成正确交互

十六、结语:把SKU从“所有选择的容器”还原为稳定的商业身份

可参考文章与文档


干货分享,感谢您的阅读!

在茶饮、咖啡、餐食、烘焙、礼赠等行业里,“商品”正在从一个固定成品,演化为一个可以在交易时被用户重新配置的组合体。杯型、温度、糖度、加料、份数、酱料、制作方式等信息,表面上都像商品属性,但它们的业务语义并不相同:有些决定可独立管理的库存单元,有些只是成交时的个性化选择;有些改变基础价格,有些只产生加价;有些需要控制必选、默认、最大份数,有些还会随着SKU、门店、渠道和时间发生联动。如果把这些差异全部压进传统“销售属性 → SKU”的组合模型,就会快速遭遇SKU数量爆炸、库存语义错位、运营配置困难、价格难以解释、订单历史不可复现等问题。

本文以“客制化属性”这一思路为起点,对原方案进行重新抽象与工程化扩展:保留SKU作为真正可销售、可库存、可履约的核心单元,把加料、做法等交易时选择拆分为独立的客制化属性;再通过规则层、定价层、库存/履约层和交易快照层建立稳定边界。文章进一步给出领域模型、规则建模、实时计价、接口结构、缓存与性能、订单审计、迁移方案和测试体系,目标不是为茶饮单一场景“打补丁”,而是构建一套能够延伸到餐饮、

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询