CartGiỏ hàng khách hàng
Tạo giỏ hàng
Tạo giỏ hàng mới (có thể kèm sẵn sản phẩm).
Endpoint
POST /site/customercarts
Headers
| Key | Value | Bắt buộc | Mô tả |
|---|---|---|---|
SiteTenantId | {tenant_id} | Có | ID của công ty/tenant. |
SiteAuthorization | {jwt_token} | Không | Token khách hàng (nếu đã đăng nhập). |
Workflow & Logic
- Tạo quá nhiều giỏ hàng từ cùng một IP trong thời gian ngắn sẽ bị chặn với lỗi
error_cart_creation_spam_detection. sourcechỉ nhận3(Website),5(Mobile app),7(Mini app); giá trị khác hoặc không truyền sẽ dùng3.- Nếu có
data, mỗi phần tử phải cóproduct_variant_id,uom_id,uom_quantitydạng số và biến thể phải tồn tại. - Tạo giỏ hàng với
uuidmới, trạng thái1(Active),shipping_type = delivery,payment_method = 11(COD). Nếu khách đã đăng nhập, giỏ được gắn với khách hàng. - Tính giá, khuyến mãi và trả về giỏ hàng. Frontend lưu
uuidđể dùng cho các API giỏ hàng tiếp theo.
Request Body
{
"source": 3,
"data": [
{
"product_variant_id": 101,
"uom_id": 0,
"uom_quantity": 1
}
]
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
source | integer | Không | Nguồn tạo giỏ: 3 Website (mặc định), 5 Mobile app, 7 Mini app. |
data | array | Không | Danh sách sản phẩm ban đầu (cùng cấu trúc item như Thêm sản phẩm). |
Response Schema
HTTP 201 - Created
Trả về giỏ hàng vừa tạo (đã tính giá). Xem Customer Cart Object.
HTTP 422 - Lỗi dữ liệu
| Mã lỗi | Mô tả |
|---|---|
error_cart_creation_spam_detection | Tạo quá nhiều giỏ hàng từ cùng một IP. |
error_cart_data_item_missing_property | Item trong data thiếu product_variant_id, uom_id hoặc uom_quantity. |
error_cart_data_item_product_variant_id_not_found | Biến thể không tồn tại. |
error_cart_data_item_product_site_id_not_found | Không tìm thấy sản phẩm của biến thể. |
error_add | Tạo giỏ hàng thất bại (luôn đi kèm khi có lỗi ở trên). |