OMSFlash Sale
Lấy Quota Usage (số lượng đã bán)
Truy vấn số lượng sản phẩm đã bán trong một chương trình Flash Sale hoặc Order Window để kiểm tra quota còn lại.
Endpoint
GET /site/orders/quota-usage
Headers
| Key | Value | Bắt buộc | Mô tả |
|---|---|---|---|
SiteTenantId | {tenant_id} | Có | ID của công ty/tenant. |
Workflow & Logic
API này dùng để truy vấn số lượng sản phẩm đã bán (quota usage) trong một chương trình giá đặc biệt (Flash Sale hoặc Order Window). Dữ liệu được tính từ các đơn hàng chưa bị hủy.
Kết hợp với thông tin quota_total_quantity từ Flash Sale Detail, storefront có thể tính toán và hiển thị:
- Số lượng còn lại có thể mua.
- Thanh tiến trình "Đã bán X/Y sản phẩm".
- Disable nút mua khi hết quota.
Cách tính
Hệ thống đếm tổng uom_quantity và item_quantity của các dòng sản phẩm trong đơn hàng của shop hiện tại với điều kiện:
- Dòng sản phẩm được bán theo ngữ cảnh giá
flash_sale(hoặcorder_window) có ID =context_id. - Đơn hàng không bị hủy.
- Nhóm theo
product_id+product_variant_id.
Query Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
context_type | string | Có | Loại chương trình: flash_sale hoặc order_window. |
context_id | integer | Có | ID chương trình (Flash Sale ID hoặc Order Window ID). |
product_variant_id | integer | Không | Lọc theo biến thể sản phẩm cụ thể (mặc định 0 = lấy tất cả). |
Response Schema
HTTP 200 - Thành công
| Field | Kiểu | Mô tả |
|---|---|---|
context_type | string | Loại chương trình đã truyền vào (flash_sale hoặc order_window). |
context_id | integer | ID chương trình đã truyền vào. |
items | array | Danh sách quota usage theo từng sản phẩm/biến thể. |
items[]
| Field | Kiểu | Mô tả |
|---|---|---|
product_id | integer | ID sản phẩm. |
product_variant_id | integer | ID biến thể sản phẩm. |
total_uom_quantity | integer | Tổng số lượng theo UOM đã bán. |
total_item_quantity | integer | Tổng số lượng item đã bán. |
order_count | integer | Số đơn hàng đã đặt (distinct). |
Ví dụ Response
{
"context_type": "flash_sale",
"context_id": 5,
"items": [
{
"product_id": 150,
"product_variant_id": 301,
"total_uom_quantity": 45,
"total_item_quantity": 45,
"order_count": 30
},
{
"product_id": 150,
"product_variant_id": 302,
"total_uom_quantity": 20,
"total_item_quantity": 20,
"order_count": 15
}
]
}HTTP 422 - Lỗi dữ liệu
| Mã lỗi | Mô tả |
|---|---|
error_invalid_context_type_or_id | context_type không hợp lệ (phải là flash_sale hoặc order_window) hoặc context_id <= 0. |