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

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).

Path Parameters

TênKiểuBắt buộcMô tả
uuidstringCóUUID của giỏ hàng (nhận được khi tạo giỏ hàng).

Workflow & Logic

  1. Tìm dòng sản phẩm cần sửa:
    • Nếu gửi row_identifier: tìm theo row_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.
  2. 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.
  3. Nếu uom_quantity = 0: xóa dòng khỏi giỏ.
  4. 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ườngKiểuBắt buộcMô tả
product_variant_idintegerCóID biến thể.
uom_quantityintegerCóSố lượng mới; 0 để xóa dòng.
uom_idintegerKhôngID đơn vị tính của dòng.
weight_preset_idstringKhôngPreset cân nặng của dòng (nếu có).
row_identifierstringKhô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ỗiMô tả
error_cart_not_foundKhông tìm thấy giỏ hàng.
error_cart_data_item_missing_propertyThiếu product_variant_id hoặc uom_quantity.
error_edititemLưu giỏ hàng thất bại.

On this page