一、摘要

销售管理是快消品饮料企业信息化核心重点,客户可以销售哪些产品是饮料企业销售管理中的重头戏,一来可以防止客户之间相互冲货,二来可以加强客户管理、利于渠道拓展。因此,饮料企业信息化软件其销售模块应该包含可销售产品管理,实现产品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

** 生成规则 **

  • 可以根据客户单独生成该客户所有可销售产品;
  • 也可以生成所有客户可销售产品;
  • 可以手工触发生成;
  • 也可以配置后台作业,每天定时生成;