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

KeyValueBắt buộcMô tả
SiteTenantId{tenant_id}CóID của công ty/tenant.
SiteAuthorization{jwt_token}KhôngToken khách hàng (nếu đã đăng nhập).

Workflow & Logic

  1. 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.
  2. source chỉ nhận 3 (Website), 5 (Mobile app), 7 (Mini app); giá trị khác hoặc không truyền sẽ dùng 3.
  3. Nếu có data, mỗi phần tử phải có product_variant_id, uom_id, uom_quantity dạng số và biến thể phải tồn tại.
  4. Tạo giỏ hàng với uuid mới, trạng thái 1 (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.
  5. 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ườngKiểuBắt buộcMô tả
sourceintegerKhôngNguồn tạo giỏ: 3 Website (mặc định), 5 Mobile app, 7 Mini app.
dataarrayKhôngDanh 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ỗiMô tả
error_cart_creation_spam_detectionTạo quá nhiều giỏ hàng từ cùng một IP.
error_cart_data_item_missing_propertyItem trong data thiếu product_variant_id, uom_id hoặc uom_quantity.
error_cart_data_item_product_variant_id_not_foundBiến thể không tồn tại.
error_cart_data_item_product_site_id_not_foundKhông tìm thấy sản phẩm của biến thể.
error_addTạo giỏ hàng thất bại (luôn đi kèm khi có lỗi ở trên).

On this page