stable本次发布有变化全部展示
来自 Shopee 官方资料快照 ·
- 当前资料结构化阅读页
- 固定快照已留存,可追溯
- 官方原文可核对
资料正文
§1 v2.product.update_stock
Use this API to update one item_id for each call, but still can support updating multiple model_ids stock of the same item_id (If you need batch modification, please call multiple times)This API will update only "seller_stock".Whenever there is a promotion ongoing or upcoming, the total stock must be larger than or equal to real-time “reserved_stock” promotion stock (Please check v2.get_item_promotion API for more details). Items that are deleted will not be allowed to modify stock.
§2 Overview
Overview
| Field | Value |
|---|---|
| Module | Product |
| API type | Shop |
| HTTP method | POST |
| Path | /api/v2/product/update_stock |
| Production URL | https://partner.shopeemobile.com/api/v2/product/update_stock |
| Sandbox URL | https://partner.test-stable.shopeemobile.com/api/v2/product/update_stock |
| Rate limit | [0, 0, 0] |
| Permission | ERP System; Seller In House System; Product Management; Swam ERP |
§3 Request parameters
Request parameters
| Name | Type | Required | Sample | Description |
|---|---|---|---|---|
| item_id | int64 | Yes | 1000 | ID of item. |
| stock_list | object[] | Yes | Length should be between 1 to 50. | |
| stock_list.model_id | int64 | No | 0 for no model item. | |
| stock_list.seller_stock | object[] | Yes | new stock info(Please notice that stock(including Seller Stock and Shopee Stock) should be larger than or equal to real-time reserved stock) | |
| stock_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. | |
| stock_list.seller_stock.stock | int64 | Yes | stock |
§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 | The identifier for an API request for error tracking. | ||
| response | object | |||
| response.failure_list | object[] | Fail model list. | ||
| response.failure_list.model_id | int64 | ID of model. | ||
| response.failure_list.failed_reason | string | Reason for failure. | ||
| response.success_list | object[] | Success model list. | ||
| response.success_list.model_id | int64 | ID of model. | ||
| response.success_list.location_id | string | location id; This field and the stock field are returned in pairs | ||
| response.success_list.stock | int64 | stock;This field is returned if seller stock is used in the request, and normal stock fields are not returned. |
§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
{
"item_id": 1000,
"stock_list": [
{
"model_id": 0,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
]
}
]
}
§8 Java
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://partner.shopeemobile.com/api/v2/product/update_stock?sign=sign&access_token=access_token×tamp=timestamp&shop_id=shop_id&partner_id=partner_id")
.header("Content-Type","application/json")
.body("{
\"item_id\": 1000,
\"stock_list\": [
{
\"model_id\": 0,
\"seller_stock\": [
{
\"location_id\": \"-\",
\"stock\": 0
}
]
}
]
}")
.asString();
§9 PHP
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://partner.shopeemobile.com/api/v2/product/update_stock?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 => '{
"item_id": 1000,
"stock_list": [
{
"model_id": 0,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
]
}
]
}',
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/update_stock?timestamp=timestamp&shop_id=shop_id&partner_id=partner_id&sign=sign&access_token=access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"item_id": 1000,
"stock_list": [
{
"model_id": 0,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
]
}
]
}'
§11 Python
Python
import requests
import json
url = "https://partner.shopeemobile.com/api/v2/product/update_stock?access_token=access_token&partner_id=partner_id&shop_id=shop_id&sign=sign×tamp=timestamp"
payload=json.dumps({
"item_id": 1000,
"stock_list": [
{
"model_id": 0,
"seller_stock": [
{
"location_id": "-",
"stock": 0
}
]
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("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": {
"failure_list": [
{
"model_id": 0,
"failed_reason": "-"
}
],
"success_list": [
{
"model_id": 0,
"location_id": "-",
"stock": 0
}
]
}
}
§14 Error example
Error example
§15 JSON
JSON
{
"error": "product.error_param",
"message": "invalid field ItemId: value must Not Null",
"request_id": "11484dd6d9e203edd5d332551249de57"
}
§16 Errors
Errors
| Error | Description | Solution |
|---|---|---|
| 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_item_not_belong_shop | Item not belong to shop. | |
| error_wms_shop_block_upate_stock | Warehouse shop can't update stock. | |
| error_auth | cnsc shop not upgraded, can not edit item. | |
| error_item_not_found | Item_id is not found. | |
| error_param_shop_id_not_found | Shop_id is not found. | |
| error_param | Parameter is not match the constraints, {{.error_info}}. | |
| error_param | Repeat model_id. | |
| error_param | Wrong model_id. | |
| error_busi_update_stock_failed | Update stock failed, please check failure_list for detailed reason | |
| error_server | The current item belong to the full FBS shop, so normal stock must be equal to 0 | |
| 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_inner | Update item failed {{.error_info}} | |
| error_inner | Update item failed {{.error_info}} | |
| 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_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_seller_under_penalty | The shop is under penalty. | |
| error_nil_shopid_or_itemid | Query information failed. | |
| error_item_uneditable | Can't edit this item. item status can not support editing. | |
| error_perm_non_admin | Don't have permission. | |
| 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_cannt_edit_stock_in_promotion | Normal_stock cannot be edited when item is under promotion. | |
| error_cannt_edit_stock_in_promotion | Normal_stock cannot be edited when item is under promotion. | |
| error_server | Interal error, please contact openapi team. | |
| error_holiday_mode_change_stock | Cannot change stock in holiday mode. | |
| error_promotion_cantnot_update_stock | Cannot change stock when item is under promotion. | |
| error_in_item_promotion_nomodel_to_models | Can't to edit item stock directly while item has models. | |
| error_model_update_stock_model_in_promotion | Model stock cannot be editted when item/model is promotion. | |
| error_edit_item_stock_for_item_has_model | Can't to edit item stock directly while item has models. |
§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 |
|---|---|
| 2022-10-31 | offline the normal_stock fields |
| 2022-06-13 | add reminder "Please use the seller_stock field instead, we will deprecate this field in the future." |
