CartGiỏ hàng khách hàng
Cập nhật số lượng / xóa sản phẩm
Cập nhật số lượng của một dòng sản phẩm trong giỏ, hoặc xóa dòng khi số lượng bằng 0.
Endpoint
PUT /site/customercarts/{uuid}/edititem
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). |
Path Parameters
| Tên | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
uuid | string | Có | UUID của giỏ hàng (nhận được khi tạo giỏ hàng). |
Workflow & Logic
- Tìm dòng sản phẩm cần sửa:
- Nếu gửi
row_identifier: tìm theorow_identifier(dùng cho dòng combo). - Ngược lại: tìm dòng không phải combo có cùng
product_variant_id,uom_id,weight_preset_id.
- Nếu gửi
- Nếu
uom_quantity > 0: đặt số lượng mới (không cộng dồn). Với dòng thuộc flash sale/khung giờ đặt hàng, hệ thống kiểm tra giới hạn số lượng. - Nếu
uom_quantity = 0: xóa dòng khỏi giỏ. - Tính lại giá, khuyến mãi và trả về giỏ hàng.
Quyền truy cập giỏ hàng
Giỏ hàng được tìm theo uuid trong shop hiện tại. Nếu giỏ đã gắn với một khách hàng, khách hàng khác đang đăng nhập sẽ nhận lỗi error_cart_not_found. Khách chưa đăng nhập vẫn dùng được giỏ bằng uuid, vì vậy cần giữ uuid bí mật (VD: lưu trong cookie).
Request Body
{
"product_variant_id": 101,
"uom_id": 0,
"weight_preset_id": "",
"uom_quantity": 3
}| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
product_variant_id | integer | Có | ID biến thể. |
uom_quantity | integer | Có | Số lượng mới; 0 để xóa dòng. |
uom_id | integer | Không | ID đơn vị tính của dòng. |
weight_preset_id | string | Không | Preset cân nặng của dòng (nếu có). |
row_identifier | string | Không | Định danh dòng (lấy từ details[].row_identifier), dùng cho dòng combo. |
Response Schema
HTTP 200 - Thành công
Trả về giỏ hàng đã được tính lại giá và khuyến mãi (các trường cơ bản + details, total_item, total_weight, promotionengine, ...). Xem Customer Cart Object và mô tả details[] tại Lấy báo giá giỏ hàng.
HTTP 422 - Lỗi dữ liệu
| Mã lỗi | Mô tả |
|---|---|
error_cart_not_found | Không tìm thấy giỏ hàng. |
error_cart_data_item_missing_property | Thiếu product_variant_id hoặc uom_quantity. |
error_edititem | Lưu giỏ hàng thất bại. |