Skip to content

Ecommerce Inventory Operations Deep Dive

Bộ tài liệu này đào sâu flow ecommerce-inventory-operations theo code thực tế hiện tại. Đây là package reverse-engineer trong docs/modules, không phải PRD/spec delivery. Mục tiêu là chốt một mental model rõ ràng cho 5 lớp rất dễ bị lẫn:

  • inventory_request là request/intent layer,
  • inventory_document là execution layer,
  • shipping_note là physical shipping/receiving layer,
  • product_supplying là movement ledger,
  • product_lot_no_stockproduct_sku_stock là snapshot/read models.

Đọc file nào?

Bạn là ai?Nên đọc trướcMục tiêu
PO / BAshared-rules.mdChốt thuật ngữ, boundary, state model, coupling
FE Devtype-approval-and-adjustment-flows.mdHiểu route, page, GraphQL, runtime drift
BE Devtype-stock-movement-engine.mdHiểu action/event/scheduler và side effects
QAtype-stock-snapshot-vs-ledger.md, type-approval-and-adjustment-flows.mdThiết kế test theo request/document/shipping/snapshot
Người mới vào hệ thốngmodule-overview.mdCó bản đồ tổng trước khi đi sâu

Files

FileVai trò
module-overview.mdBản đồ tổng: route families, data layers, backend boundaries, risks
shared-rules.mdThuật ngữ chuẩn, state matrix, boundary checklist, invariants
type-stock-movement-engine.mdDeep dive cho request/document/shipping và movement ledger
type-stock-snapshot-vs-ledger.mdDeep dive cho product_supplying, product_lot_no_stock, product_sku_stock, MV/reporting
type-approval-and-adjustment-flows.mdDeep dive cho import/export/check/transfer/internal/shipping từ góc nhìn runtime

Kết luận ngắn

  1. Inventory không phải một flow duy nhất; nó là chồng của request, document, shipping, order transfersnapshot.
  2. product_supplying là ledger thật nhưng bị overloaded mạnh, nên rất dễ bị hiểu nhầm là “bảng nhập hàng”.
  3. product_lot_no_stockproduct_sku_stock chỉ là derived read models, không phải source-of-truth movement.
  4. FE đang có nhiều drift thật về moduleId, route guard và reuse query giữa import/export/transfer.

Liên kết tài liệu liên quan

Phạm vi của bộ docs này

  • Bám theo code hiện tại của diva-admin, ecommerce-api, Hasura metadata và migrations của DB ecommerce.
  • Ưu tiên mô tả hệ thống đang chạy như thế nào thay vì flow lý tưởng.
  • Chủ động ghi ra các drift hoặc dấu hiệu bug ở FE, backend và DB/read-model.