xforge · tài liệu FE

FE: module pre_order_setting — đặt trước / bán vượt tồn #

Phần chung (khởi tạo client, lỗi, danh sách, ngôn ngữ) ở tài liệu FE của Core: docs/fe/common.md (bản đọc: xforge-documentation, ADR-0102 của xforge-core). Sửa file này CÙNG PR khi đổi hành vi FE thấy được của module.

Chỉ có ở CMS (XforgeClient). Storefront chưa đọc được cài đặt (chưa hiện được "đặt trước, hàng về ngày…"); chốt đơn của biến thể có cài đặt chỉ khác ở chỗ không còn báo hết hàng trong hạn mức.

Menu: key pre_order_setting.pre_order_settings (quyền pre_order_setting.read).

Cài đặt #

Bộ route CRUD chuẩn, không có replace (listPreOrderSettings, getPreOrderSetting, createPreOrderSetting, updatePreOrderSetting, deletePreOrderSetting, restorePreOrderSetting, listPreOrderSettingTrash, listPreOrderSettingOptions). Lọc theo variant_id, allow_backorder.

FieldGhi chú
variantIdChỉ đặt lúc tạo, mỗi biến thể một cài đặt (409 pre_order_setting_variant_exists)
allowBackorderMặc định true; false giữ cài đặt nhưng tạm chặn bán vượt
maxBackorderQtyCHUỖI thập phân ≥ 0, ≤ 4 chữ số lẻ, theo ĐƠN VỊ GỐC, tính cho từng kho; null = không giới hạn. Response ở dạng gọn ("3")
expectedRestockAtMốc thời gian ISO 8601 có Z / độ lệch (không nhận ngày trơn 2026-12-01); chỉ để hiển thị, không tự tắt cài đặt khi qua ngày

Biến thể không thuộc store → 404 pre_order_setting_variant_not_found.

Bán vượt hoạt động thế nào #

Khi đơn giữ kho mà available không đủ, kho cho giữ chỗ vượt nếu phần vượt sau đơn (reserved - onHand) không quá maxBackorderQty. Ví dụ: còn 2, hạn mức 3 thì một đơn đặt được tối đa 5; sau đó available của dòng tồn là -3.

Màn hình dựng sẵn #

listMenu() → mục pre_order_setting.pre_order_settings có screen (type: "crud"): CMS chung vẽ được từ getMenuScreen({ params: { key: "pre_order_setting.pre_order_settings" } }) mà không cần code riêng (tài liệu FE của Core: cms.md §3.1). Có: danh sách (sản phẩm, SKU, cho bán vượt, tối đa, ngày dự kiến về hàng; lọc theo bán vượt / biến thể), form (biến thể chọn từ listProductVariantOptions CHỈ lúc tạo — không đổi được sau), xoá, thùng rác + khôi phục.

Quyền ngoài module mà màn hình dùng (thiếu thì CMS ẩn / rơi về ô nhập thường):

Nguồn: xforge-modules: modules/inventory/pre_order_setting/FE.md