组合品顾名思义就是若个产品的组合,在快消品饮料企业中十分常见,如:之前讨论产品配送政策时曾提到产品A满100箱时,配送产品B和产品C共10箱,这里产品B和产品C就可以维护成B+C组合,共10箱,经销商可以自己调整产品B、产品C各5箱还是产品B10箱等等。那么组合品都有哪些使用场景,系统如何设计、实现?
1、应用场景
1)产品配送政策维护时,主发产品、配送产品都可能是组合品,具体参考:
谈谈快消品中小饮料企业产品配送政策方案设计
2)紧俏品额度管理,很有可能是产品A+产品B+产品C联合起来,市场报站量不能超指定额度,这时就要引入组合品,一个更加具体的例子:
比如750ml玻璃瓶罐头,由于产品升级(玻璃瓶形进行了改进),现在需要将仓库剩余36000多个玻璃瓶(可做成蓝标和红标玻璃瓶罐头)消化掉,合计3000箱(12瓶/箱)。现在通知市场进行预报站,每个市场限额1000箱(蓝标、红标随意报,合计不能超过1000箱),系统就需要维护一个组合品,比如:
玻璃瓶组合品 = 蓝标玻璃瓶 + 红标玻璃瓶,接下来系统只要做:
- 控制玻璃瓶组合报站量(蓝标量+红标量)每个市场有无超额;
- 汇总红标,蓝标量,交由车间进行贴标处理即可;
关于何谓紧俏品、如何管理,参考:谈谈快消品中小饮料企业 紧俏品管理方案设计
3)市场统计分析需要
比如要统计酸奶的销量,酸奶有小杯、中杯、大杯,维护一个组合品:
酸奶杯品 = 小杯奶+中杯奶+大杯奶,系统就可以根据组合品“酸奶杯品”进行统计分析。
4)其它需求
2、组合品管理 系统如何设计、实现
1)表结构设计
组合品主表,base_goods_group
CREATE TABLE `base_goods_group_type` (
`sid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`group_type` varchar(30) NOT NULL COMMENT '组合类型',
`group_name` varchar(30) NOT NULL COMMENT '组合名称',
`display_order` int(11) DEFAULT '10',
`write_uid` bigint(20) DEFAULT NULL,
`write_date` datetime DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
为了简单起见,组合品类型,系统预留Tag: [‘jqp’,‘psp’,‘tjxl’],对应:紧俏品、配送品、统计用,group_type是tag标签组合
组合品细表, base_goods_prop_ref
CREATE TABLE `base_goods_prop_ref` (
`sid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`group_id` bigint(20) DEFAULT NULL COMMENT '组合ID',
`group_type` varchar(30) DEFAULT NULL,
`group_name` varchar(30) DEFAULT NULL COMMENT '组合名称',
`goods_id` bigint(20) DEFAULT NULL,
`goods_no` varchar(10) DEFAULT NULL,
`goods_name` varchar(100) DEFAULT NULL COMMENT '产品名称',
`write_uid` bigint(20) DEFAULT NULL,
`write_date` datetime DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2)实现注意事项
- 组合品类型为什么预先设置好,不可编辑?原因是不同组合品类型往往涉及不同业务操作、不同代码实现,为了简单起见就采用预留策略。
- 维护组合品主表base_goods_group时,group_type应该是tag标签组合,多个标签用英文逗号分隔,可以是"jqp",也可以是"jqp,psp"等,标签如何实现,具体参考:谈谈企业信息系统tag标签数据库设计及基于多选组件bootstrap-select的实现