stable本次发布有变化全部展示
来自 Shopee 官方资料快照 ·
- 当前资料结构化阅读页
- 固定快照已留存,可追溯
- 官方原文可核对
资料正文
§1 v2.product.add_model
Add model. More detail please check: https://open.shopee.com/developer-guide/219
§2 Overview
Overview
| Field | Value |
|---|---|
| Module | Product |
| API type | Shop |
| HTTP method | POST |
| Path | /api/v2/product/add_model |
| Production URL | https://partner.shopeemobile.com/api/v2/product/add_model |
| Sandbox URL | https://partner.test-stable.shopeemobile.com/api/v2/product/add_model |
| Rate limit | [0, 0, 0] |
| Permission | ERP System; Seller In House System; Product Management |
§3 Request parameters
Request parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| item_id | int64 | Yes | 1000 | ID of item |
| model_list | object[] | Yes | Model list | |
| model_list.tier_index | int32[] | Yes | [0] | Tier index of model |
| model_list.original_price | float | Yes | 38.3 | Normal stock for price |
| model_list.model_sku | string | No | SKU | Seller sku, model_sku length information needs to be no more than 100 characters. |
| model_list.seller_stock | object[] | Yes | new stock info for model(Please notice that stock(including Seller Stock and Shopee Stock) should be larger than or equal to real-time reserved stock) | |
| model_list.seller_stock.location_id | string | No | location id, you can get the location id from v2.shop.get_warehouse_detail api, if seller don't have any warehouse, you don't need to upload this field. | |
| model_list.seller_stock.stock | int32 | Yes | stock | |
| model_list.gtin_code | string | No | - GTIN is an identifier for trade items, developed by the international organization GS1. - They have 8 to 14 digits. The most common are UPC, EAN, JAN and ISBN. - GTIN will help boost positioning in online marketing channels like Google and Facebook. - That incorporation with GTIN will also aid in Search and Recommendation in Shopee itself allowing buyers to have higher likelihood of finding one's listing.; Note: If you want to set “Item without GTIN”, please pass the gtin_code as "00". The validation rule is based on the value return in gtin_validation_rule" field in v2.product.get_item_limit API; - Mandatory: This field is required and must contain a correctly formatted GTiN number.; - Flexible: This field is required and must contain either a correctly formatted GTlN number or "00" to declare that the item/model has no valid GTlN. - Optional: This field is optional and can contain a correctly formatted GTiN number, "00" or be omitted entirely. | |
| model_list.weight | float | No | 1.1 | The weight of this model, the unit is KG.; If don't set the weight of this model, will use the weight of item by default.; If set the dimension of this model, them must set the weight of this model. |
| model_list.dimension | object | No | The dimension of this model.; If don't set the dimension of this model, will use the dimension of item by default. | |
| model_list.dimension.package_height | int32 | Yes | 11 | The height of package for this model, the unit is CM. |
| model_list.dimension.package_length | int32 | Yes | 11 | The length of package for this model, the unit is CM. |
| model_list.dimension.package_width | int32 | Yes | 11 | The width of package for this model, the unit is CM. |
| model_list.pre_order | object | No | Pre-order information of this model.; Notes: If don't set the DTS of this model, will use the DTS of the item by default. | |
| model_list.pre_order.is_pre_order | boolean | Yes | false | Whether the model is pre order. |
| model_list.pre_order.days_to_ship | int32 | No | 2 | Days to ship. Please get the days_to_ship range from the get_dts_limit API. |
§4 Response parameters
Response parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| error | string | Indicate error type if hit error. Empty if no error happened. | ||
| message | string | Indicate error details if hit error. Empty if no error happened. | ||
| warning | string | Warning message. | ||
| request_id | string | |||
| response | object | |||
| response.model | object[] | |||
| response.model.tier_index | int32[] | [0] | model tier index | |
| response.model.model_id | int64 | 32341 | ID of model | |
| response.model.model_sku | string | sku | Seller SKU of this model, model_sku length information needs to be no more than 100 characters. | |
| response.model.price_info | object[] | |||
| response.model.price_info.original_price | float | 52.4 | Original Price.; For CO local VAT responsible seller:Please remember the price you set in here must be VAT inclusive. If you have any doubts on how to calculate VAT for your product please refer to the Seller Education Hub(https://seller.shopee.com.co/edu/article/13565) | |
| response.model.seller_stock | object[] | new stock info | ||
| response.model.seller_stock.location_id | string | location id | ||
| response.model.seller_stock.stock | int32 | stock | ||
| response.model.weight | float | 1.1 | The weight of this model, the unit is KG.; If don't set the weight of this model, will use the weight of item by default.; If set the dimension of this model, them must set the weight of this model. | |
| response.model.dimension | object | The dimension of this model.; If don't set the dimension of this model, will use the dimension of item by default. | ||
| response.model.dimension.package_height | int32 | 11 | The height of package for this model, the unit is CM. | |
| response.model.dimension.package_length | int32 | 11 | The length of package for this model, the unit is CM. | |
| response.model.dimension.package_width | int32 | 11 | The width of package for this model, the unit is CM. |
§5 Common parameters
Common parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| partner_id | int | 1 | Partner ID is assigned upon registration is successful. Required for all requests. | |
| timestamp | timestamp | 1610000000 | This is to indicate the timestamp of the request. Required for all requests. Expires in 5 minutes. | |
| access_token | string | c09222e3fc40ffb25fc947f738b1abf1 | The token for API access, using to identify your permission to the api. Valid for multiple use and expires in 4 hours. | |
| shop_id | int | 600000 | Shopee's unique identifier for a shop. Required param for most APIs. | |
| sign | string | e318d3e932719916a9f9ebb57e2011961bd47abfa54a36e040d050d8931596e2 | Signature generated by partner_id, api path, timestamp, access_token, shop_id and partner_key via HMAC-SHA256 hashing algorithm. More details: https://open.shopee.com/documents?module=87&type=2&id=58&version=2 |
§6 Request samples
Request samples
§7 Payload
Payload
{
"model_list": [
{
"original_price": 38.3,
"model_sku": "SKU",
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
],
"gtin_code": "-",
"weight": 1.1
}
]
}
§8 Java
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://partner.shopeemobile.com/api/v2/product/add_model?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp")
.header("Content-Type","application/json")
.body("{
\"model_list\": [
{
\"gtin_code\": \"-\",
\"model_sku\": \"SKU\",
\"original_price\": 38.3,
\"seller_stock\": [
{
\"location_id\": \"-\",
\"stock\": 0
}
],
\"weight\": 1.1
}
]
}")
.asString();
§9 PHP
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://partner.shopeemobile.com/api/v2/product/add_model?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"model_list": [
{
"gtin_code": "-",
"model_sku": "SKU",
"original_price": 38.3,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
],
"weight": 1.1
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
§10 cURL
cURL
curl --location --request POST 'https://partner.shopeemobile.com/api/v2/product/add_model?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp' \
--header 'Content-Type: application/json' \
--data-raw '{
"model_list": [
{
"gtin_code": "-",
"model_sku": "SKU",
"original_price": 38.3,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
],
"weight": 1.1
}
]
}'
§11 Python
Python
import requests
import json
url = "https://partner.shopeemobile.com/api/v2/product/add_model?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp"
payload=json.dumps({
"model_list": [
{
"gtin_code": "-",
"model_sku": "SKU",
"original_price": 38.3,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
],
"weight": 1.1
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.RPCRequest("POST",url,headers=headers, data=payload, allow_redirects=False)
print(response.text)
§12 Response sample
Response sample
§13 JSON
JSON
{
"error": "-",
"message": "-",
"warning": "-",
"request_id": "-",
"response": {
"model": [
{
"model_sku": "sku",
"price_info": [
{
"original_price": 52.4
}
],
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
],
"weight": 1.1
}
]
}
}
§14 Error example
Error example
§15 JSON
JSON
{
"error": "product.error_param",
"message": "EOF",
"request_id": "004824f196f49b081e1d829b1bf15023"
}
§16 Errors
Errors
| Error | Description | Solution |
|---|---|---|
| product.error_busi | The GTIN code is mandatory, please check and upload again. | |
| error_network | Inner http call failed | |
| error_data | parse data failed | |
| error_data | data not exist | |
| error_param | parameter invalid | |
| error_param | The information you queried is not found. | |
| error_param | Wrong parameters, detail: {msg}. | |
| error_server | Something wrong. Please try later. | |
| error_shop | shopid is invalid | |
| error_param | request not from gateway | |
| error_auth_product_is_pff | Item/Model Fulfillment by Shopee can not be update. | |
| error_item_not_belong_shop | Item not belong to shop. | |
| error_param_shop_id_not_found | Shop_id is not found. | |
| error_param | The level of tier-variation over 2. | |
| error_param | Model tier_index error. | |
| error_param | Item without tier_variation. Please use init_tier_variation api to upgrade the structure. | |
| error_inner | Our system is taking some time to respond, please try later. | |
| error_inner | System error, please try again later or contact the OpenAPI support team. | |
| error_item_not_found | Product not found | |
| error_invalid_price | Invalid price, please use the correct format | |
| error_inner | Update item failed {{.error_info}} | |
| error_inner | Update item failed {{.error_info}} | |
| error_invalid_price_for_logistic | Shipping channel cannot be enabled as product price exceeds limit. | |
| error_inner | System error, please try again later or contact the OpenAPI support team. | |
| error_inner | System error, please try again later or contact the OpenAPI support team. | |
| error_auth | The current item belong to the full FBS or B2C shop, so normal stock must be equal to 0 | |
| error_param_validate | This is not a valid GTIN. Please, inform a valid number. | |
| error_param_validate | This is not a valid GTIN. Please, inform a valid number. | |
| error_busi_cannot_edit_vsku | Can not use OpenAPI to edit/create VSKU, please connect with your manager | |
| error_auth | The location_id input is not matched the shop's location_id(more/wrong). Please double check. | |
| error_auth | Lack of location_id, please double check. | |
| error_auth | Please wait for the holiday mode set then to edit item. Please try later. | |
| error_auth | Total stock must be more than reserved stock. | |
| error_param | {{.error_info}} | |
| error_auth | Your shop can not use model level dts | |
| error_auth | You do not have right to use seller location_id, please only fill seller_stock filed. | |
| error.param | Can not update item with stock less than reserved stock | |
| error_inner | Invalid stock location ID | |
| error_param | Can not update item with different stock structure. Can only update seller stock with location id when existing seller stock have location id. Can only update seller stock without location id when existing seller stock without location id. | |
| error_param | Can not update item with stock less than reserve stock | |
| error_busi | The merchant/shop has multi warehouse, please input location id | |
| error_auth | Stock should be larger than reserved stock. | |
| error_param | Invalid parameter for product. | |
| error_system_busy | Our system is taking some time to respond, please try later. | |
| error_nil_shopid_or_itemid | Query information failed. | |
| error_holiday_on_add_item | Shop is under vocation mode. | |
| error_nil_name_new_item_model | Item tier_variation name cannot be empty. | |
| error_price_exceed_min_limitt | Original_price is less than min price limit. | |
| error_price_exceed_max_limitt | Original_price is bigger than max price limit. | |
| error_wholesale_price_less_than_ratio_limit | Wholesale price is less than ratio limit. | |
| error_param | Can not update item with different stock structure. Can only update seller stock with location id when existing seller stock have location id. Can only update seller stock without location id when existing seller stock without location id. | |
| error_server | Interal error, please contact openapi team. | |
| error_slash_price_nomodel_to_models_lock | In slash sale, can't add model. | |
| error_price_should_be_same_for_wholesales | All model price should be the same when the item has been set wholesales. |
§17 Common errors
Common errors
| Error | Description | Solution |
|---|---|---|
| error_auth | partner_id is invalid | |
| error_auth | The App is deleted, and you'll be unable to make any API call. | |
| error_auth | App developer’s permissions for authorizations have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| error_param | There is no partner_id in query. | |
| error_param | Invalid partner_id. | |
| error_param | no timestamp | |
| error_param | Invalid timestamp | |
| error_param | There is no sign in query. | |
| error_sign | Wrong sign. | |
| invalid_partner_id | Invalid partner_id, please have a check. | |
| error_auth | No permission to current api. | |
| error_api_call_restricted | The App permission for api call have been restricted. If you’re a seller, contact the developer for more information. If you’re the developer, refer to the Open Platform Console for details. | |
| api_suspended | The API is offline. Please call v2 API instead. | |
| error_limit | The total API call number made by your APP has reached the daily API call limit, please try again after 00: 00 (UTC+08:00) | |
| error_rate_limit | Too many requests. You have reached the rate limit. Please try again later. | |
| source_ip_undeclared | Request Source IP ({ip}) is undeclared. Please declare all your IP addresses in the Shopee Open Platform Console > App list > IP Address Whitelist | |
| error_param | Permission denied. This API is currently offline or the request path is incorrect. | |
| error_param | Partner_id is invalid, should be an integer between 0 and 4294967295. | |
| error_param | no timestamp. | |
| error_param | Timestamp is invalid, should be an integer between 0 and 4294967295. | |
| error_param | Timestamp is expired. | |
| error_partner_key_expired | Your API partner key has expired, please reset the Live API Partner Key in Console to get a new valid partner key to call open api. | |
| error_api_permission | This app type has no permission to this API. | |
| error_param | There is no access_token in query. | |
| error_auth | Invalid access_token. | |
| error_auth | Invalid partner_id or shopid. | |
| shop_no_linked | Partner and shop has no linked. | |
| shop_banned | The shop account has been banned. Permissions for shop authorization and API calls have been suspended until the shop account is restored. | |
| invalid_acceess_token | Invalid access_token, please have a check. | |
| partner_shop_no_link | Invalid partner_id or shop_id, please have a check. | |
| error_ashop_api_permission | The shop is Affiliate shop has no permission to call this API. | |
| error_kyc_auth | No permission. Please inform the seller to complete the Seller Registration on Shopee Seller Center first, then this shop can call for this API. | |
| error_auth | System error, please try again later. | |
| error_param | There is no shop_id in query. | |
| error_param | shop_id is invalid, should be an integer between 0 and 4294967295. |
§18 Update log
Update log
| Date | Change |
|---|---|
| 2025-01-08 | Update GTIN validation rule |
| 2024-06-21 | add model level DTS |
| 2024-05-29 | add model level weight and dimension |
| 2023-05-05 | update the description of gtin_code |
| 2022-10-31 | offline the normal_stock and stock_info fields |
