线上盲盒系统产品设计思路
线上盲盒盲盒是客户在购买⽀付商品前,不能事先知道产品具体款式,只是知道⼤概是什么
东⻄,这有很强的随机性,只有在顾客买了以后,打开盒⼦才能知道⾃⼰抽到了什么样式的商品。
这种抽盲盒的不确定性会激发你不断反复多次购买,最近,这种抽盲盒⽅式成了让顾客很上瘾的东
⻄,这和买彩票⽐较相似,有很⼤的运⽓成分。
盲盒的⾛红,离不开个性的营销⽅式 --- 靠的是盲盒的不确定性和让⼈产⽣的惊喜⼼理,盲盒
模式就是精准捕捉到了消费者这种⼼理。有专家指出,现在社会年轻⼈精神和⼯作压⼒都很⼤,压
⼒需要⼀个释放的突破⼝,⽽盲盒那种令⼈惊奇的让⼈有惊喜感的像赌博那样有刺激感的玩法,满
⾜了年轻⼈消费需求。
零售卖盲盒,可以⾃由设置盲盒商品的概率、价格,开盒随机开出⼀款商品,如:玩具、⽇
⽤品、化妆品等。结合客户的需求,利⽤刚性需求的快消品,⽤于增加顾客的复购率,通过产品的
差异化吸引客户的消费,达到成交的⽬的。
线上盲盒系统模型分解
1. 系统后台可以⾃定义盲盒类别
例如对盲盒做类别布局,让⽤户参与细分的类别盲盒,例如玩具类,游戏公仔类,上线会员卡类,
电⼦产品类,快消品类等等,⽤户在进⼊不同的盲盒类别去选择符合⾃⼰的想要的产品。
2. 盲盒类产品细分
例如电⼦产品盲盒类,可以对分为 100 元区, 300 元区, 500 区,每个价格区有不同的产品设置
100 元区实例:蓝⽛⽿机、 ⾃拍杆、 直播架、 ⻨克⻛⼀体话筒等等产品,其中系统设定⼀款⾼价值
的隐藏款产品:例如苹果 ipad 之类
3. 盲盒产品隐藏款:
隐藏款产品是系统⾼附加值的产品,系统系统通过设定随机数⾃动触发,增加盲盒抽奖的趣味购买
⾏为,隐藏款的抽中触发⼏率相⽐较其他抽中⼏率要低得多,每个盲盒产品去有 1 款搞价值的隐藏款
产品,隐藏款的价值远远⾼于购买盲盒的价格,当然这个抽中⼏率也远远低于其他盲盒产品的⼏率
4. 盲盒产品购买模式:
实开型盲盒,⽤户进⼊选择盲盒类别区,选择盲盒价格区,在线下单⽀付后,系统随机为⽤户抽出
⼀款盲盒,并提示⽤户抽中的是什么产品,产品市场价值和详细介绍,产品的相关售后保障服务介
绍等信息
5. 关于盲盒产品可以选择在线寄售
⽤户抽奖盲盒的过程,在购买驱动上是想抽中⾃⼰想要的产品,但是这是有很⼤的⼏率运⽓,所以
可能⽤户在抽中产品的不是⾃⼰想要的,或者多次抽中了同⼀款不想要的产品,从资源合理规划的
⻆度来说,对⽤户是⼀种冗余资源获取,系统开发出⼀种寄售模式
6. 盲盒产品的寄售⽅式
⽤户购买盲盒产品后,系统随机爆出⼀款产品后,在会员产品订单中⼼,盲盒订单状态处于未确认
状态,在此⽤户可以选择当前产品发货,或者选择平台⾃动寄售模式,平台会⾃动对当前产品寄售 在平台上,平台会在 1 到 5 个⼯作⽇帮⽤户产品售出,售出的货款平台收取 10% 寄售服务费,另外
90% 的货款⾃动转账到⽤户账户
盲盒系统开发代码分享:
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
$f = [];
$f[] = Form::frameImageOne('product', '选择盲盒', Url::buildUrl('productList', array('fodder' => 'product','cate_id'=>16)))->icon('plus')->width('100%')->height('500px');
$f[] = Form::hidden('product_id', '');
$f[] = Form::frameImageOne('product1', '中奖商品', Url::buildUrl('productsList', array('fodder' => 'product1','is_box'=>0,'ids'=>'')))->icon('plus')->width('100%')->height('500px');
$f[] = Form::input('product_ids', '中奖盲盒商品')->placeholder('不能在此处修改,可通过选择商品进行调整')->readonly(true);
$f[] = Form::frameImageOne('product2', '显示商品', Url::buildUrl('productsList', array('fodder' => 'product2','is_box'=>0,'ids'=>'')))->icon('plus')->width('100%')->height('500px');
$f[] = Form::input('show_product_ids', '显示盲盒商品')->placeholder('不能在此处修改,可通过选择商品进行调整')->readonly(true);
$f[] = Form::input('title', '盲盒名称');
$f[] = Form::input('info', '盲盒简介')->type('textarea');
$f[] = Form::input('unit_name', '单位')->placeholder('个、位');
$f[] = Form::select('temp_id', '盲盒运费模板')->setOptions(function () {
$list = ShippingTemplates::getList(['page' => 1, 'limit' => 20]);
$menus = [];
foreach ($list['data'] as $menu) {
$menus[] = ['value' => $menu['id'], 'label' => $menu['name']];
}
return $menus;
})->filterable(1)->col(12);
$f[] = Form::frameImageOne('image', '盲盒主图片(305*305px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'image')))->icon('image')->width('100%')->height('500px');
$f[] = Form::frameImages('images', '盲盒轮播图(640*640px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'images')))->maxLength(5)->icon('images')->width('100%')->height('500px');
$f[] = Form::number('num', '单次购买商品个数', 1)->min(1)->col(12);
$f[] = Form::number('sort', '排序')->col(12);
$f[] = Form::radio('is_host', '热门推荐', 1)->options([['label' => '开启', 'value' => 1], ['label' => '关闭', 'value' => 0]])->col(12);
$form = Form::make_post_form('添加盲盒', $f, Url::buildUrl('save'));
$this->assign(compact('form'));
return $this->fetch('public/form-builder');
}
/**
* 保存新建的资源
* @param int $id
*/
public function save($id = 0)
{
$data = Util::postMore([
'product_id',
'title',
'info',
['unit_name', '个'],
['image', ''],
['images', []],
['postage', 0],
['price', 0],
['sort', 0],
['stock', 0],
['sales', 0],
['is_show', 0],
['is_host', 0],
['is_postage', 0],
['temp_id', ''],
['weight', ''],
['volume', ''],
['product_ids',''],
['show_product_ids',''],
['num', 1],
]);
$data['description'] = StoreDescription::getDescription($data['product_id']);
if (!$data['title']) return Json::fail('请输入盲盒名称');
if (!$data['product_ids']) return Json::fail('请选择盲盒商品');
if (!$data['show_product_ids']) return Json::fail('请选择盲盒商品');
if (!$data['image']) return Json::fail('请上传商品图片');
if (count($data['images']) < 1) return Json::fail('请上传商品轮播图');
$data['images'] = json_encode($data['images']);
if ($id) {
unset($data['description']);
$product = StoreBoxModel::get($id);
if (!$product) return Json::fail('数据不存在!');
$data['product_id'] = $product['product_id'];
StoreBoxModel::edit($data, $id);
return Json::successful('编辑成功!');
} else {
$data['add_time'] = time();
$res = StoreBoxModel::create($data);
$description['product_id'] = $res['id'];
$description['description'] = htmlspecialchars_decode($data['description']);
$description['type'] = 4;
StoreDescription::create($description);
return Json::successful('添加盲盒成功!');
}
}