一、摘要
销售管理是快消品饮料企业信息化核心重点,客户可以销售哪些产品是饮料企业销售管理中的重头戏,一来可以防止客户之间相互冲货,二来可以加强客户管理、利于渠道拓展。因此,饮料企业信息化软件其销售模块应该包含可销售产品管理,实现产品A是否对客户A可销售控制。
二、饮料企业特有名词
1、企业人员构成
- 部门人员:办公室人员,典型如:财务、采购、办公室管理、总经理等
- 业务员:销售人员,典型如:市场主管,区域主管,客户经理等
- 分厂人员:分厂生产人员、仓库人员、车间人员、质检人员
2、销售区域
- 销售区域:全国、市场、地区、客户
- 市场划分:如华东市场,华北市场等,每个市场会有一个市场主管;
- 区域划分:市场又会细分为好几个区域,如:华东市场可以细分会苏南、苏北、浙南、浙北等区域,每个区域会有一个区域主管,其上级是市场主管;
3、客户组
客户组或客户渠道类型,通常有:KA、特通、餐饮、婴童等。
三、可销售产品管理方案设计
1、目标
1)价格有时间有效期,客户每天只有一个价格;
2)价格可以维护到全国、市场、地区、渠道类型和最终客户;
2、设计方案
1)数据库表结构
客户可销售产品配置表 sale_client_goods_cfg
CREATE TABLE `sale_client_goods_cfg` (
`sid` bigint(20) NOT NULL AUTO_INCREMENT,
`catg_id` bigint(20) DEFAULT NULL COMMENT '渠道类型ID',
`catg_name` varchar(100) DEFAULT NULL COMMENT '渠道名称',
`obj_type` varchar(16) DEFAULT NULL COMMENT '对象类型',
`obj_id` bigint(20) DEFAULT NULL COMMENT '对象ID',
`obj_name` varchar(100) DEFAULT NULL COMMENT '对象名称',
`goods_id` bigint(20) DEFAULT NULL COMMENT '产品ID',
`goods_name` varchar(100) DEFAULT NULL COMMENT '产品名称',
`is_saleable` char(1) DEFAULT NULL COMMENT '是否可销售',
`write_uid` bigint(20) DEFAULT NULL COMMENT '操作人',
`write_uname` varchar(32) DEFAULT NULL,
`write_date` datetime DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
客户可销售产品分解表 sale_client_goods_level
CREATE TABLE `sale_client_goods_level` (
`sid` bigint(20) NOT NULL AUTO_INCREMENT,
`client_id` bigint(20) NOT NULL COMMENT '客户ID',
`client_name` varchar(100) NOT NULL COMMENT '客户名称',
`goods_id` bigint(20) NOT NULL COMMENT '产品ID',
`goods_name` varchar(100) NOT NULL COMMENT '产品名称',
`is_saleable` char(1) DEFAULT NULL COMMENT '是否可销售',
`level` int(11) NOT NULL,
`write_uid` bigint(20) DEFAULT NULL,
`write_uname` varchar(30) DEFAULT NULL,
`write_date` datetime DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
客户可销售产品最终生成表 sale_client_goods_list
CREATE TABLE `sale_client_goods_list` (
`sid` bigint(20) NOT NULL AUTO_INCREMENT,
`client_id` bigint(20) NOT NULL COMMENT '客户ID',
`client_name` varchar(100) NOT NULL,
`goods_id` bigint(20) NOT NULL,
`goods_name` varchar(100) NOT NULL,
`is_saleable` char(1) NOT NULL,
`write_uid` bigint(20) DEFAULT NULL,
`write_uname` varchar(30) DEFAULT NULL,
`write_date` datetime DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2)可销售产品维护,维护sale_client_goods_cfg配置表
-
catg_id
,渠道类型,0表示所有类型 -
obj_type
,对象类型,全国,市场,地区,客户 -
obj_id
,对象ID,全国为0,市场|地区|客户ID -
goods_id
,产品ID, -
is_saleable
,是否可销售(Y/N),Y-可销售,N-不可销售
假设餐饮渠道和华东市场客户不可销售500ML纯净水,则配置如下:
渠道类型 | 对象类型 | 对象ID | 对象名称 | 产品ID | 产品名称 | 可销售 |
0-所有渠道 | 全国 | 0 | 全国 | 1 | 500ML纯净水 | Y |
1-餐饮 | 全国 | 0 | 全国 | 1 | 500ML纯净水 | N |
0-所有 | 市场 | 1 | 华东市场 | 1 | 500ML纯净水 | N |
3)生成客户最终可销售产品
先生成中间表,sale_client_goods_level
假设有4个客户:
客户1(华东市场,特通);
客户2(华东市场,餐饮),
客户3(华南市场,特通),
客户4(华北市场,餐饮);
表中level表示优先级,数字越大优先级越高:
10-全国,20-市场,30-地区,40-客户;
具体渠道类型+1,特通+全国:10 + 1 = 11;
生成的中间表如下:
客户 | 产品 | 可销售 | 优先级 |
客户1 | 500ML纯净水 | Y | 10 |
客户2 | 500ML纯净水 | Y | 10 |
客户3 | 500ML纯净水 | Y | 10 |
客户4 | 500ML纯净水 | Y | 10 |
客户2 | 500ML纯净水 | N | 11 |
客户4 | 500ML纯净水 | N | 11 |
客户1 | 500ML纯净水 | N | 20 |
客户2 | 500ML纯净水 | N | 20 |
先生最终客户可销售产品表,sale_client_goods_list
根据上述中间表,优先级降序排序,取不重复记录,得到:
客户 | 产品 | 可销售 |
客户1 | 500ML纯净水 | N |
客户2 | 500ML纯净水 | N |
客户3 | 500ML纯净水 | Y |
客户4 | 500ML纯净水 | N |
** 生成规则 **
- 可以根据客户单独生成该客户所有可销售产品;
- 也可以生成所有客户可销售产品;
- 可以手工触发生成;
- 也可以配置后台作业,每天定时生成;