我们开发 贴合连锁需要的 零售系统
收银台、支付链路、商品核算、连锁管理、系统对接,以及上线后的持续支持。
零售系统的开发与落地:卖场里的收银台与 POS、支付终端、商品目录与价格、门店库存与仓储、会员、员工权限、数据分析,以及连锁的中央管理面板。以下说明每个模块如何构成、与哪些系统和设备相连、覆盖哪一段流程。
零售软件 — 一套系统,把商品从门店收货一路带到打出的小票和入账的营收,并让商品、价格和库存数据在连锁的每一个网点保持一致。
从外面看,门店就是货架加收银台。里面则是几个互相连接的程序:卖场里的收银程序、门店的商品核算、支付链路、连锁的中央系统,以及与财务、仓储、CRM、网店等外部系统的交换层。
「收银程序」和「零售系统」之间的界线,划在门店数量和决策发生的位置上。一台收银台,用收银电脑上的本地程序就够了。一旦门店多于一家,就会出现单店从来不会遇到的问题:唯一那份商品台账放在哪里、谁能一次改遍所有门店的价格、商品在门店之间怎么流转、以谁的库存数为准。
零售连锁的链路——由数据串起来的九个环节:
这些环节是双向连通的:台账和规则从中央系统下发到各网点,销售、商品流转和设备事件则回传上来。任何一处断开都会立刻显形——货架价格与小票不一致、库存出现负数,或者营收没有入账。
不是页面,也不是表格,而是业务对象——带有自身状态、操作者和历史的记录:
一旦流程用对象描述出来,它就变得可核查:报表里的每一个数字背后都有单据,每份单据都有操作者和时间,每一次争议都有记录,而不是口头说法。
四个单店根本不存在的问题。对它们的回答,正是连锁系统与收银程序的区别:
门店或连锁上零售软件的六个理由。没有系统的时候,每一项都要靠表格、门店之间打电话和凭记忆重数来完成。
商品、条码、价格和折扣规则只建一次,然后分发到各网点。市中心的店和郊区的店读的是同一份台账,而不是两个改动历史各不相同的文件。
商品通过扫条码或称重进入小票,价格由规则填入,折扣由系统计算。收银员不手打价格——也就不会打错,更不会自己定价。
销售在小票关闭的那一刻扣减商品,收货和移库在单据过账的那一刻扣减。库存不再是上次盘点留下的数字,而成了向供应商下单时可用的实数。
价格和折扣按网点组、类目或时间计划用规则设定。促销前给一千个商品调价只要几分钟,而且可以回退,不必带着打印件跑一圈门店。
退货、撤单、手工折扣、改价和开钱箱,都是带操作者、时间和原值的记录。争议按日志复盘,而不是听当班的人怎么说。
能看到每个网点在什么时段卖出了什么、哪些商品毫无动销、哪里的退货在增加,以及一场促销扣掉折扣后到底带来了多少。
它不是一个程序,而是一组互相关联的软硬件部件。每个部件各司其职,也可以单独升级:不会因为中央面板加了一张新报表,就去重写卖场里的收银台。
运行在收银电脑或 POS 一体机上的程序:收银员界面、与扫描枪和电子秤协同、小票计算、与支付终端的交互、打印单据、班次管理。它可自主运行,与服务器失联时仍能继续为顾客结账。
物理层:收银电脑、扫描枪、小票打印机、支付终端、电子秤、数据采集终端、钱箱、显示屏。每一台设备都登记在台账里,并绑定到具体门店和工位。
无现金支付链路:收银台与支付终端之间的交互、支付操作的状态、把支付与小票对应起来、退款、处理拒付和中断、与收单机构流水的对账。
接收各网点数据、套用规则、交换队列、任务与报表调度、把台账回发下去。它随门店数量扩容,而不是开到第十一家时就要重写。
存放业务对象及其历史:商品、价格、库存、小票、支付、流转单据、顾客、员工、事件。操作记录不可篡改,备份按计划创建并做恢复验证。
连锁管理者的工作台:门店、商品结构、价格、库存、销售、促销、员工、设备、错误和关键指标集中在一个界面里,并按角色划分访问权限。
哪里需要就用在哪里:商品专员用于扫码收货和盘点的应用、管理者查看各网点汇总的应用、顾客用的带会员卡和电子小票的应用。
与外部系统的数据交换:财务、会计、仓储、CRM、网店、支付服务。队列、消息重投递、格式版本、数据交换日志、定期对账。
建立在业务操作之上的数据看板:销售、客单价、毛利、周转、退货、促销效果、收银员表现。它在数据副本上计算,这样重报表永远不会拖慢卖场里的收银台。
这些部件之间不是「有条件就连」,而是必须相连:没有台账收银台就不工作,没有中央面板台账就没有意义,没有各网点的数据面板就毫无用处。因此系统要整体设计、分块落地——顺序上让每一步都建立在上一步的数据之上。
收银程序 — 既是营业员的工作台,也是操作变成单据的那个点。卖场里发生的一切只有经过它才会进入系统:销售、退货、折扣、支付、现金存入和取出。
对它的要求比对其他任何模块都苛刻:排队时也得快,与服务器断开时也得能用。因此收银台本地保存一份商品和价格台账,并把操作写进本地队列,而不是为小票上的每一行去问服务器。
收银程序都做什么:
税务部分的要求——小票打印、内容和数据上传——由所在国家的法规和所连设备的型号决定。具体内容和交互顺序在调研阶段确认,而不是事先宣称。

与服务器的连接不是销售的前提。收银台会继续用本地台账打小票,把操作堆进队列;链路恢复后队列成批补传。每个操作都带一个键,因此重发绝不会生成第二张小票,也不会重复扣减库存。
限制也如实说明:断网期间,收银台看不到中央系统一分钟前做的改价,也无法在服务器上核对积分余额。离线模式下究竟允许做什么,是项目决策:例如允许销售,但把积分抵扣推迟到恢复连接之后。
班次不是「收银员的工作日」,而是一份带起止时间、收银员、收银机和汇总结果的单据。这段时间内的所有小票、支付、退货和现金流转都挂在它下面。
门店里的程序并非孤立运行:几乎每一个操作都始于或终于某台物理设备。以下是收银和账务软件所交互的设备,以及系统具体从它那里取到什么、又向它传什么。

运行收银程序的设备。系统把它视作一个工位:收银机、班次、所连外设组合和登录权限都绑定在它上面。换硬件不会破坏销售历史——工位仍然是同一个业务对象。
把商品录入小票和库存单据的主要方式。一个商品项可以对应多个条码——供应商的、自有的、包装上的。识别不出来的码不会丢失:它会进入待关联商品的队列,而不是变成一句「找不到商品」。
打印销售和退货单据。小票的内容、生成顺序和数据上传方式,取决于所在国家的规定和设备型号;具体组合在调研时确认。没打出来或没上传成功的单据会被记为未结操作。
受理无现金支付。收银台把金额传过去,终端与持卡人交互并返回结果。终端不是外设,而是有自身状态的第二套系统,因此下面单列一节讲它。
处理称重商品:商品以实际重量进入小票,价格按每公斤计算。电子秤分收银秤——重量直接进小票,和包装秤——打印一张条码标签,码里编入商品代码和重量;收银台解析这种码并自动带出商品。
在卖场和门店库房里直接扫码完成收货、盘点、移库和改价。设备无需常连网络:单据在本地生成,整份上传到系统,并做差异校验。
钱箱由程序在现金操作发生时打开。每一次打开都是一个带时间、收银员和原因的事件;没有销售却开箱会进入受监控操作清单。工位的辅助外设——键盘、员工卡读卡器——也归入这里。
收银台旁的显示屏随着扫码逐行显示商品、折扣和合计——顾客在付款前就看到价格,而不是付完才看到。卖场里的屏幕显示促销、专题和价格,取的是与收银台同一份台账,因此屏幕和小票之间不会出现不一致。
在已经安装的地方,价签的价格来自与收银台同一套系统。这消除了卖场里最主要的冲突源——改价后货架价格与收银价格不一致。能否接入,取决于具体的价签系统对外提供什么样的管理接口。
我们不预先宣称支持某些品牌和型号的设备。可接入的设备范围在调研时按厂商文档以及设备对外开放的接口来确定;没有现成接口的,在开工前单独解决,而不是给一句「兼容」的承诺。
支付终端是购买唯一变成「已付款」的地方,也是门店里唯一直接跟钱打交道的节点。因此这里不把它写成设备清单里的一行,而是单列成一条链路。
主要的难点在于,收银台和终端是 两套独立的系统。收银台对小票有自己的一套认识,终端则有自己的支付操作,它活在收单机构的链路里,并不听命于收银程序。这两幅图景吻合,并没有物理上的保证:在「钱已扣」和「小票已打」之间总有一段间隙,断网、断电或卡死都可能正好落在里面。
收银台与支付终端的对接覆盖什么:
我们不点名银行、终端型号和支付协议:对接范围取决于具体终端提供什么样的交互接口,以及收单协议允许什么。这些在调研时确定并写进项目方案。

在终端上手工输金额,是开发上最便宜、运维上最昂贵的做法。它可能把某一位数字打错、收错金额,更要命的是它切断了小票与支付之间的关联:事后只能按时间和金额去对应,也就是只能大概对上。
由程序传送金额时,支付和小票在两侧都由标识关联起来。与收单机构的对账、争议交易的复盘,以及系统营收与账户资金差异的管控,全都建立在这一点上。
轮询终端不只发生在付款那一刻。状态是一份单独的数据,在顾客还没站到收银台前就需要它:
每一种状态都是日志里的一个事件。应答慢、或者每十笔就掉一笔的终端,早在店长报修之前就已经出现在设备报表里了。
刷卡付款不是一个动作,而是一串状态,其中任何一个都可能中断。以下是系统如何推进这笔操作,以及在结果未知时它会做什么。
收银台构造请求:金额、币种、操作标识、小票引用。在终端应答之前,小票处于「待付款」状态,不能关闭、修改或删除。
终端返回结果:已批准、被拒付、顾客取消、出错。批准时会连同结果返回交易要素,日后据此在收单机构流水中找到它。
支付操作标识写入小票,小票号写入支付记录。关联是双向的,因此从任一侧都能还原另一侧:从小票找到支付,也能从银行流水的一行找到具体那笔销售。
退款到卡是一笔独立的支付操作,与原操作绑定。系统不会允许退回超过已付金额,也不会超过这张小票上尚未退回的部分;退款结果同样要等终端确认。
最重要的场景:终端没有应答。系统既不把这笔操作当作成功,也不当作失败——而是标记为待查明,并且不允许把小票悄悄关掉。之后再通过查询操作状态或对账来确认结果。
终端可用率、失败操作占比、应答时长和未结日终,按每台设备汇总。有问题的设备出现在报表里,而不是靠卖场的抱怨。
系统界面截图:数字为演示用。关键在第二步:只要金额不是由程序传送,第六步和第七步就得由人拿着纸质签购单来做。
| 发生了什么 | 收银台怎么做 | 状态 |
|---|---|---|
| 卡被拒付 | 提示重试或改用其他支付方式;小票保持打开 | 正常 |
| 顾客取消了操作 | 把小票退回编辑状态,支付操作以「已取消」结案 | 正常 |
| 终端未在时限内应答 | 不关闭小票,查询操作状态;若仍不明确,则禁止手工关闭 | 待排查 |
| 付款与打印之间断电 | 重启后恢复未完成的小票,并要求查明支付结果 | 待排查 |
| 支付成功,小票没打出来 | 保持操作为打开状态,可重打小票而不会二次扣款 | 待排查 |
| 流水里有这笔支付,系统里没有小票 | 把差异连同金额、时间和终端一起送入对账队列 | 待排查 |
| 终端要求做日终结算 | 在操作开始前就告知收银员,而不是等卡插进去之后 | 提醒 |
总原则:结果未知,就既不算成功也不算失败。该操作保持打开并进入排查队列——这比让顾客被扣两次款、或让门店有一笔营收没入账要便宜得多。
与终端的具体交互协议、可用支付方式的组合、能否撤单,以及断网时的行为,都由设备型号和收单机构的规则决定。我们描述的是围绕它们搭起来的这条链路,具体范围在调研时确认——不会预先宣称与某家银行或某款终端兼容。
零售中的商品目录 — 不是展示橱窗,而是收银台赖以运行的台账。它出错的代价比网站出错更高:条码错了会让收银队伍停下来,商品重复建档会把一件商品的库存拆到两张卡上。
一个商品项由什么构成:
批量操作通过文件导入或与财务系统交换完成。导入在写入之前一定先校验:将新建什么、修改什么、拒绝什么以及为什么。条码重复的商品不会被悄悄创建——它会进入拒绝清单。
连锁里的门店并不一样:业态、面积、片区和顾客各不相同。商品结构矩阵回答的是:共用目录里的哪些商品在这个具体网点销售。
目录里的商品只有一个,但它在每个网点的状态各不相同。这正是连锁核算与单店核算的主要区别:
| 门店 | 在矩阵内 | 价格 | 可售库存 |
|---|---|---|---|
| 市中心 | 是 | 395 | 42 |
| 住宅区 | 是 | 385 | 7 |
| 公路店 | 否 | — | 0 |
数字为演示用。价格不同不是错误,而是规则:公路边的网点和家门口的门店属于不同的价格组。真正的错误,是靠在三个地方分别手工修改而得到同一个数值。
小票上的价格是按规则计算出来的结果,而不是商品卡上的一个数字。因此调价不需要去改上千个商品,而小票上有争议的金额是按计算的各层来复盘,而不是靠收银员的记忆。
一个商品同时存在多个价格:基础价、按门店价格组的价格、按具体网点的价格。系统在结账那一刻选出适用的那个。市中心的店和公路边的店用同一份台账,规则不同。
按类目、供应商或商品组,在采购价上加一个百分比或一个金额。按新采购价入库会自动重算零售价,而不是把它停留在上一批到货的水平。
触发条件、折扣玩法、起止日期、周期性时间窗。促销自行启动和停止——员工不必半夜守在现场去开周末价。
百分比、固定金额、指定新价、组合中较便宜商品打折、「第二件半价」、满足条件送赠品、小票金额达标时该类目打折。玩法由规则设定,而不是由收银员现算。
用于一次活动的单一口令,或按收件人生成的一批唯一码。系统会校验有效期、使用次数上限、单顾客上限,以及与当前促销的兼容性。核销记录在小票上——每个码在何时何地被使用都能查到。
折扣的兼容关系写得很明确:哪些可以叠加、哪些互斥。最低价限制可以避免多个各自都正确的折扣叠加后把商品压到允许的下限之下。
数字为演示用。关于优惠码未生效的那一行比其余各行更重要:在收银台,顾客应当被告知不能用的原因,而不只是一句「此码无效」。计算的每一步都保存在小票里,在复盘有争议的购买时可以调取。
库存不是一个参考数值,而是某个网点上该商品所有已过账单据的结果。如果库存「对不上」,原因一定在单据里:有的没过账、有的过了两遍,或者过错了地方。
因此系统不允许直接改库存。任何变动都是一份带类型、操作者、时间和商品明细的单据。
商品流转单据:
每份单据都经历两种状态:可以修改的草稿,以及会改变库存、只能用红冲单据更正的已过账状态。这正是账务与表格的区别。

盘点不是「一年全盘一次」。在一套能用的系统里,盘点分两种,而第二种比第一种更重要。
清单很短,而且几乎总是那几条。系统并不会自己消除这些原因——它做的是让它们可以被区分出来:
针对问题类目定期做抽盘,能在一周内而不是一年内发现这些情况——并追溯到具体的单据和责任人。
一家门店,靠喊话和本子就能管。三家,靠表格和电话会议。二十家,就不行了:到那个时候,公司里没有人能在不给每家店打电话的情况下说出某个商品在所有网点的当前价格。需要中央系统,不是「为了规整」,而是因为手工方式在一个相当明确的门店数量上就不再可扩展了。

增长会经过三种状态,每一种里坏掉的东西都不一样。 一家门店 — 收银台上的数据就够了。 几家门店 — 开始出现「谁的台账为准」的问题,商品也开始在网点之间流转。 几十上百个网点 — 管理变成一项单独的工作:没有统一的屏幕,连锁负责人得知问题是从门店那里,而不是从系统那里。以下是中央面板能看到什么、能管什么。
网点台账:业态、地址、面积、价格组、商品结构矩阵、营业时间、责任人、设备和工位构成。开新店靠复制相似门店的配置,而不是从零搭一遍。
统一的商品目录,以及按网点组划分的矩阵。引入和退出某个商品是一个带日期和范围的受控动作:影响哪些门店、从哪一天起、退出商品的剩余库存怎么处理。
按价格组和网点的定价规则、带生效日期的计划调价、变更历史。集中调价在下面单列一节——它是连锁里责任最重的操作。
每个网点每个商品的库存以及全网合计、门店之间在途的货、积压商品、即将断货的商品。从这里也可以发起从富余门店到缺货门店的调拨。
所有网点的小票汇成一条流:营收、客单价、小票数、按商品组的销售、网点之间的横向对比以及与自身上期的对比。
带门店组范围、排期和限额的活动。能看到促销已经在哪里生效、将在哪里开始、按促销价卖了多少,以及扣掉折扣后它带来了什么结果。
账号、角色与权限、与网点的绑定、班次及其汇总。权限按角色发放,而不是逐人单独配置——否则在五十家门店的连锁里根本查不过来。
收银机、终端、电子秤及其他设备的台账,绑定到工位,并带程序版本、状态和维护历史。能看到哪里还装着旧版本、哪台设备经常出故障。
全网异常汇成一条时间线:收银台离线、终端无应答、数据交换未成功、单据未过账、盘点出现差异。异常要指派给责任人并带时限,否则它就只是一本日志。
所有网点的无现金交易、失败占比、终端未结的日终、与收单机构流水的对账结果,以及需要排查的差异清单。
营收、毛利、客单价、周转、退货率、损耗、计划完成度——按全网、业态、地区和网点查看。所有人共用一套定义,而不是每张报表都有自己的公式。
什么在什么时候下发到了网点、什么回传了上来、哪些消息没送达以及原因。一整天没上传销售的门店在这里就能看到,而不是等月结时才发现。
同步不等于「大家共用一个数据库」。门店必须在与中央服务器断连时也能销售,因此每个网点都有一份自己的工作副本,交换以消息方式进行。
向下的流,从中央到网点: 商品与条码台账、价格与定价规则、促销与优惠码、商品结构矩阵、设备配置、账号与权限、收银程序的升级包。
向上的流,从网点到中央: 小票及其明细、支付操作、商品流转、班次汇总、设备事件、盘点结果、员工操作。
它遵循的规则:
连锁里责任最重的操作:它同时影响所有网点,并且当天就会被顾客看到。因此它被做成一份带生效日期的单据,而不是对台账的一次修改。
系统界面截图:数字为演示用。第五步的意义在于:断线的门店不会掉出这次调价,也不会无限期地按旧价继续卖。单据会晚一些应用,但生效日期是对的。
调价是可逆的:单据在生效前可以取消,也可以被新单据覆盖。每个商品的原值都保存着,因此回到原值是一次操作,而不是从备份里恢复。
收银台与 POS
支付链路
商品与库存
连锁管理
会员体系的起点不是积分,而是身份识别:只要购买还是匿名的,这套体系就无从下手。这个模块的任务,是在收银台上用几秒钟把小票和顾客关联起来,并且不拖慢队伍。
收银台上的识别方式: 带条码的实体卡、手机号、移动应用里的二维码、虚拟卡。方式按门店业态来选:队伍长的地方,让顾客手输手机号是个糟糕的方案。
这个模块能做什么:
会员体系活在卖场里,而不是营销报表里。对它的要求是排队的人提出来的:
数字为演示用。第三行很关键:积分抵扣比例的上限是一条规则,不是收银员的决定。第五行同样:积分只按真正用钱付掉的那部分累计,否则这套体系就开始给自己发积分了。
购买和分层数据,正是把会员体系与下面的数据分析和 AI 场景连起来的东西:只有建立在某位顾客的购买历史之上,优惠才有意义,而不是对着数据库群发。
门店里既有钱又有货,在里面工作的人责任各不相同。访问权限说的不是保密,而是让每个动作都有操作者、让日常操作不必惊动上级、让高风险操作不会悄无声息地发生。
权限模型是怎么搭的: 权限发给角色,角色分配给员工,员工绑定到网点。在五十家门店的连锁里,逐人做个性化配置,既发不出去也查不过来。
操作日志不是「以防万一」的存档。它是一个工作工具:用来复盘有争议的购买、班次短款和顾客投诉,同时也为下面的操作管控一节提供数据。
操作的集合以及在各角色间的分配,要按具体连锁来配置。以下是配置时作为出发点的一个典型框架:
最后一行不是笔误。「看到全部」的权限,与改价权限一样是谨慎发放的:店长对自己的网点负责,看到的也是自己的,而不是隔壁的。
系统不会自动阻止舞弊,也不会给出判决。它做的是让操作可被观察:设定规则、记录每一次偏离,并把相似案例汇成一个供人工复核的队列。这是一条管控链路,而不是「什么都能抓住的反欺诈引擎」。
退货率按收银员、网点、商品组和时段分别统计。偏离平常水平就是信号:没有顾客在场的退货、班次末尾的退货、同一商品反复退货。
小票关闭前作废、以及从小票中删除某行,都是正常操作,但某个收银员的发生频率会与本班次和本网点的水平作对比。明显偏离就进入观察。
手工套用的折扣、同一位顾客每次购买都有的折扣、班次末尾给高毛利商品的折扣。每一例都连同操作者、依据和金额一并保存。
在收银台改价的权限是例外,而不是常态。在已经发放该权限的地方,每一次使用都会连同原值和新值记录下来,并进入一份单独的报表,而不是消融在总日志里。
工作画像:客单价、现金占比、退货和撤单占比、无销售开钱箱的次数、替他人班次上岗。对比对象是该收银员自己的过去,以及同一网点的同事。
收单机构流水里有支付但系统里没有小票、有小票却没有支付操作、小票金额与支付金额不同。每一处差异都连同金额、时间、收银机和终端一并提出。
在网点营业时间之外的销售、金额为零的小票、商品明细完全相同的重复小票、无销售开钱箱、用他人账号登录。
每一项重要操作都有一条不可篡改的记录:操作者、时间、工位、原值和新值。它与业务数据分开存放,因此不会随业务数据一起被改动。
发放和吊销权限、修改定价规则、关闭某项校验、手工结班、访问客户库导出——这些单独记录,并立即送到责任人手上,而不是等到月底。
| 信号 | 系统知道什么 | 人要核查什么 |
|---|---|---|
| 某收银员的退货率是本网点平均值的三倍 | 一个班次 14 笔退货,其中 11 笔发生在最后一小时,全部为现金 | 监控录像、当时是否有顾客在场、员工的说明 |
| 手工折扣被套用了 23 次 | 同一名收银员、金额区间一致、商品组各不相同 | 折扣的依据、是否有审批指令、顾客是否重复出现 |
| 流水里有支付,系统里没有小票 | 金额和时间与该班次吻合,小票缺失 | 是通信故障还是未开单的销售——查收银台日志 |
| 钱箱在无销售的情况下被打开 40 次 | 同一台收银机、同一个班次、间隔 3–5 分钟 | 是找零、锁具技术故障,还是取现金 |
| 盘点:某一个类目出现短少 | 差异只出现在烟草组,连续三个网点 | 收货、移库、报损,以及存放区域的出入权限 |
系统界面截图:数字为演示用。没有任何一行意味着违规——每一行的意思是数字偏离了常态,需要一个解释。这个区别很关键:规则提出问题,答案由人给出。
这条链路的现实意义在于快。没有它,差异要等到盘点时才被发现,那已是事发几个月之后,既没有记录也没有记忆。有了它,偏离在第二天就能看到,排查针对的是具体的小票、具体的班次和具体的操作。
零售里的数据分析不是「好看的图表」,而是回答四个问题:赚了多少、具体靠什么赚的、什么在拖后腿、下周的订货怎么下。其余都是派生出来的。
这些是在业务数据的副本上计算的,而不是在生产库上:一张跑全年的重报表不该拖慢卖场里的收银台。
系统计算什么:
另有一块是合规报表:按网点的班次和日报、给会计的单据、与收单机构的对账、给财务系统的数据。它有排期和接收人,因此不需要谁在月底还记着这件事。

连锁报表最常见的问题不是没有数字,而是同一个指标有好几个数字。营收「含退货」和「不含退货」、客单价「按小票算」和「按顾客算」、毛利「按标价算」和「按实际折扣算」,得出的数各不相同,而围绕它们的争论比分析本身还费时间。
因此指标的定义在系统里只设定一次,所有报表都用它。改定义是一个带日期的受控动作,而不是去改某人表格里的一个公式。
系统界面截图:数字为演示用。磁贴的顺序不是随手排的:排在最前面的不是销售,而是没有上传数据的网点——只要它们缺席,下面的每一个百分比都是在不完整的图景上算出来的。
零售系统在一家公司里很少是唯一的:财务、会计、仓储和网店通常早就在跑了。做对接不是为了走形式,而是为了让同一份数据不被录入两遍、不在系统之间跑偏。
它通常拥有商品清单、供应商和采购价;零售系统则拥有销售、零售价和各网点库存。每一份台账的交换方向都写得很明确——否则两个「主源」就会开始互相覆盖。
导出按网点和法人主体的营收、商品流转单据、报损单、退货和无现金交易数据。频率和内容由核算要求决定,而不是由导出是否方便决定。
顾客、分层、购买历史、积分和专属优惠。购买事实从零售系统出去,分层和活动从 CRM 进来——在收银台上它们变成具体的折扣或优惠。
用在连锁设有配送中心的场合:门店要货申请、发往网点、收货、退回仓库。即使两半分属不同系统,移库仍然是一个有两半的操作。
共用的商品目录和价格、把门店库存作为自提的来源、在门店拣配的订单、在收银台办理线上购买的退货。橱窗和订单的详细解析见 电子商务.
收银台与终端的交互、取回用于对账的操作流水、退款状态。具体内容由终端型号和收单协议决定,并在调研时确认。
员工、网点分配、排班表。收银台上的班次与考勤表上的班次不再是两条需要人工核对的记录。
面向第三方使用者的文档化系统 API,以及外部服务的接入:推送、即时通讯、凭证与通知服务、伙伴计划。格式带版本管理——变更以新版本发布,旧版本继续可用。
异步处理、按递增间隔重投递、接收端幂等、每条消息连同报文和结果的日志、关键数字的定期核对。差异变成一个待办任务,而不是等月结时才被发现。
在开发任何数据交换之前,总要先定一个问题:哪个系统拥有哪份台账。这个问题没有答案之前,对接就会变成一个互相覆盖的循环,根本没法调试。
零售连锁积累数据的速度,快过它读取数据的速度:按商品和按小时的小票、各网点库存、商品流转、员工操作、设备事件。这里的 AI 不是一个独立产品,而是覆在这些数据之上的一层,回答那些人没有时间去回答的问题。
每个场景里的套路都一样: 数据 → 分析 → 结果 → 行动。缺了最后一环的场景,只能停留在演示阶段。
实际可落地的场景:
边界如实说明:模型依赖已积累的历史。只要销售还没有按商品和按小时记录、商品流转还是事后补单,就没有什么可预测的——先有账务链路,再谈覆在其上的分析。这个方向的详细解析见 人工智能落地.

第四步是必须的。一条不经过人就直接变成订单的建议,会把模型的错误变成一次真实采购——而最后一步则把这个错误变成一次修正。
门店里有一部分商品存放在有运行工况的设备里:冷藏陈列柜、冷冻岛柜、后场的冷库。工况偏离在商品核算里看不见——它要过几天才以报损的形式显现。
因此零售链路旁边就接着设备监控:同一批网点、同一批责任人、同样的原则「偏离要指派给人并带时限」。
门店里把什么纳入观察:
它与零售的关联很直接:温度历史可以向检查方和交易对手证明存储工况,而及早发现偏离能减少报损——也就是说,它进入的是与盘点短少同一批损耗报表。

具体某台设备实际能取到什么数据,取决于它的控制器:有些型号对外输出数值和错误码,有些则需要外加传感器。这要在调研时按厂商文档确认。
这个方向的完整解析——传感器与控制器、通信链路、服务端、统一面板、告警与远程管理——见单独页面 物联网监控与设备管理.
具体范围按需求组装:单店不需要商品结构矩阵和网点间调拨,四十家门店的连锁离了它们则寸步难行。以下是配置时可选的完整清单。
收银员界面、小票生成、与扫描枪和电子秤协同、收款、打印单据、挂单、离线模式。
开班与结班、中间和最终报表、现金存入与取出、差额计算。
与支付终端的交互、操作状态、把支付与小票对应、退款、处理未完成操作、对账。
按小票号退货、部分退货、校验已退过的部分、退款与退积分、退货凭证。
商品、条码、计量单位、称重商品、类目、供应商、流通规则、状态与归档。
按网点组划分的商品结构、带日期的商品引入与退出、矩阵外销售的管控。
价格组、加价规则、带生效日期的计划调价、最低价、变更历史。
触发条件、玩法、排期、按网点的覆盖范围、限额、兼容关系、优惠码生成与核销。
按网点和全网的库存、在途商品、预留、库存偏低阈值、毫无动销的商品。
来自供应商和配送中心的入库、扫码、与送货单核对、记录差异。
发出与接收作为一个操作的两半、在途商品、未结移库的管控。
摔坏、变质、保质期、内部领用,以及引用原始收货单的残次退货。
全盘与抽盘、扫码清点、按件数和金额的差异、结果审批。
门店台账、网点组、业态配置、通过复制配置开设新网点。
整张网络的统一屏幕:销售、库存、价格、促销、设备、错误、关键指标、数据交换状态。
交换队列、生效日期、应用确认、重投递、日志与对账。
顾客识别、积分、等级、有效期、客户分层、专属优惠、消息触达。
档案、数据处理授权、购买历史、联系渠道、重复档案合并。
角色与权限、按网点的作用范围、上级确认操作、操作日志、吊销访问。
观察规则、排查队列、退货、折扣和撤单报表、关键事件记录。
收银机、终端、电子秤、扫描枪及其他设备,绑定到工位,并带版本和维护历史。
温度、门、供电、控制器报错、失联;事件带接收人和响应时限。
销售、毛利、周转、退货、损耗、促销效果、员工表现、任意维度切分。
与 ERP、会计、CRM、仓库、网店和外部服务的数据交换。API、Webhook、队列、日志。
系统不会一次性在整张网络上全量上线。下面的顺序体现的是依赖关系:每一步都建立在上一步产出的数据之上,并且先在一个网点验证再推广。
现有流程、台账、各网点的设备、各类数据的归属系统、税务部分的要求。产出是实体图、对接地图和限制清单。
迁移商品清单、条码、价格、收货与库存,以及连好设备和支付终端的收银工位。先在一个网点上线。
中央面板、商品结构矩阵、集中价格与促销、网点之间的移库、同步与访问权限。接入其余门店。
会员、操作管控、数据分析、设备监控,以及基于已积累历史的 AI 场景。每一块都是一个有可度量结果的独立版本。
请写明贵公司有多少个网点、现在已经有什么——收银台、财务系统、仓库、网店——以及卖场里装了哪些设备。我们会梳理流程,说明哪些可以迁移、哪些必须重建,并给出落地实施的顺序。