两篇文章中,介绍了智能货柜如何让补货效益最大化以及怎么提升智能货柜的故障处理效率,本篇文章则重点介绍智能货柜的商品相关的内容,重点涉及到如何实现不同机器的千机千面从而使商品更加畅销,提升销售额。

01 背景

不管是智能货柜,还是之前传统的自动贩卖机,在每一台机器投放前,都会面临一个问题,就是这个点位这台机器初始投放需要售卖哪些商品,对于很多自动售货机来说,可能更多的都是要运营的经验去投放,容易造成的问题就是投放出去的产品可能不适合这个点位的用户群体的需求,进而造成销量不佳。

而需要解决这个问题,其实会涉及到2个大的课题,第一个课题就是怎么从产品和数据层面,制定初始化投放的商品列表;第二个课题就是在每台机器运营一段时间后,怎么根据销量和用户需求,对商品的sku种类和结构进行动态的调整,实现销量的提升。

02 智能货柜初始化怎么投放商品

项目启动时,怎么确定第一批商品?

由于智能货柜不同于传统的饮料机弹簧机,只要大小合适都能放到机器内售卖,智能货柜涉及到商品学习、建模的过程,因此首先商品会受到技术的约束,需要根据技术的条件去挑选商品,这是第一个条件,比方说智能货柜刚开始会有如下技术上的条件限制:

  • 包装类型:硬包装,瓶装罐装的饮料,以及盒装能站立的零食
  • 商品高度:由于商品需要摆放在货柜层板,每层的高度一样,所以必须得保证高度小于层高
  • 包装版本:同一个商品只支持一个类型的包装,不支持不同的包装
  • 包装图案:一些过于透明的商品不支持,容易造成误识别

第二个因素,就是在技术限制的条件下,怎么选择这些商品,我们项目启动时,核心挑选了20多款商品,商品基本上都是爆款,比方说可口可乐、雪碧、桶装泡面、盒装的好丽友蛋糕、饼干等。也就是在项目刚启动时,以跑通流程为主要目标,在商品选择上,尽可能选择在技术上最容易支持的商品,待流程跑通后再根据用户、场景等需求去丰富整个商品种类。

正式运营机器投放时,初始商品怎么选择?

当机器正式大规模投放时,这时候商品已经较为丰富了,怎么避免运营人员无脑的根据经验去投放商品,这就需要在产品和数据层面提供支持了,主要涉及到以下2个维度:

第一,机器可能投放的地点包括写字楼、酒店、学校、健身房、政府部门等,不同的地点场景不一样,人群不一样,消费水平等也不一样,比方说写字楼里面会有高端写字楼、低端写字楼,投放的公司有可能是互联网公司,可能是游戏公司,也有可能是教育公司,这里面就有可能涉及到用户的性别、年龄、消费水平、工资水平等用户画像的基础数据。所以我们必须根据投放的点位机器的场景、用户画像等数据,为运营人员提供一个工具,在我们的商品库里面去生成建议投放的初始商品。

这个商品列表我们可以理解为一个商品模板,每一台机器对应的就是一个独立的商品模板,因为同一台机器内有些商品可能会存在互斥关系,比方说可口可乐和零度可乐,如果外包装特别相似的话,就不能在同一台机器内售卖。

这个初始化的投放,我们需要很多数据,这些数据怎么获取呢,主要有几个途径:一是业务员在谈合作的时候进行的实地调研,比方说人群规模、用户性别分布、年龄层分布、消费力的级别等数据,二是可以和第三方的数据公司进行合作,获取更精准的数据。通过这些数据,再结合我们的商品库的约束条件,就能根据场景和用户等数据进行个性化的商品投放。

第二,由于一些场地主会涉及到排他性或者指定商品,比方说有些点位的机器不允许卖矿泉水,有些地方则必须你指定售卖红牛等,所以在投放时,还需要结合场地的特殊要求去灵活的调整投放的商品列表。

03 怎么动态调整商品结构,实现最大效率的“千机千面”

“千机千面”在这里其实会和运营效率有一定的冲突,运营员如果一个人负责100台的机器,每台机器的商品如果都不一样,在备货、补货时肯定会影响一定的效率;但是我们站在用户的角度,如果每台机器的商品都是一样的,并且很长时间都不换新品,那么用户的留存和复购一定会产生极大的影响,那样只会造成销量降低,补货和备货的高效率也无用武之地,因此还是需要根据用户需求的不同,满足用户对于商品丰富度的需求。这里面涉及到几个核心的算法、策略和方案,例如销售速度预估算法、畅销品滞销品的定义、新品推荐策略、商品数量调整策略。

我们在机器初始投放的时候已经根据场景和用户画像等数据实现了商品的个性化,但是由于这些都是根据原始的数据进行大致的分析,没有真实的售卖订单数据和用户数据作为最直接的算法数据来源,无法真正实际满足用户的需求,所以需要在机器产生一定时间的真实订单数据后,根据订单和用户购买数据动态调整。

1. 畅销品滞销品调整

第一,实现最简单的商品调整,就是增加每台机器畅销品的数量,减少滞销品的数量,比方说每次补货的时候可乐都卖完了,但是雪碧都剩很多,那么我们的调整策略就是需要增加可乐的补货数量,减少雪碧的补货数量,同时为了避免雪碧过期,应该对雪碧进行打折促销,这里需要注意一个问题,就是需要保证商品丰富度,避免这样的调整,导致机器的商品sku越来越少,在前期的时候可以通过这种最简单的方案实现商品的优化和调整。

这里面涉及到的算法和策略就是对畅销品和滞销品的定义策略,主要可能会有以下几种方案去定义:

  • 通过销售排名来确定,比方说排名第一第二的为畅销品,排名末尾的为滞销品,这里会有一个问题就是畅销品增加的话,不一定会带来额外的增量销售,需要判断畅销品在一个补货周期内,是否充分满足了用户的需求,也就是当用户来机器前想买畅销品的时候,这个畅销品是否有货。
  • 通过二八法则去定义,20%的商品带来了80%的销量的商品则为畅销品,但是剩下的80%的商品都是长尾商品,还是得结合销量来确定滞销品;
  • 通过ABC法则来确定,ABC法则是二八法则的升级版,但是也只能解决宏观层面的商品数据表现,无法定义到最小颗粒度机器维度的商品畅滞销的分析。
  • 我们的方案则是引入了一个真实需求占比的指标来定义畅滞销品,也就是根据商品占据总货道的比例,与商品在总销量的比例进行比较,比方说机器总货道40个,可乐补货了1个,容量占比是1/40=0.025,补货周期内的总销量是40个,可口可乐卖了4个,则销量占比为4/40=0.1,那么可乐的真实需求占比为0.1/0.025=4,类似的其他商品也是这么计算,通过真实需求占比的排名就能定义出畅销品滞销品,这也是第一个定义的升级版。

通过畅销品和滞销品的调整方案,主要是在商品模板内的调整,不涉及到新品的调整,比方说为了满足商品丰富度,需要在消掉滞销品的时候,上架新的商品,以满足用户多元化的需求。同时还需要一个兜底的策略,比方说定义1个月内,必须要上几款新品,保证商品的新鲜度。所以畅滞销品的解决方案还是最基础的,还需要更好的方案来实现商品效率最大化。

2. 实现最大效率的“千机千面”

通过前期简单的畅滞销品的调整策略,可以解决很多机器商品销量的问题,但是还是会有一些问题无法解决,比方说无法根据商品的利润贡献来进行调整,商品结构调整时,需要考虑的不仅仅是销量,还需要考虑每个商品的利润贡献,有的商品可能销量不是特别好,但是利润贡献特别大。

为了更好的解决商品结构调整,满足用户需求的同时,实现机器利润最大化的要求,我们引入了更优的策略和算法,主要涉及到以下几个大的方面:

  1. 销量数据:类似之前提到的,排除售空等因素,计算每个商品单位时间内的销量(单位时间可以自己定义,比方说1小时、4小时、1天等,颗粒度越小数越准确,但是算力要求也会更高);
  2. 投入资源:也就是这个商品占了总机柜的多少,某个商品补货时的库存占总库存的比例;
  3. 利润占比:每个售出的商品毛利润是不同的,毛利润越高,则更应该增加该商品;

这里每个商品都可能涉及到如上几个指标的计算,通过以上指标可以去定义每个商品的销售贡献,销售贡献越高,则越畅销,通过此算法可以实现商品结构的最优调整,实现利润最大化。同时为了避免商品丰富度和长尾商品的需求,还需要引入新品的推荐机制,新品的推荐机制主要考虑同场景相似点位的需求,比方说AB两个点位的相似度很高,那么就可以将A点位畅销的商品推荐给B商品。

以上,这些指标不仅可以应用到单台机器,还可以应用到整个大盘的数据分析,实现对某条线路某个分公司的大盘数据监控。

04 总结

商品对于自动售货机是一个非常重要的课题,直接会影响到机器的销量和用户的体验,商品种类的是否满足用户的需求直接会影响该机器能不能赚钱。

当机器初始化投放时,需要根据点位场景、用户画像和特殊要求来实现商品的投放,但是最核心的还是需要根据机器的商品销售表现来进行动态调整,调整的时候还需要考虑商品的丰富度,同时策略上还需要有兜底,比方说运营策略上每个月需要至少调整一次,还需要监控运营员的执行效率,以实现整个商品调整策略的闭环,最终实现每台机器的商品都能最能契合该点位用户的需求,实现利润最大化。

#相关阅读#

智能货柜专题一:如何让“智能货柜”的补货效益最大化?

智能货柜专题二:怎么提升机器故障处理效率?

作者:harryli,新零售行业产品经理,微信公众号“Harry李先生笔记”;微信号:aihoneyyeah,欢迎交流。

函数在机器底层是如何实现的_智能货柜专题三:如何实现不同机器“千机千面”?...相关推荐

  1. 函数在机器底层是如何实现的_软件机器人如何实现“二次录入”自动化,促进智慧政务?...

    智慧政务采用先进的AI技术和手段,提高政府部门在办公.监管.服务和决策等多方面的智能化水平,而政务服务"一网通办",就是政务智能化服务的典型应用,其目标之一就是希望通过一个统一的对 ...

  2. JS函数简单的底层原理 -变量重复声明无效,隐式申明,变量提升,函数提升,以及堆栈内存的变化

    JS函数简单的底层原理 (个人理解): 1. 已经使用var申明且赋值,若再次申明,则第二次申明(不赋值)无效. 2.在同一个作用域下,只要是发生了同名,且变量完成赋值,后者会覆盖前者.存在两个相同的 ...

  3. 编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转

    编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转 如: 在32位机器上25这个值包含下列各位: 000 ...

  4. C++多态,虚函数作用及底层实现原理

    简述C++虚函数作用及底层实现原理 1.foreword C++是面向对象程序设计,其包括3项特点: (1)数据抽象:接口和实现分离 (2)继承:父类和子类 (3)多态:动态绑定 本文讨论多态. 当父 ...

  5. 第三章 程序的机器级表示

    程序的机器级表示 计算机执行机器代码,用字节序列编码低级的操作,包括处理数据.管理内存.读写存储设备上的数据,以及利用网络通信.编译器基于编程语言的规则.目标机器的指令集和操作系统遵循的惯例,经过一系 ...

  6. 机器学习理论《统计学习方法》学习笔记:第三章 k近邻法

    机器学习理论<统计学习方法>学习笔记:第三章 k近邻法 3 k近邻法 3.1 K近邻算法 3.2 K近邻模型 3.2.1 模型 3.2.2 距离度量 3.2.3 K值的选择 3.2.4 分 ...

  7. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  8. 第三章程序的机器级表示

    原地址:https://www.cnblogs.com/disturbia/p/4869229.html 第三章 程序的机器级表示 3.1 历史观点 Intel处理器系列俗称x86,开始时是第一代单芯 ...

  9. 第三章程序的机器级表示 学习报告

    第三章 程序的机器级表示 3.1 历史观点 Intel处理器系列俗称x86,开始时是第一代单芯片.16位微处理器之一. 每个后继处理器的设计都是后向兼容的--较早版本上编译的代码可以在较新的处理器上运 ...

最新文章

  1. 怎样将无线路由做成无线AP
  2. 山东华为服务器安装系统,山东云服务器平台安装
  3. 中国水环境治理市场需求前景与十四五战略规划建议报告2022版
  4. perl中q,qq,qw,qr的区别。
  5. Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresour
  6. 解决Vista文件操作缓慢问题:五大方案
  7. linux mysql 修改密码之后还是不能登录_怎样在Linux下搭建接口自动化测试平台?...
  8. scala语言+Spark学习一箩筐
  9. 性能测试场景设计--混合业务场景下的脚本比例控制
  10. 项目管理中如何应对用户频繁的需求变更?
  11. 留学生交流互动论坛网站
  12. 轻售后、缺服务,产销双增背景下家电行业“后院失火”?
  13. Broekett定理):
  14. python:三个你必须记住的pyinstaller打包命令
  15. 像李欣频一样思考人生~
  16. SQLServer2008密钥 key
  17. 爬虫虎牙斗鱼网站主播人气和姓名
  18. PTA天梯赛L1刷题总结(三)15分题型(超详细题解)
  19. asp毕业设计——基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码)——学籍管理系统
  20. 奥地利博士联培申请签证经验(奥地利签证)

热门文章

  1. 桌面打开图片时很慢,显示正在生成预览好几秒的解决办法
  2. vs2005 Key not valid for use in specified state
  3. [python,2018-06-29] 37%法则及其拓展解决恋爱问题
  4. stale element reference: element is not attached to the page document 异常
  5. module ‘pytest‘ has no attribute ‘allure‘问题解决
  6. 一个WEB网站高并发量的解决方案
  7. C# 出现System.TypeInitializationException类型初始值设定项引发异常
  8. 解决org.apache.shiro.session.UnknownSessionException: There is no session with id的问题
  9. 无法将stdClass类型的对象用作数组?
  10. 在JavaScript中解析JSON? [重复]