image.png
image.png
营销手段除了优惠券,还有拼团这种常见模式。

一、创建拼团活动

创建拼团活动的过程中,至少包含以下元素:拼团活动时间、成团有效时间、成团人数、每人限购、可开团商品和拼团活动状态

1. 拼团活动时间

可开团商品的拼团活动时长,如一个商品的拼团活动时间为6月28日00:00:00至7月3日00:00:00,这个时间段内,该商品可开团,用户进入商品详情页可发起拼团或参与拼团。

2. 成团有效时间

用户开团后与其他人组团的时间,该时间内没有组团成功将拼团失败,系统自动退款。特别注意的是:因为引入了这个字段,会有某用户对某商品的实际拼团结束时间。
实际拼团结束时间=发起拼团时间+成团有效时间(发起拼团时间=发起拼团人的支付时间)
什么意思呢?
举个例子来讲:若该商品的拼团活动时间为6月28日00:00:00-7月3日00:00:00,成团有效时间为24小时,则7月3日0点以后,该商品不可再开团,但已开的团用户还可以参团,即该活动实际在7月4日00:00:00结束拼团促销。

3. 成团人数

凑够多少人满足拼团条件,限制条件为至少2人。

4. 每人限购

每人最多购买多少件,拼团商品因价格较便宜,根据预算看是否需要配置该字段。

5. 关联商品

前面四个字段都属于拼团活动的基本属性字段,我们要把这些字段关联到具体某一个商品上或多个商品上,并设置拼团价。
拼团活动商品创建成功后,商品就被分为普通商品和拼团商品(在商品表里也会有一个字段来标记和区分),拼团活动列表新增一条记录。

6. 拼团活动状态

  • 未开始:拼团活动开始时间>当前时间;
  • 活动中:拼团活动开始时间<当前时间且拼团活动结束时间>当前时间;
  • 已结束:拼团活动结束时间<当前时间;
  • 已失效:“活动中”状态的活动商品手动点击“已失效”按钮,变为已失效,活动提前结束。

二、用户发起拼团

用户在拼团商品详情页发起拼团活动,生成一条团单记录和订单记录,后台分别对应团单列表和订单列表。

1. 团单列表

不同的拼团状态,订单ID个数和已参团人数不同,假设成团人数为3人。

  • 待成团:发起者发起拼团但未支付,订单ID有该用户的下单数据,发起拼团时间和拼团结束时间为空(此团未开成功,自然不存在发起拼团时间和拼团结束时间之说,发起者支付成功才意味着开团成功),已参团人数为0。
  • 拼团中:发起者支付成功,开团成功,已参团人数为1。“拼团中”状态的订单不可取消,需拼团成功后才可取消。
  • 拼团成功:成团人满且都支付成功,此时一个团购ID对应三个订单ID。
  • 拼团失败:成团有效时间内,成团人数未满,拼团失败,系统自动退款。

特别说明的是,C端拼团商品详情页【和其他人拼团】的数据取自团单数据,不是订单数据。

2. 拼团订单列表

拼团商品的订单可合并在普通订单列表,增加一个“订单类型”字段用于区分,拼团订单列表有“查看同团订单”跳转链接。

db

  1. CREATE TABLE `groups` (
  2. `group_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `group_no` varchar(32) DEFAULT NULL COMMENT '团号',
  4. `group_title` varchar(128) DEFAULT NULL COMMENT '团购标题',
  5. `group_logo` varchar(128) DEFAULT NULL COMMENT '团购logo',
  6. `group_area` varchar(128) DEFAULT NULL COMMENT '团购区域(区域ID集合)',
  7. `begin_time` datetime DEFAULT NULL COMMENT '开始时间',
  8. `end_time` datetime DEFAULT NULL COMMENT '结束时间',
  9. `max_num` int(11) DEFAULT NULL COMMENT '最大买家数',
  10. `buyer_amt` decimal(12,2) DEFAULT NULL COMMENT '买家起团金额',
  11. `min_amt` decimal(12,2) DEFAULT NULL COMMENT '最低开团金额',
  12. `group_status` tinyint(4) DEFAULT NULL COMMENT '状态(1发布 -1未发布 2团成 3未团成)',
  13. `remarks` varchar(256) DEFAULT NULL,
  14. `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人',
  15. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  16. PRIMARY KEY (`group_id`)
  17. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='团购主表';
  1. CREATE TABLE `groups_buyer` (
  2. `gb_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  3. `buyer_id` bigint(20) DEFAULT NULL COMMENT '买家ID',
  4. `group_id` bigint(20) DEFAULT NULL COMMENT '团购ID',
  5. `item_id` bigint(20) DEFAULT NULL COMMENT '团购明细ID',
  6. `order_id` bigint(20) DEFAULT NULL COMMENT '订单ID',
  7. `gb_num` int(11) DEFAULT NULL COMMENT '团购数量',
  8. `gb_price` decimal(12,2) DEFAULT NULL COMMENT '团购价格',
  9. `gb_amt` decimal(12,2) DEFAULT NULL COMMENT '团购金额',
  10. `gb_status` tinyint(4) DEFAULT NULL COMMENT '状态(1完成 -1取消)',
  11. `gb_time` datetime DEFAULT NULL COMMENT '团购时间',
  12. PRIMARY KEY (`gb_id`)
  13. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='团购买家表';
  1. CREATE TABLE `groups_item` (
  2. `item_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  3. `group_id` bigint(20) DEFAULT NULL COMMENT '团购ID',
  4. `goods_id` bigint(20) DEFAULT NULL COMMENT '商品ID',
  5. `format_id` bigint(20) DEFAULT NULL COMMENT '商品规格ID',
  6. `group_price` decimal(12,2) DEFAULT NULL COMMENT '团购价格',
  7. `group_num` int(11) DEFAULT NULL COMMENT '团购数量',
  8. `item_status` tinyint(4) DEFAULT NULL COMMENT '状态(1在用 -1停用)',
  9. `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人',
  10. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  11. PRIMARY KEY (`item_id`)
  12. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='团购明细表';