有赞零售移动门店商品实践

一、模块设计

零售移动端的组件化方案 门店商品数据拆分到商品模块。收银开单、营销等模块由商品模块的路由接口搜索门店商品。 商品模块提供商品数据和门店商品的离线同步任务。

二、门店商品离线支持

考虑到门店商家的网络状况,需要离线模式来保证网络不稳定或无网状态下,商家能够正常进行下单、收银操作;商品模块采用离线数据库方式,在有网络时从后端增量拉取变更的门店商品。

2.1 同步任务

启动机制

  • 在零售APP回到前台。
  • 切换到商品选择页。

商品同步任务 增量拉取 门店商品。

2.2 长连接同步

只采用移动端主动拉取商品的方式,不能保证门店商品数据及时更新:如在APP或PC端进行商品管理时,移动端门店商品信息仍然是旧数据,对门店收银造成困扰。之后采用长连接的商品变更消息方式,来通知移动端及时更新门店商品。

三、门店商品搜索

零售商家门店商品数量,需要支持商品的检索能力;零售的门店商品检索主要分为两个场景:

模糊搜索
精确搜索

3.1 模糊搜索

模糊搜索支持商品的拼音、条码的模糊匹配。

应用场景:商家在门店商品页搜索商品。

在商品页输入指定的商品名称/条码/拼音,商品模块进行商品搜索返回对应的门店商品数组。

3.2 扫码枪模式

扫码枪模式下,支持标准商品条码和生鲜商家自定义的称重条码搜索

PLU

考虑扫枪模式下多应用与识别商品条码场景,与模糊搜索不同,属于条码的精确匹配,在设计上建立商品搜索表的 条码 索引,提升商家的扫码场景收银效率。

四、营销活动

4.1 营销活动组合门店商品

门店的营销活动与门店商品业务解耦,商品模块需要给营销活动模块提供门店商品查询的能力,营销活动模块组合门店商品与营销信息展示。

营销活动请求指定门店商品信息时,可能会存在门店商品尚未离线到本地。如果门店商品未拉取到本地在,则请求服务器对应的门店商品数据,存储到本地后返回给统一返回给营销模块。

4.2 门店商品渲染营销UI

在营销活动模块,启动商品模块的商品规格选择页面时。规格选择页通过不同的活动类型来渲染展示。

请求:商品信息、营销活动信息

{
  "pain_type" : "活动类型",
  "activity_value" : "活动信息json",
  "goods_value": {
    "price": 0,
    "property_price": 1,
    "amount": 0,
    "unit": "件",
    ...
  }
}

返回:营销渲染数据

{
    "sku_price" : "¥12.00", 
    "total_price" : "¥12.00",
    "available_skus" : [12980,12121],
    "limited_amount" : 0,
    "info_content" : ""
}

五、商品收银

  • 商品模块添加商品到交易侧的购物车
  • 购物车由路由查询商品参加的营销活动信息

六、待做

门店商品的拼音目前由客户端来进行生成,未对多音字进行处理,后期对多音字的拼音进行优化,解决多音字搜索问题。

欢迎关注我们的公众号