Vortmall使用文档
购物车与结算
购物车与结算
本文档面向采购并使用 VortMall 电商系统的平台运营方,说明顾客端购物车、结算、优惠、运费及后台改价等核心业务路径。以下流程均支持多店铺购物车;结算时生成父订单并按店铺拆分为子订单,各店铺独立匹配运费模板与优惠。
1. 加入购物车流程
说明: 顾客在商品详情页选择规格(SKU)与数量后加入购物车;系统在写入前校验可售库存,避免超卖。
参与角色: 顾客、商品与库存服务、购物车服务。
flowchart TD
startNode([顾客进入商品详情])
selectSku[选择SKU与数量]
clickAdd[点击加入购物车]
validateInput{数量合法且大于0}
checkStock{库存是否充足}
addLine[写入或合并购物车行]
showOk[提示加入成功]
showFail[提示库存不足或不可售]
startNode --> selectSku
selectSku --> clickAdd
clickAdd --> validateInput
validateInput -->|否| showFail
validateInput -->|是| checkStock
checkStock -->|否| showFail
checkStock -->|是| addLine
addLine --> showOk
步骤说明:
- 顾客打开商品详情页,确认商品可售状态。
- 选择具体 SKU(规格组合)与购买数量。
- 点击「加入购物车」触发提交。
- 系统校验数量是否为正整数且在合理范围内。
- 系统按 SKU 查询实时可售库存(含占用与渠道规则)。
- 若库存不足或商品下架,拒绝写入并提示原因。
- 若通过校验,将购物车行写入或合并(同 SKU 累加数量)。
- 前端展示加入成功,顾客可继续购物或进入购物车。
特别说明:
- 库存校验以服务端为准,避免仅依赖前端展示。
- 多店铺商品分别落在对应店铺的购物车分组中,便于后续拆单。
2. 购物车管理流程
说明: 顾客在购物车中调整行项目:修改数量、删除单品、勾选或取消勾选参与结算的商品,以及一键清空;关键操作均会触发库存与可售性复核。
参与角色: 顾客、购物车服务、库存服务。
flowchart TD
enterCart([进入购物车页])
loadData[加载各店铺分组与行项目]
userAction{用户操作类型}
modQty[修改某行数量]
delLine[删除某行]
toggleSel[勾选或取消勾选]
clearAll[清空购物车]
revalidate[重新校验库存与价格快照]
persist[保存购物车状态]
enterCart --> loadData
loadData --> userAction
userAction --> modQty
userAction --> delLine
userAction --> toggleSel
userAction --> clearAll
modQty --> revalidate
delLine --> persist
toggleSel --> persist
clearAll --> persist
revalidate --> persist
步骤说明:
- 顾客打开购物车页面,系统按店铺加载分组、SKU、数量、单价快照及勾选状态。
- 修改数量时,系统校验新数量对应的库存与限购规则。
- 删除行项目时,从购物车移除该 SKU,不影响已下单历史。
- 勾选或取消勾选决定该行是否进入后续结算汇总。
- 清空购物车时,移除当前顾客购物车下全部行项目(可按产品策略二次确认)。
- 变更完成后持久化,刷新小计与可选「去结算」入口状态。
特别说明:
- 仅勾选商品参与金额试算;未勾选商品保留在购物车但不计入待结算。
- 价格可能随活动变化,结算页以提交订单时服务端计算为准。
3. 普通结算流程
说明: 从购物车勾选商品进入结算,经选择收货地址、确认商品与金额后提交生成订单;涵盖父订单与子订单结构及金额汇总。
参与角色: 顾客、地址服务、购物车服务、计价与订单服务、支付网关(生成待支付单)。
flowchart TD
begin([勾选商品并去结算])
toCheckout[进入结算页]
pickAddr[选择或新增收货地址]
confirmItems[确认商品清单与店铺分组]
calcAmt[计算商品金额、运费、应付总额]
review[顾客核对订单信息]
submit[提交订单]
createParent[创建父订单]
createChildren[按店铺创建子订单]
waitPay[进入待支付]
begin --> toCheckout
toCheckout --> pickAddr
pickAddr --> confirmItems
confirmItems --> calcAmt
calcAmt --> review
review --> submit
submit --> createParent
createParent --> createChildren
createChildren --> waitPay
步骤说明:
- 顾客在购物车勾选待结算商品,点击「去结算」。
- 系统跳转结算页,加载默认可用收货地址,支持切换或新增。
- 展示按店铺分组的商品明细、数量、单价与行小计。
- 系统根据地址、配送方式及运费模板计算各子订单运费与订单总额。
- 顾客核对商品、地址、金额与发票等(若业务开启)。
- 提交订单:创建父订单记录整体汇总,再按店铺拆分子订单。
- 订单进入待支付状态,顾客选择支付方式完成支付。
特别说明:
- 多店铺场景下父订单承载整单维度信息,子订单独立履约与对账。
- 提交成功以服务端落单为准,需处理并发与库存最终扣减策略。
4. 使用优惠券结算流程
说明: 结算过程中系统可按规则自动匹配可用优惠券,顾客也可手动选择一张适用券;系统计算抵扣额并从应付金额中扣减。
参与角色: 顾客、营销与优惠券服务、计价服务。
flowchart TD
enterPay([进入结算页])
loadCart[确定待结算商品与金额基数]
autoMatch[系统自动匹配可用券列表]
userPick{顾客手动选券或改券}
applyRule[按券规则计算抵扣金额]
adjustTotal[重算应付总额]
lockCoupon[下单时占用券]
enterPay --> loadCart
loadCart --> autoMatch
autoMatch --> userPick
userPick --> applyRule
applyRule --> adjustTotal
adjustTotal --> lockCoupon
步骤说明:
- 进入结算页后,系统根据当前购物车行、店铺、品类、金额门槛拉取可用优惠券。
- 系统可默认勾选一张推荐券(若策略开启),顾客可更换或取消使用。
- 选择优惠券后,按券类型(满减、折扣、指定商品等)计算本单可抵扣金额。
- 抵扣不得超过应付商品与运费等规则允许的上限,且不与互斥活动冲突。
- 顾客确认后,提交订单时对所选券进行占用,防止重复使用。
- 若支付超时或取消,按业务规则释放券占用。
特别说明:
- 多子订单时需在业务规则中明确优惠券归属父单还是某一子单,避免重复抵扣。
- 券与积分、余额叠加规则以平台配置为准。
5. 使用积分抵扣结算流程
说明: 顾客在结算时选择使用账户积分抵扣部分现金;系统根据积分余额、抵扣比例及单笔上限计算实际抵扣额。
参与角色: 顾客、会员与积分服务、计价服务。
flowchart TD
openCheckout([结算页展示积分入口])
showBalance[展示可用积分与规则说明]
inputPoints{顾客输入或勾选使用积分}
capCheck{是否超过单笔上限与应付上限}
calcDeduct[计算积分折算金额]
mergePay[与券、余额等叠加后重算应付]
freezePts[提交订单时冻结积分]
openCheckout --> showBalance
showBalance --> inputPoints
inputPoints --> capCheck
capCheck -->|否| showBalance
capCheck -->|是| calcDeduct
calcDeduct --> mergePay
mergePay --> freezePts
步骤说明:
- 结算页展示顾客当前可用积分及积分抵现规则(比例、最小使用单位、单笔上限)。
- 顾客选择使用积分数量或勾选「最大可用积分」类选项。
- 系统校验不超过账户余额、单笔抵扣上限及不超过应付可抵部分。
- 将积分按规则折算为抵扣金额,并从应付总额中扣减。
- 与优惠券、活动、余额支付等按配置顺序叠加计算最终应付。
- 提交订单时冻结相应积分,支付成功则扣减;失败或取消则解冻。
特别说明:
- 积分抵扣通常设有「最多抵订单金额的某百分比」等上限,需在界面明确提示。
- 退款时需按策略回退积分与现金部分。
6. 余额支付结算流程
说明: 顾客使用预存账户余额支付订单,可与在线支付组合:优先或按比例扣减余额,剩余部分走第三方支付。
参与角色: 顾客、账户与余额服务、支付网关、订单服务。
sequenceDiagram
participant cust as 顾客
participant ord as 订单服务
participant bal as 余额服务
participant pay as 支付网关
cust->>ord: 提交订单并选择余额支付
ord->>bal: 查询可用余额
bal-->>ord: 返回余额与冻结策略
ord->>ord: 计算需余额金额与需在线支付金额
alt 余额足额
ord->>bal: 扣减余额并记账
bal-->>ord: 成功
ord-->>cust: 订单已支付
else 余额不足需组合支付
ord->>bal: 扣减全部可用余额
ord->>pay: 发起剩余金额在线支付
pay-->>cust: 拉起收银台
pay-->>ord: 异步支付结果
end
步骤说明:
- 顾客在支付页选择「余额支付」或「余额 + 在线支付」组合方式。
- 系统查询账户可用余额(扣除冻结与风控限制)。
- 若余额大于等于应付总额,直接扣减余额并完成订单支付。
- 若余额不足,按规则先扣满余额,剩余金额生成在线支付单。
- 在线支付成功后合并记账,订单进入已支付;任一步失败则按事务或补偿回滚余额。
- 全链路记录流水,便于对账与审计。
特别说明:
- 余额扣减与第三方支付需保证幂等与一致性,避免重复扣款。
- 多子订单场景需明确余额分摊至父单或子单的记账口径。
文档版本说明:流程与字段以实际部署的配置与版本为准;上线前请结合合同与实施清单做验收。
大纲
购物车与结算
1. 加入购物车流程
2. 购物车管理流程
3. 普通结算流程
4. 使用优惠券结算流程
5. 使用积分抵扣结算流程
6. 余额支付结算流程
赣公网安备36010902001041号