Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
F
fsm
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 188
    • Issues 188
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • 温锐
  • fsm
  • Merge Requests
  • !1

Open
Opened Mar 20, 2026 by 温锐@wenrui0 of 6 tasks completed0/6 tasks
  • Report abuse
Report abuse

fix(#181): 销售开单库存校验前置

  • Overview 0
  • Commits 1
  • Changes 8

Summary

Closes #181

销售开单时库存校验从结算保存时前置到选品/修改数量阶段,提升用户体验。

改动点

  • 后端: 新增 POST /api/inventory/stock-check 轻量批量库存查询接口(只返回 sku_id + current_stock)
  • 前端: useStockCheck hook 实时查询购物车 SKU 库存(staleTime 10s)
  • CartItemCard: 库存不足时红色边框 + "库存不足(剩余X件)" 警告文字
  • CartItemEditSheet: 数量行显示库存余量,超出时显示红色警告
  • 结算按钮: 点击结算时若有库存不足商品,弹窗列出并可选择继续或返回修改
  • 数量步进器: 修改数量超出库存时 Toast 提示

设计决策

  • 库存不足是警告而非阻断 — 用户确认后仍可继续结算(后端兜底校验仍保留)
  • 批量查询接口最多 200 个 SKU,覆盖正常开单场景
  • 销售订单(orderMode=order)跳过库存校验(订单不扣库存)

Test plan

  • 添加库存充足的商品,无警告显示
  • 添加库存不足的商品,卡片显示红框+警告文字
  • 编辑商品数量超过库存,编辑弹窗显示红色警告
  • 点击结算时有库存不足商品,弹出确认弹窗
  • 确认弹窗选择"继续结算"可正常进入结算页
  • 销售订单模式下不显示库存校验

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b "fix/181-stock-check-early-validation" "origin/fix/181-stock-check-early-validation"

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout "origin/develop"
git merge --no-ff "fix/181-stock-check-early-validation"

Step 4. Push the result of the merge to GitLab

git push origin "develop"

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
1
Labels
需求
Assign labels
  • View project labels
Reference: wenrui/fsm!1