Skip to main content Link Search Menu Expand Document (external link)

Cart API

Cart API dùng để tương tác với giỏ hàng trong phiên truy cập của khách hàng

GET /cart.js

Lấy thông tin giỏ hàng

Dữ liệu trả về

Trả về thông tin giỏ hàng

Ví dụ giỏ hàng:

{
  "token": "ff415998af863ee622c498dff2d8840d",
  "items": [
    {
      "id": 3,
      "grams": 5,
      "price": 666666,
      "price_final": 666666,
      "line_price": 666666,
      "line_price_final": 666666,
      "price_original": 666666,
      "line_price_orginal": 666666,
      "line_price_original": 666666,
      "total_discount": 0,
      "quantity": 1,
      "requires_shipping": true,
      "sku": null,
      "product_id": 11359829,
      "variant_id": 17549956,
      "title": "sản phẩm áp dụng KM đc 0 đ có khối lượng",
      "variant_title": "Xanh / S",
      "vendor": null,
      "name": "sản phẩm áp dụng KM đc 0 đ có khối lượng - Xanh / S",
      "image": "https://bizweb.dktcdn.net/105/299/218/products/cho-corgi-7-min-1.jpg?v=1632891113833",
      "url": "/san-pham-0-d-co-khoi-luong?variantId=17549956",
      "properties": {}
    }
  ],
  "total_weight": 5,
  "item_count": 1,
  "total_discounts": 0,
  "total_price": 666666,
  "total_line_items_price": 666666,
  "requires_shipping": true,
  "note": "",
  "attributes": []
}

Ví dụ giỏ hàng rỗng

{
  "token": "2938bca6172e7273d5856817de22e42f",
  "items": [],
  "total_weight": 0,
  "item_count": 0,
  "total_discounts": 0,
  "total_price": 0,
  "total_line_items_price": 0,
  "requires_shipping": false,
  "note": null,
  "attributes": []
}

POST /cart/add.js

Sử dụng api này để thêm phiên bản sản phẩm vào giỏ hàng

Ví dụ:

jQuery.post('/cart/add.js', {
  variantId: 17581931,
  quantity: 1
})

Thêm phiên bản với thuộc tính

Bạn có thể thêm phiên bản vào giỏ hàng có thuộc tính của item bằng cách sử dụng tham số properties

jQuery.post('/cart/add.js', {
  variantId: 17581931,
  quantity: 1,
  properties: {
    'first name': 'An'
  }
})
// response:
{
  "id": 1,
  "variant_id": 17581931,
  "quantity": 1,
  ...
  "properties": {
    "first name": "An"
  }
}

Dữ liệu trả về

Khi thêm thành công phiên bản, api trả về thông tin line item được thêm

Ví dụ

{
  "id": 1,
  "grams": 0,
  "price": 20000.0,
  "price_final": 20000.0,
  "line_price": 40000.0,
  "line_price_final": 40000.0,
  "price_original": 20000.0,
  "line_price_orginal": 40000.0,
  "line_price_original": 40000.0,
  "total_discount": 0,
  "quantity": 2,
  "requires_shipping": true,
  "sku": null,
  "product_id": 11365744,
  "variant_id": 17581931,
  "title": "bé trai",
  "variant_title": "Default Title",
  "vendor": null,
  "name": "bé trai",
  "image": "https://bizweb.dktcdn.net/105/299/218/products/ddi4os8-7041e05c-2df9-4f27-99fa-d5728f090988.png?v=1653540406460",
  "url": "/be-trai?variantId=17581931",
  "properties": {
    "first name": "An"
  }
}
Lỗi trả về khi phiên bản không tồn tại

Ví dụ

{
  "status": 422,
  "message": "Cart Error",
  "description": "Cannot find variant"
}

POST /cart/update.js

Sử dụng api này để cập nhật số lượng trong line item, ghi chú hoặc thuộc tính của giỏ hàng

Cập nhật số lượng line item

Ví dụ cập nhật line item có id phiên bản là 17581931 với số lượng 2, id phiên bản là 794864233 với số lượng 3

jQuery.post('/cart/update.js', {
  updates: {
    17581931: 2,
    794864233: 3
  }
});

Cập nhật số lượng line item sử dụng chỉ số line item

Ví dụ cập nhật line item 1, 2 với số lượng tương ứng 2, 3

jQuery.post('/cart/update.js', {
  lines: [2, 3]
});

Cập nhật ghi chú đơn hàng

jQuery.post('/cart/update.js', {
  note: 'This is a note about my order'
});

Cập nhật thuộc tính của giỏ hàng

jQuery.post('/cart/update.js', {
  attributes: {
    'First name': 'Lan'
  }
});

Dữ liệu trả về

Khi cập nhật thành công api trả về thông tin giỏ hàng

Lỗi trả về khi phiên bản không tồn tại

Khi ID gửi lên không thuộc về phiên bản nào

{
  "status": 422,
  "message": "Cart Error",
  "description": "Cannot find variant"
}

POST /cart/change.js

Sử dụng api này để cập nhật số lượng, thuộc tính của một line item. Bạn chỉ có thể thay đổi item đã tồn tại trong giỏ hàng và chỉ có thể thay đổi 1 line item mỗi lần

Để định danh line item cần cập nhật, bạn có thể sử dụng ID của phiên bản sản phẩm hoặc tham số line là chỉ số line item trong danh sách line item của giỏ hàng

Cập nhật số lượng trong line item

jQuery.post('/cart/change.js', {
  line: 2,
  quantity: 1
});

Cập nhật thuộc tính của line item

jQuery.post('/cart/change.js', {
  variantId: 794864233,
  properties: {
    'First name': 'An'
  }
});

Dữ liệu trả về

Khi cập nhật thành công api trả về thông tin giỏ hàng

Lỗi khi line gửi lên không thuộc về line item nào
{
  "status": 422,
  "message": "Cart Error",
  "description": "Cannot find variant"
}

POST /cart/clear.js

Sử dụng api này để đặt số lượng trong tất cả line item về 0

Dữ liệu trả về

Thông tin giỏ hàng trống sẽ được trả về.

Ví dụ

{
  "token": "6756c1cc3cf0b14c9b756d26e9d012ac",
  "items": [],
  "total_weight": 0,
  "item_count": 0,
  "total_discounts": 0,
  "total_price": 0,
  "total_line_items_price": 0,
  "requires_shipping": false,
  "note": null,
  "attributes": []
}

Đối tượng

Cart

Thông tin giỏ hàng

Thuộc tính
attributes

Danh sách key-value thuộc tính thêm của giỏ hàng

item_count (number)

Số lượng item trong giỏ hàng

items (mảng line_item)

Danh sách line item trong giỏ hàng

note (string)

Ghi chú cho giỏ hàng

token (string)

token của giỏ hàng

total_discounts (number)

Tổng giá trị khuyến mãi trong giỏ hàng

total_line_items_price (number)

Tổng giá trị line item trước khi áp dụng chương trình khuyến mãi.

total_price (number)

Tổng giá trị line item sau khi áp dụng chương trình khuyến mãi.

total_weight (number)

Tổng khối lượng tính theo grams các line item của giỏ hàng

Line_item

Thông tin line item trong giỏ hàng

Thuộc tính
grams (number)

Khối lượng của phiên bản liên kết với line item tính theo gram

id (number)

Id của line item

image (string)

Ảnh của line item. Có thể là ảnh phiên bản hoặc ảnh đại diện sản phẩm liên kết với line item

line_price_final (number)

Giá trị sau khuyến mãi của line item. Giá trị này tương ứng với price_final nhân quanity

line_price_original (number)

Giá trị trước khuyến mãi của line item. Giá trị này tương ứng với price_original nhân quanity

name (string)

Tên của sản phẩm liên kết với line item

price_final (number)

Giá sau khuyến mãi của line item

price_original (number)

Giá trước khuyến mãi của line item

product_id (number)

ID của sản phẩm liên kết với line item

properties

key-value thuộc tính thêm của line item

quantity (number)

Số lượng của line item

requires_shipping (boolean)

Trả về true nếu có phiên bản liên kết với line item yêu cầu vận chuyển, ngược lại trả về false

sku (string)

sku của phiên bản liên kết với line item

title (string)

Tiêu đề của line item

total_discount (number)

Giá trị khuyến mãi áp dụng cho line item. Lưu ý giá trị này chưa tính đến quantity

url (string)

Đường dẫn tới phiên bản liên kết với line item

variant_id (number)

ID của phiên bản liên kết với line item

variant_title (string)

Tiêu đề của phiên bản liên kết với line item

vendor (string)

Tên nhà cung cấp của phiên bản liên kết với line item

Thuộc tính Deprecated
line_price (number)

Giá trị sau khuyến mãi của line item. Giá trị này tương ứng với price nhân quanity

Thuộc tính line_item.line_price đã được thay thế bởi các thuộc tính line_item.line_price_finalline_item.line_price_original

price (number)

Giá sau khuyến mãi của line item

Thuộc tính line_item.price đã được thay thế bởi các thuộc tính line_item.price_finalline_item.price_original