記錄 B-5 已完成與尚未完成的邊界,避免把「active 商品規格」誤認為「目前仍有庫存可販售」。
狀態:已完成。
GET /api/products 與 GET /api/products/{id} 都會回傳 variants[]。product_variants.status = 'active' 的規格。id、sku、color、size、specification、price。price 由後端 BigDecimal 格式化為固定兩位小數字串。NOT_FOUND。狀態:未實作。
availableQuantity 或 inStock。sellable_product_variants 只過濾 active 狀態,不包含庫存數量。product_stock_summary 以 product_id 聚合,不能判斷單一 variant 的可售量。variant_id 為粒度的讀模型。inventory_stocks.on_hand_quantity 扣除 active product_stock_reservations.quantity 計算。variants[] 就宣稱可售庫存已接通。