Tạo sản phẩm mới
API này giúp bạn tạo một sản phẩm mới trong hệ thống. Bạn cần cung cấp các thông tin cần thiết về sản phẩm như tên, giá, mô tả, danh mục, v.v.
Endpoint
http POST https://staging-manage.api.miniai.vn/api/external/v1/products
http POST https://manage-api.miniap.vn/api/external/v1/products
Xác thực (Authentication)
Mọi request phải gửi kèm API key của bạn trong header:
| Header | Giá trị | Yêu cầu |
|---|---|---|
x-api-key | miniai-partner <API_KEY_CỦA_BẠN> | Bắt buộc |
Content-Type | application/json | Bắt buộc |
Dữ liệu yêu cầu (Request Body)
Tham số (Parameters)
Chỉ name và price là bắt buộc. Các trường còn lại là tùy chọn.
| Trường | Kiểu | Yêu cầu | Mặc định | Mô tả |
|---|---|---|---|---|
name | string | Bắt buộc | — | Tên sản phẩm |
price | number | Bắt buộc | — | Giá bán |
description | string | Tùy chọn | — | Mô tả sản phẩm |
originPrice | number | Tùy chọn | — | Giá gốc |
categoryId | string | Tùy chọn | — | ID danh mục |
status | string | Tùy chọn | active | active hoặc inactive |
vat | number | Tùy chọn | — | Phần trăm VAT |
images | string[] | Tùy chọn | — | Danh sách URL ảnh sản phẩm |
itemSku | string | Tùy chọn | — | Mã SKU gốc của sản phẩm |
barcode | string | Tùy chọn | — | Mã vạch sản phẩm |
skus | object[] | Tùy chọn | — | Danh sách biến thể SKU (xem bảng bên dưới) |
variants | object[] | Tùy chọn | — | Danh sách nhóm biến thể (xem bảng bên dưới) |
Mỗi phần tử trong skus[]
| Trường | Kiểu | Yêu cầu | Mặc định | Mô tả |
|---|---|---|---|---|
name | string | Bắt buộc | — | Tên SKU (vd: "Xanh / S") |
price | number | Bắt buộc | — | Giá bán của SKU |
originPrice | number | Tùy chọn | — | Giá gốc của SKU |
sku | string | Tùy chọn | — | Mã SKU |
barcode | string | Tùy chọn | — | Mã vạch của SKU |
variantOptionIds | string[] | Tùy chọn | — | Danh sách id tùy chọn biến thể |
Trường stock_quantity không còn được chấp nhận trong request body — cả ở cấp sản phẩm lẫn trong từng phần tử skus[]. Nếu gửi lên, API sẽ trả về lỗi 400 với thông báo "stock_quantity" is not allowed.
Tồn kho được tính ra từ dữ liệu kho, không phải gán trực tiếp. Sản phẩm vừa tạo luôn có stock_quantity = 0; muốn nhập tồn thì gọi API tồn kho sau khi tạo sản phẩm xong.
Mỗi phần tử trong variants[]
| Trường | Kiểu | Yêu cầu | Mô tả |
|---|---|---|---|
id | string | Bắt buộc | ID nhóm biến thể |
name | string | Bắt buộc | Tên nhóm biến thể (vd: "Màu sắc") |
options | object[] | Bắt buộc | Danh sách tùy chọn, mỗi tùy chọn gồm id và value (cả hai đều bắt buộc) |
- Request Body
{
"name": "Tên sản phẩm",
"description": "Tên sản phẩm",
"price": 20000,
"originPrice": 15000,
"categoryId": "685ba1be4792d338d2ec3cbe",
"status": "active",
"vat": 5,
"images": [
"https://dmcl0k8mc5oht.cloudfront.net/64204a17a5a97a86f12e1f0a/e888246f-2647-42f1-9d89-53eacdb7bf64.webp"
],
"skus": [
{
"name": "Xanh / S",
"price": 20000,
"originPrice": 15000,
"sku": "Sku04",
"barcode": "51515hahah",
"variantOptionIds": [
"option-1749727727271",
"option-1749727740208"
]
},
{
"name": "Xanh / L",
"price": 20000,
"originPrice": 15000,
"sku": "Sku03",
"barcode": "152525h",
"variantOptionIds": [
"option-1749727727271",
"option-1749727746449"
]
},
{
"name": "Do / S",
"price": 20000,
"originPrice": 15000,
"sku": "Sku02",
"barcode": "152522",
"variantOptionIds": [
"option-1749727729878",
"option-1749727740208"
]
},
{
"name": "Do / L",
"price": 20000,
"originPrice": 15000,
"sku": "Sku01",
"barcode": "1262636",
"variantOptionIds": [
"option-1749727729878",
"option-1749727746449"
]
}
],
"itemSku": "Sku",
"barcode": "12344",
"variants": [
{
"id": "variant-1749727723707",
"name": "Mau sac",
"options": [
{
"id": "option-1749727727271",
"value": "Xanh"
},
{
"id": "option-1749727729878",
"value": "Do"
}
]
},
{
"id": "variant-1749727733307",
"name": "Kich thuoc",
"options": [
{
"id": "option-1749727740208",
"value": "S"
},
{
"id": "option-1749727746449",
"value": "L"
}
]
}
]
}
Phản hồi (Response)
- Response
{
"success": true,
"message": "Success",
"data": {
"type": "product",
"name": "Tên sản phẩm",
"description": "Tên sản phẩm",
"images": [
"https://dmcl0k8mc5oht.cloudfront.net/64204a17a5a97a86f12e1f0a/e888246f-2647-42f1-9d89-53eacdb7bf64.webp"
],
"subItemsGroupIds": [],
"price": 20000,
"originPrice": 15000,
"configs": [],
"hashtags": [],
"itemSku": "Sku",
"barcode": "12344",
"shopId": "64204a17a5a97a86f12e1f0a",
"collectionIDs": [],
"status": "active",
"totalRating": 0,
"totalReview": 0,
"sortOrder": 0,
"isNullSortOrder": false,
"platform": "mini_app",
"brandProductIds": [],
"fakeReviewIds": [],
"vat": 5,
"_id": "68c93dba802d36826bc45c9c",
"createdAt": "2025-09-16T10:36:42.809Z",
"updatedAt": "2025-09-16T10:36:42.809Z",
"__v": 0,
"skus": [
{
"name": "Xanh / S",
"price": 20000,
"originPrice": 15000,
"stock_quantity": 0,
"sku": "Sku04",
"barcode": "51515hahah",
"variantOptionIds": [
"option-1749727727271",
"option-1749727740208"
]
},
{
"name": "Xanh / L",
"price": 20000,
"originPrice": 15000,
"stock_quantity": 0,
"sku": "Sku03",
"barcode": "152525h",
"variantOptionIds": [
"option-1749727727271",
"option-1749727746449"
]
},
{
"name": "Do / S",
"price": 20000,
"originPrice": 15000,
"stock_quantity": 0,
"sku": "Sku02",
"barcode": "152522",
"variantOptionIds": [
"option-1749727729878",
"option-1749727740208"
]
},
{
"name": "Do / L",
"price": 20000,
"originPrice": 15000,
"stock_quantity": 0,
"sku": "Sku01",
"barcode": "1262636",
"variantOptionIds": [
"option-1749727729878",
"option-1749727746449"
]
}
],
"variants": [
{
"id": "variant-1749727723707",
"name": "Mau sac",
"options": [
{
"id": "option-1749727727271",
"value": "Xanh"
},
{
"id": "option-1749727729878",
"value": "Do"
}
]
},
{
"id": "variant-1749727733307",
"name": "Kich thuoc",
"options": [
{
"id": "option-1749727740208",
"value": "S"
},
{
"id": "option-1749727746449",
"value": "L"
}
]
}
],
"id": "68c93dba802d36826bc45c9c"
}
}