营销手段除了优惠券,还有拼团这种常见模式。提起拼团,大家自然而然地想到拼多多,在流量红利已经触底的情况下,以拼团这种新模式杀出一条血路。
前端时间在公司也做了些拼团活动的设计和代码开发,这里总结一下:
这次拼团活动设计,成团条件包含有两方面:1、按人数成团 2、按够买商品总数成团 两种模式
一、先上表结构
1、拼团活动主表 2、拼团活动商品表 3、拼团活动参团记录表
DROP TABLE IF EXISTS `egl_group`;
CREATE TABLE `egl_group` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_name` varchar(64) NOT NULL COMMENT '拼团活动标题',
`group_duration` int(11) NOT NULL COMMENT '成团有效时长 #单位min分钟',
`is_show` int(11) NOT NULL DEFAULT '0' COMMENT '前台是否显示 #0显示1不显示[默认0]',
`group_image` varchar(255) NOT NULL COMMENT '拼团活动图片',
`start_time` datetime NOT NULL COMMENT '拼团活动开始时间',
`end_time` datetime NOT NULL COMMENT '拼团活动结束时间',
`group_sort` int(11) DEFAULT '0' COMMENT '活动排序',
`is_repay` int(2) DEFAULT '0' COMMENT '是否已还库存#0未还1已还',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='拼团活动主表';
DROP TABLE IF EXISTS `egl_group_participation`;
CREATE TABLE `egl_group_participation` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL COMMENT '拼团表ID ',
`part_sn` varchar(64) NOT NULL COMMENT '团码',
`goods_id` int(11) NOT NULL COMMENT '商品SPUID',
`product_id` int(11) NOT NULL COMMENT '商品SKUID',
`user_id` int(11) NOT NULL COMMENT '参团用户ID',
`username` varchar(100) DEFAULT NULL COMMENT '参团用户名称',
`avatar` varchar(255) DEFAULT NULL COMMENT '参团用户头像',
`sponsor_user_id` int(11) NOT NULL COMMENT '拼团发起人用户ID',
`is_sponsor` int(11) NOT NULL DEFAULT '0' COMMENT '是否发起人 #0不是1是',
`start_time` datetime NOT NULL COMMENT '拼团发起时间',
`end_time` datetime NOT NULL COMMENT '拼团结束时间',
`purchase_num` double(11,2) NOT NULL COMMENT '购买数量',
`order_sn` varchar(100) DEFAULT NULL COMMENT '参团对应的订单编号',
`group_status` int(11) DEFAULT NULL COMMENT '组团状态 #0组团中1组团成功-1组团失败',
`is_refund` int(11) DEFAULT NULL COMMENT '是否退款#0未退1已退2微信退款失败',
`address_id` int(11) DEFAULT NULL COMMENT '用户收货地址',
`shipping_fee` decimal(10,2) DEFAULT NULL COMMENT '快递费用',
`use_yue` decimal(10,2) DEFAULT NULL COMMENT '使用了多少余额',
`actual_price` decimal(10,2) DEFAULT NULL COMMENT '实际微信支付了多少费用',
`pay_status` int(11) DEFAULT NULL COMMENT '支付状态;0未付款;1付款中;2已付款;4退款;5微信退款失败',
`post_script` varchar(255) DEFAULT NULL COMMENT '留言',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='参团表';
DROP TABLE IF EXISTS `egl_group_product`;
CREATE TABLE `egl_group_product` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL COMMENT '拼团活动表ID',
`goods_id` int(11) NOT NULL COMMENT '关联SPU_ID',
`goods_name` varchar(120) NOT NULL COMMENT '商品名称',
`goods_price` decimal(10,2) NOT NULL COMMENT 'SPU价格',
`product_id` int(11) NOT NULL COMMENT '关联SKU_ID',
`goods_specification_ids` varchar(50) DEFAULT NULL COMMENT '商品规格',
`product_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'SKU价格',
`group_product_price` decimal(10,2) DEFAULT '0.00' COMMENT '参团SKU价格',
`product_number` double(11,2) DEFAULT '0.00' COMMENT '参团SKU数量',
`is_need_vip` int(11) DEFAULT '0' COMMENT '是否要求会员#0不要求1要求',
`group_type` int(11) DEFAULT '0' COMMENT '拼团类型#0按人数拼团1按购买数量拼团[成团人数和成团数量二选一]',
`group_people_limit` int(11) DEFAULT '0' COMMENT '成团人数限制',
`group_volume_limit` double(11,2) DEFAULT '0.00' COMMENT '成团数量限制',
`is_free_shipping` int(11) DEFAULT '0' COMMENT '是否包邮#0不包邮 1包邮[默认0]',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='拼团表与商品SKU中间表';
业务代码这里就不在多说了,直接上结果:
二、业务模型
1、拼团活动列表
2、添加拼团活动商品
上侧是:查询所有商品信息
下侧是:参团商品价格 规格、以及参团模式的设置
这里运营在上侧添加活动商品到下侧时,要先预扣活动库存。然后当活动结束(包括手动提前结束、或者定时调度检测结束,或者手动删除活动商品--逻辑删除)后,自动将剩余的库存还回去
3、拼团详情
这一页只显示团长(拼团发起人)的信息,点击查看团员后可看所有拼团成员的信息包括团长。
根据业务需求,我们在这里添加了“手动成团”的按钮,在用户参团付款但尚未构成成团条件后,我们的运营可以根据业务需求手动拼团成功
在拼团成团的界面,我们可以看到拼团的状态,和退款状态,在尚未成团的状态下,我们可以根据业务需求手动退款
每一个参团成员参团付款后,我们会检测,该团是否已经达到成团条件,如果达到成团条件,我们会将数据添加到订单表中,对订单进行处理。
也就是说,在用户尚未达到成团条件前,我们暂时将数据存储在活动参团表中。