应用场景retailshelf monitoringout-of-stock

在实时门店地图上监控货架:库存与冷链

零售货架监控:在一张实时 3D 门店地图上按货架显示库存、按库存状态为各部门着色,并监控冷柜温度和 RFID 读写器,数据通过数据表 API 实时写入,缺货位置一目了然。

阅读约 10 分钟发布于 更新于 作者 Spatial Map team
Retail Mart Store 演示的 3D 预览:货架上有绿、琥珀、红三色的库存百分比标记,各部门按库存状态着色,RFID 读写器呈脉冲显示,冷柜上有温度计标记

本文要点

门店团队早就在采集数据:手持终端循环盘点、冷柜探头、RFID 门禁读取、部门主管的晨间巡店。他们缺的是一个能把这些都放到门店本身之上的地方。本文以我们的 Retail Mart Store 演示为例——三层楼、扶梯和电梯、四个实时图层——讲解如何在你的门店里搭建同样的东西。

为什么缺货检测应该放在地图上

缺货首先是位置问题,其次才是库存问题。ERP 知道某个商品已经为零;补货员需要知道是哪个货架、哪条通道、哪一层。列表按商品或数值排序,门店却是按地理位置排列的。当每个货架都显示自己的满载程度、每个部门都按状态着色时,值班主管一眼就能看完整层楼,直奔红色的地方。

这就是在地图上做货架监控的思路:盘点和传感器数据留在原处,只是给它们一个落脚点。Spatial Map 不取代你的 WMS、ERP 或补货逻辑,而是把它们的数字绑定到平面图上的形状和位置,在数据表变化时刷新已打开的地图,并让任何拿到分享链接的人在浏览器里看到同样的画面。零售解决方案介绍了门店、超市和购物中心的用法。

13
数据表字段类型
1,000
每次批量写入的最大行数
60/分钟
每把 API 密钥的请求数
6
界面语言,含阿拉伯语
查看器中的 Retail Mart Store,所有图层开启
只读查看器中的 Retail Mart Store:货架上方有绿、琥珀、红三色库存百分比标记,紫色 RFID 读写器标记,冷柜旁有温度计标记;Layers 显示 11/11 已开启
只读查看器中的 Retail Mart Store:货架上方有绿、琥珀、红三色库存百分比标记,紫色 RFID 读写器标记,冷柜旁有温度计标记;Layers 显示 11/11 已开启

一次建模:楼层、货架、部门、冷柜

一切从几何开始。在编辑器里放入门店平面图——PDF 按图幅自动换算比例,DWG 或 DXF 图纸渲染为平面图图片,PNG 或 JPG 也可以——然后在上面绘制。演示中每层(Ground、Level 1、Level 2)各有一张平面图,由以 3D 呈现的扶梯和电梯相连,查看器里的楼层切换器可在各层之间切换。

  • 货架和端架——用 Rack 工具绘制;演示中库存标记就放在每个货架的位置上。
  • 部门——画成区域(Bakery、Dairy、Frozen Food、Fresh Produce、Electronics & Appliances……),让状态为地面着色。
  • 冷柜和冷冻柜——测量它们的探头放在真实位置。
  • RFID 读写器——每个读写器或通道门一个标记或区域,让状态在原位脉冲显示。
  • 扶梯、电梯和楼梯——以 3D 连接各层。导航路线限定在同一层内,并显示在哪里换层。
编辑器中的 Retail Mart Store
Spatial Map 编辑器中的 Retail Mart Store 平面图:着色的部门区域、核心区的扶梯和 EV 1、EV 2 电梯、紫色 RFID 读写器标记,顶部有 Data links (4) 按钮,右侧是 Layers 面板
Spatial Map 编辑器中的 Retail Mart Store 平面图:着色的部门区域、核心区的扶梯和 EV 1、EV 2 电梯、紫色 RFID 读写器标记,顶部有 Data links (4) 按钮,右侧是 Layers 面板

一家门店里的四个实时图层

演示同时运行四个数据链接。查看者在 Layers 面板里开关它们:冷链技术员可以隐藏库存,补货主管可以隐藏温度。

图层显示模式在演示中显示什么
Shelf stock by rackLive location marker167 个货架,各自标注满载程度(如 76%):130 个 OK、22 个 Low、15 个 Critical
Department stock statusColor a shape三层共 40 个部门,按状态着色
RFID reader activityPulsing zone activity85 个读写器,标注最近一小时的读取次数
Cold-chain temperatureLive location marker7 个冷柜和冷冻柜探头,标注当前读数

部门库存状态正是 Color a shape 的用武之地:部门是一大片区域,给它着色能提供单个货架标记给不了的全店视角。颜色来自样式规则。在编辑器的 Style rules 面板里写一次规则——条件 status = Critical,填充红色——然后在每个需要它的链接上勾选。规则自上而下判断,第一条命中即生效。演示中部门用了三条(Critical 红、Low 琥珀、Healthy 绿),读写器也用了三条(Offline 红、Idle 灰、Active 紫)。

冷柜与冷冻柜的冷链监控

门店的冷链节奏和配送中心不同:开放式冷柜散布在卖场各处,顾客整天开关柜门,后仓的冷冻柜和前场的一样重要。演示有七个探头——两个在 Dairy 冷藏柜(设定值 3 °C),五个在 Frozen Food 冷冻柜(设定值 −18 °C)。每条记录包含读数、设定值、湿度、电量、当天开门次数和最近一次读数时间。

阈值就是针对读数的样式规则。规则可以组合条件(All match (AND)),于是一条规则可以是“冷冻柜高于 −15 °C”,另一条是“冷藏柜高于 5 °C”。把最紧急的放在最前面:

规则(示例)条件颜色
冷冻柜温度过高unit_type = Freezer AND temperature_c > −15红色
冷冻柜温度漂移unit_type = Freezer AND temperature_c > −17琥珀色
冷藏柜温度过高unit_type = Chiller AND temperature_c > 5红色
电量低battery_pct < 20灰色
  • 每个探头一个标记,放在它测量的柜子旁——而不是网关处。
  • 冷藏和冷冻分开设规则,一个阈值无法兼顾两者。请使用你自己的食品安全限值;上表数值仅为示例。
  • 一份 Cold-Chain Sensors 报表,在地图旁列出每个探头及其最新读数。
  • 逐行历史,让“冷冻岛柜 1 是什么时候开始升温的?”有带时间戳的答案。

数据接入:数据表、API 密钥与写入 API

把盘点数据和读数放上地图,最简单的方式是数据表。你定义字段结构——文本、数字、布尔、日期等——Spatial Map 会为它生成 REST API。盘点应用、IoT 网关或夜间脚本用 API 密钥写入行。如果数据已经在某个 HTTP 接口后面,数据表也可以按计划从该 URL 拉取。

  1. 1
    创建数据表

    Tables → Create new table。选择类型(探头用 Marker / POI 或 Sensor,部门用 Polygon / area),添加 rack_name、department、units_on_hand、capacity_units、status 等字段。每行用一个稳定的键标识——货架编码就很合适。

  2. 2
    创建 API 密钥

    打开数据表的 API & access 标签,为每个系统创建一把密钥。每把密钥只能写入这一张表,撤销某一把不影响其他。

  3. 3
    添加数据链接

    在编辑器中 Data → Manage data links → New link:选择数据表和显示模式(货架和探头用 Live location marker,部门用 Color a shape),并告诉它每条记录如何定位——用坐标,或用某个字段与形状名称匹配。

  4. 4
    添加规则

    在 Style rules 面板里一次写好正常 / 偏低 / 严重的规则,再在链接上勾选。最紧急的放最前面,确保它优先生效。

bash·写入或更新一个货架的盘点数(示例数值)
curl -X POST https://app.spatialmap.io/api/v1/public/tables/rows \
  -H "Authorization: Bearer sgv_tbl_..." \
  -H "Content-Type: application/json" \
  -d '{
    "entityKey": "G-A10-85",
    "payload": {
      "rack_name": "A10",
      "department": "Grocery Section",
      "floor": "Ground",
      "units_on_hand": 1314,
      "capacity_units": 1728,
      "fill_label": "76%",
      "status": "OK",
      "lat": 33.78801,
      "lng": -117.97911
    }
  }'

该接口是 upsert:再次发送相同的 entityKey 会更新这一行而不是新建重复行,每次写入都会记入该行的历史。整店盘点时,POST /rows/bulk 每次请求最多接受 1,000 行。每把密钥每分钟限 60 次请求,所以请批量写入,不要每扫一次就调用一次。

每日盘点报表、审计与历史

地图回答“在哪里”,报表回答“有多少、从什么时候开始”。演示门店为每张表都建了报表——Shelf Stock (daily count)、Department Stock (daily count)、RFID Reader Reads 和 Cold-Chain Sensors——另有 RFID Live Map,这是一份全地图布局的报表:左侧是读写器列表,中间是实时门店,周围是 KPI 和图表。

  • 每日盘点报表——KPI、表格和图表,可按部门或楼层筛选。
  • 冷链报表——每个探头的最新读数、设定值和状态。
  • 导出——PDF 和 Excel 用于审计,另有 CSV、JSON,每个图表还可导出 PNG。
  • 历史——在查看器中打开任意货架或探头,其逐行历史会列出每次变更及变更内容。
RFID Live Map 报表
全地图报表 Retail Mart · RFID Live Map:RFID 读写器列表及今日读取次数,中间是实时门店地图,另有 KPI 卡片,以及含状态环形图和各楼层读取量柱状图的 Insights 面板
全地图报表 Retail Mart · RFID Live Map:RFID 读写器列表及今日读取次数,中间是实时门店地图,另有 KPI 卡片,以及含状态环形图和各楼层读取量柱状图的 Insights 面板

在你的门店里试试

一个下午就能复刻:放入一张平面图,画出部门和货架,建一张数据表,发送几行数据。开启 7 天免费试用——无需信用卡,最多 5 个设施——再用 Solutions 中的 Retail 模板把门店和它的报表、数据归在一起。Pro 方案每月 60 美元或每年 600 美元,最多 4 个设施(价格);零售解决方案页面提供了全景介绍。

让数据落到该在的平台上。

Spatial Map 把电子表格、传感器数据流和 CAD 图纸融合成一张实时的 3D 场地视图 —— 无需安装,七天免费试用。

在线演示

继续阅读