Vortmall使用文档

POS与O2O到店

POS与O2O到店

本文档面向购买 VortMall 系统的平台运营方,说明 O2O 版 专属 POS 模块(vortmall-biz-pos,接口路由 /adminapi/pos/**)及预约相关业务的标准流程。POS 能力包括:购物车、结账、支付、商品查询、优惠券、充值、挂单、预约等;预约类型含 TYPE_RESERVATION_STORE(9) 预约到店TYPE_RESERVATION_HOME(10) 预约上门;预约订单支付后跳过 CONFIRMED,直接进入 PROCESSING;POS 支持条码扫描;挂单用于暂存当前购物车以便稍后继续结算。


1. POS收银登录与切换流程

说明: O2O 版 POS 终端首次进入需选择门店并登录员工账号;运营中可在授权范围内切换门店或切换账号,以保证收银主体与权限一致。

参与角色: 店员、POS 终端、门店(组织)、认证服务。

flowchart TD
    startNode([开始]) --> selectStore[选择门店]
    selectStore --> inputCred[输入员工账号密码]
    inputCred --> loginReq[请求登录POS]
    loginReq --> loginOk{"登录成功?"}
    loginOk -->|否| showErr[提示错误并重试]
    showErr --> inputCred
    loginOk -->|是| enterPos[进入POS主界面]
    enterPos --> switchMenu{"需要切换?"}
    switchMenu -->|切换门店| selectStore
    switchMenu -->|切换账号| inputCred
    switchMenu -->|否| work[正常收银作业]

步骤说明:

  1. 店员在 POS 终端打开应用,进入登录前或登录后需 选择当前服务门店(与 O2O 门店数据一致)。
  2. 输入 员工账号与密码(或与平台统一的员工认证方式)。
  3. 系统向认证服务校验凭证,成功后建立 POS 会话并加载该门店权限与配置。
  4. 进入 POS 主界面,可进行扫码收银、挂单、预约核销等操作。
  5. 若需 切换门店:退出当前门店上下文或从设置进入,重新选择门店并按策略要求重新登录或刷新会话。
  6. 若需 切换账号:登出当前员工,返回账号密码输入步骤,由另一名店员登录。

特别说明:

  • O2O 版 启用 POS 相关路由与能力;非 O2O 版不应依赖本文 /adminapi/pos/** 行为。
  • 切换门店可能影响可售商品、价格策略与预约归属门店,以系统配置为准。

2. POS扫码收银流程

说明: 通过扫描商品条码快速建立购物车并完成结算收款,适用于标准有条码的零售场景。

参与角色: 店员、顾客、POS 终端、商品与库存服务。

flowchart TD
    scanBarcode[扫描商品条码] --> querySku[系统查询商品信息]
    querySku --> foundSku{"商品有效?"}
    foundSku -->|否| promptInvalid[提示无商品或停售]
    promptInvalid --> scanBarcode
    foundSku -->|是| addCart[添加到POS购物车]
    addCart --> adjustQty[调整数量]
    adjustQty --> moreItems{"继续扫码?"}
    moreItems -->|是| scanBarcode
    moreItems -->|否| checkout[结算]
    checkout --> collectPay[收款]
    collectPay --> doneNode([结束])

步骤说明:

  1. 店员使用扫码枪或摄像头 扫描商品条码
  2. POS 调用后台 查询 SKU/商品信息(名称、规格、价格、可售状态等)。
  3. 校验通过后 将行项目加入当前购物车;失败则提示并允许重新扫描。
  4. 在购物车中 修改数量 或删除行项。
  5. 确认无误后进入 结算 流程(可叠加优惠券等,见专项流程)。
  6. 完成 收款(见「POS 支付流程」)并可选打印小票。

特别说明:

  • POS 支持 条码扫描 录入;无条码场景请使用「手动录入商品流程」。

3. POS手动录入商品流程

说明: 当商品无法扫码时,店员通过搜索名称或编号选择 SKU 与规格,再录入数量加入购物车。

参与角色: 店员、POS 终端、商品检索服务。

flowchart TD
    openSearch[打开商品搜索] --> inputKeyword[输入名称或编号]
    inputKeyword --> listResults[展示候选商品列表]
    listResults --> pickProduct[选择商品与规格]
    pickProduct --> inputQty[输入数量]
    inputQty --> addLine[添加到购物车]
    addLine --> continueShop{"继续添加?"}
    continueShop -->|是| openSearch
    continueShop -->|否| readyCheckout[准备结算]

步骤说明:

  1. 在 POS 进入 商品搜索/录入 入口。
  2. 输入 商品名称关键字商品编号/SKU 编码
  3. 在结果列表中选中目标商品;若有多规格,选择对应规格
  4. 输入 购买数量 并确认。
  5. 行项目写入 当前购物车
  6. 可重复搜索添加,或进入结算。

特别说明:

  • 搜索结果受门店可售范围、上下架状态约束;与扫码流程共用同一购物车模型。

4. POS支付流程

说明: 在 POS 端完成订单支付闭环,支持现金、微信、支付宝、余额等方式,并完成收款确认与小票打印。

参与角色: 店员、顾客、POS 终端、支付渠道、订单服务。

flowchart TD
    settleOrder[订单待收款] --> choosePay[选择支付方式]
    choosePay --> payType{支付方式}
    payType -->|现金| cashFlow[收取现金并确认]
    payType -->|"微信/支付宝"| scanFlow[扫用户付款码或展示商家码]
    payType -->|余额| balanceFlow[校验用户余额并扣款]
    scanFlow --> waitCallback[等待支付结果]
    waitCallback --> payOk{"支付成功?"}
    cashFlow --> payOk
    balanceFlow --> payOk
    payOk -->|否| failHandle[失败提示与重试或换方式]
    failHandle --> choosePay
    payOk -->|是| confirmRecv[确认收款完成]
    confirmRecv --> printTicket[打印小票可选]
    printTicket --> payEndNode([结束])

步骤说明:

  1. 购物车或订单进入 待收款 状态。
  2. 店员 选择支付方式:现金、微信、支付宝、余额等(以实际开通为准)。
  3. 现金:收取现金后在 POS 确认实收,系统记为已收款。
  4. 微信/支付宝:通过 扫用户付款码用户扫商家收款码 发起支付,等待渠道结果回调或轮询。
  5. 余额:关联会员/用户账户后 校验余额 并执行扣款。
  6. 支付成功后 确认收款,订单进入后续履约或完成状态。
  7. 按需 打印小票

特别说明:

  • 具体支付能力与费率、对账以支付服务商与平台配置为准;失败时应支持重试或更换方式而不丢失购物车(除非业务规则清空)。

5. POS挂单与取单流程

说明: 将当前购物车 暂存为挂单 以便先服务其他顾客,稍后从挂单列表 取回 继续编辑或结算。

参与角色: 店员、POS 终端、挂单存储服务。

flowchart TD
    cartHasItems{"购物车有商品?"}
    cartHasItems -->|否| noHang[无需挂单]
    cartHasItems -->|是| saveHang[保存为挂单]
    saveHang --> clearUi[清空当前界面]
    clearUi --> serveOther[服务其他顾客]
    serveOther --> openHangList[打开挂单列表]
    openHangList --> pickHang[选择一笔挂单]
    pickHang --> restoreCart[恢复到购物车]
    restoreCart --> editOrPay[继续改数量或结算]

步骤说明:

  1. 当前购物车中有商品时,店员可选择 挂单
  2. 系统 保存挂单(通常含门店、操作员、时间、行项目快照等,以实际实现为准)。
  3. 当前收银界面 清空,可开始新的扫码或录入服务其他顾客。
  4. 需要继续之前交易时,打开 挂单列表
  5. 选中目标挂单,将内容 恢复到购物车
  6. 继续修改数量、应用优惠或进入 支付流程

特别说明:

  • 挂单 与订单「待支付」不同:挂单是 购物车级暂存;具体保留时长、条数上限依产品配置。

6. POS优惠券使用流程

说明: 在收银前或结算页查询会员可用优惠券,选择后由系统 自动计算抵扣,再进入收款。

参与角色: 店员、顾客、POS 终端、营销与优惠券服务、订单计价服务。

flowchart TD
    beforePay[进入结算前或结算页] --> bindUser[可选绑定会员手机号或会员码]
    bindUser --> queryCoupon[查询用户可用优惠券]
    queryCoupon --> showList[展示券列表与规则摘要]
    showList --> selectCoupon[选择一张或多张以系统为准]
    selectCoupon --> calcDisc[自动计算抵扣金额]
    calcDisc --> validDisc{"券是否可用?"}
    validDisc -->|否| adjustSel[调整商品或重新选券]
    adjustSel --> selectCoupon
    validDisc -->|是| showPayable[展示应付金额]
    showPayable --> gotoPay[进入支付流程]

步骤说明:

  1. 在结算环节,可选择 绑定会员(如手机号、会员码)以便拉取优惠券。
  2. POS 请求后台 查询当前订单上下文下可用优惠券列表
  3. 店员或顾客 选择要使用的优惠券(若支持叠加以规则为准)。
  4. 系统 重算优惠与应付金额;不可用则提示原因。
  5. 确认 应付金额 后进入 POS 支付流程

特别说明:

  • 券的适用商品、门槛、互斥规则由营销中心配置;POS 侧需展示明确失败原因以便店员解释。

7. POS充值流程

说明: 门店在 POS 上为 用户余额账户充值:录入用户手机号,选择金额,用户完成支付后 余额到账

参与角色: 店员、顾客、POS 终端、会员/账户服务、支付渠道。

flowchart TD
    startRecharge([开始充值]) --> inputPhone[输入用户手机号]
    inputPhone --> verifyUser[查询并确认用户身份]
    verifyUser --> userOk{"用户存在?"}
    userOk -->|否| regHint[提示注册或核对号码]
    regHint --> inputPhone
    userOk -->|是| pickAmount[选择充值金额或档位]
    pickAmount --> createRecharge[创建充值单]
    createRecharge --> userPay[用户完成支付]
    userPay --> payResult{"支付成功?"}
    payResult -->|否| failRecharge[失败提示]
    payResult -->|是| creditBal[余额到账]
    creditBal --> notifyUser[短信或页面提示可选]
    notifyUser --> rechargeEndNode([结束])

步骤说明:

  1. 店员在 POS 进入 充值 功能。
  2. 输入 用户手机号(或与会员体系一致的标识)。
  3. 系统 校验用户 是否存在;不存在则按提示引导核对或注册(以业务规则为准)。
  4. 选择 充值金额 或固定档位。
  5. 生成 充值订单/流水,拉起 用户支付(扫码等)。
  6. 支付成功后 增加账户余额 并记录账务。
  7. 可选向用户展示或发送 到账通知

特别说明:

  • 充值属于资金类操作,应配合权限审计与对账;具体支付方式与限额以平台与支付通道配置为准。

8. 预约管理流程

说明: 运营配置可预约时段与每时段容量,用户在线预约后系统确认并进入排期;到点前可进行提醒与看板统计(与看板流程配合)。

参与角色: 平台运营、用户(C 端)、系统调度、门店、店员(接收预约单)。

flowchart TD
    configSlot[配置可预约时段] --> setQuota[设置每时段可预约数量]
    setQuota --> publishRule[发布预约规则与门店]
    publishRule --> userBook[用户在线提交预约]
    userBook --> sysConfirm[系统确认时段与库存]
    sysConfirm --> confirmOk{"可预约?"}
    confirmOk -->|否| suggestAlt[提示满额或推荐时段]
    suggestAlt --> userBook
    confirmOk -->|是| genOrder[生成预约订单]
    genOrder --> scheduleMgmt[管理预约排期与状态]
    scheduleMgmt --> remindTime[到时间提醒可选]
    remindTime --> mgmtEndNode([管理闭环])

步骤说明:

  1. 运营在后台配置 可预约日期、时段切片
  2. 为各时段设置 最大预约数(容量),可区分预约类型: TYPE_RESERVATION_STORE(9) 预约到店TYPE_RESERVATION_HOME(10) 预约上门
  3. 规则对 C 端展示并关联 门店/服务
  4. 用户选择时段提交预约,系统 校验容量与业务规则
  5. 校验通过后 生成预约订单;失败则提示改期或改类型。
  6. 门店侧 查看排期:待服务、进行中、已完成、取消等(与核销、看板联动)。
  7. 可选:在预约时间前触发 提醒(消息、短信等,以实际对接为准)。

特别说明:

  • 预约订单 在支付完成后通常 跳过 CONFIRMED,直接进入 PROCESSING(履约中),与标准实物订单状态机不同,配置与报表需区分展示。

9. 预约核销流程

说明: 用户到店出示预约凭证,店员在 POS 核销预约订单,服务完成后订单进入 COMPLETED

参与角色: 顾客、店员、POS 终端、预约/订单服务。

flowchart TD
    arriveStore[用户到店] --> showProof[出示预约信息]
    showProof --> openVerify[店员打开POS预约核销]
    openVerify --> locateOrder[查询预约订单]
    locateOrder --> checkState{"状态允许核销?"}
    checkState -->|否| rejectReason[提示不可核销原因]
    rejectReason --> verifyEndFail([结束])
    checkState -->|是| doVerify[执行核销操作]
    doVerify --> serviceDone[完成服务]
    serviceDone --> completeOrder[订单标记COMPLETED]
    completeOrder --> verifyEndOk([结束])

步骤说明:

  1. 顾客按预约时间 到店(或上门场景按约定履约,核销节点可能仍在门店侧完成,以业务为准)。
  2. 出示 预约码、手机号或订单号 等凭证。
  3. 店员在 POS 进入 预约核销 入口,查询对应预约订单。
  4. 系统校验 订单状态、门店、时段 等是否允许核销。
  5. 执行 核销,将订单转入履约完成路径(可能先进入服务中状态,依实现)。
  6. 服务完成后,订单状态更新为 COMPLETED

特别说明:

  • 预约订单支付后 直接进入 PROCESSING,核销环节对应「到店确认/开始服务」类动作,与状态字段命名以系统为准;报表中「待服务」多指已付未核销或未完成服务。

10. O2O门店数据看板

说明:门店维度 汇总经营与预约数据,支持店长与总部查看日销售、预约、员工绩效与热销品。

参与角色: 店长、总部运营、BI/报表服务、POS 与订单数据源。

flowchart TD
    openDash[打开门店数据看板] --> selectDim[选择门店与日期]
    selectDim --> loadSales[加载今日销售额订单量客单价]
    loadSales --> loadReserve[加载预约统计]
    loadReserve --> splitReserve[待服务已完成取消等]
    splitReserve --> loadStaff[加载员工业绩]
    loadStaff --> loadHot[加载热销商品]
    loadHot --> reviewDash[查看与导出可选]
    reviewDash --> dashEndNode([结束])

步骤说明:

  1. 登录有权限的 管理端或 POS 报表入口,打开 O2O 门店数据看板
  2. 选择 门店(单店或管辖范围内)与 统计日期(如今日)。
  3. 查看 今日销售额、订单量、客单价 等核心指标。
  4. 查看 预约统计:待服务、已完成、取消等维度(与预约类型 9/10 可下钻,视报表设计)。
  5. 查看 员工业绩(收银笔数、金额、关联提成规则若有)。
  6. 查看 热销商品(销量/销售额 TOP)。
  7. 按需 导出 或用于周会复盘。

特别说明:

  • 数据范围仅包含 O2O 版 且已接入 POS/预约的门店;与纯电商报表口径可能不一致,需在实施文档中固化指标定义。

文档修订说明

项目说明
模块范围POS 为 O2O 版 专属;路由前缀 /adminapi/pos/**,业务包 vortmall-biz-pos
预约类型TYPE_RESERVATION_STORE(9) 预约到店;TYPE_RESERVATION_HOME(10) 预约上门
预约状态支付后 跳过 CONFIRMED,进入 PROCESSING
辅助能力条码扫描、挂单、优惠券、充值、预约核销与门店看板
POS与O2O到店
Enter search text
Outline
POS与O2O到店
1. POS收银登录与切换流程
2. POS扫码收银流程
3. POS手动录入商品流程
4. POS支付流程
5. POS挂单与取单流程
6. POS优惠券使用流程
7. POS充值流程
8. 预约管理流程
9. 预约核销流程
10. O2O门店数据看板
文档修订说明