快工助手跨境电商知识与商机助手

v2.product.update_stock

Shopee 官方资料 · Shopee Open Platform 接口参考 · 适合开发者

stable本次发布有变化全部展示

来自 Shopee 官方资料快照 ·

打开官方原文 ↗
  1. 当前资料结构化阅读页
  2. 固定快照已留存,可追溯
  3. 官方原文可核对
查看技术与溯源信息
平台 / profile
Shopee / profile.shopee.api_reference
语言
en-US
发布版本
cn-20260909-2
标签
zhuge/sourceplatform/shopeeaudience/developercategory/api_doctopic/apitopic/developer

资料正文

§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

FieldValue
ModuleProduct
API typeShop
HTTP methodPOST
Path/api/v2/product/update_stock
Production URLhttps://partner.shopeemobile.com/api/v2/product/update_stock
Sandbox URLhttps://partner.test-stable.shopeemobile.com/api/v2/product/update_stock
Rate limit[0, 0, 0]
PermissionERP System; Seller In House System; Product Management; Swam ERP
#

§3 Request parameters

Request parameters

NameTypeRequiredSampleDescription
item_idint64Yes1000ID of item.
stock_listobject[]YesLength should be between 1 to 50.
stock_list.model_idint64No0 for no model item.
stock_list.seller_stockobject[]Yesnew 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_idstringNolocation 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.stockint64Yesstock
#

§4 Response parameters

Response parameters

NameTypeRequiredSampleDescription
errorstringIndicate error type if hit error. Empty if no error happened.
messagestringIndicate error details if hit error. Empty if no error happened.
warningstringWarning message.
request_idstringThe identifier for an API request for error tracking.
responseobject
response.failure_listobject[]Fail model list.
response.failure_list.model_idint64ID of model.
response.failure_list.failed_reasonstringReason for failure.
response.success_listobject[]Success model list.
response.success_list.model_idint64ID of model.
response.success_list.location_idstringlocation id; This field and the stock field are returned in pairs
response.success_list.stockint64stock;This field is returned if seller stock is used in the request, and normal stock fields are not returned.
#

§5 Common parameters

Common parameters

NameTypeRequiredSampleDescription
partner_idint1Partner ID is assigned upon registration is successful. Required for all requests.
timestamptimestamp1610000000This is to indicate the timestamp of the request. Required for all requests. Expires in 5 minutes.
access_tokenstringc09222e3fc40ffb25fc947f738b1abf1The token for API access, using to identify your permission to the api. Valid for multiple use and expires in 4 hours.
shop_idint600000Shopee's unique identifier for a shop. Required param for most APIs.
signstringe318d3e932719916a9f9ebb57e2011961bd47abfa54a36e040d050d8931596e2Signature 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&timestamp=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&timestamp=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&timestamp=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

ErrorDescriptionSolution
error_networkInner http call failed
error_dataparse data failed
error_datadata not exist
error_paramparameter invalid
error_paramThe information you queried is not found.
error_paramWrong parameters, detail: {msg}.
error_serverSomething wrong. Please try later.
error_shopshopid is invalid
error_paramrequest not from gateway
error_item_not_belong_shopItem not belong to shop.
error_wms_shop_block_upate_stockWarehouse shop can't update stock.
error_authcnsc shop not upgraded, can not edit item.
error_item_not_foundItem_id is not found.
error_param_shop_id_not_foundShop_id is not found.
error_paramParameter is not match the constraints, {{.error_info}}.
error_paramRepeat model_id.
error_paramWrong model_id.
error_busi_update_stock_failedUpdate stock failed, please check failure_list for detailed reason
error_serverThe current item belong to the full FBS shop, so normal stock must be equal to 0
error_innerOur system is taking some time to respond, please try later.
error_innerSystem error, please try again later or contact the OpenAPI support team.
error_item_not_foundProduct not found
error_innerUpdate item failed {{.error_info}}
error_innerUpdate item failed {{.error_info}}
error_innerSystem error, please try again later or contact the OpenAPI support team.
error_innerSystem error, please try again later or contact the OpenAPI support team.
error_authThe current item belong to the full FBS or B2C shop, so normal stock must be equal to 0
error_busi_cannot_edit_vskuCan not use OpenAPI to edit/create VSKU, please connect with your manager
error_authThe location_id input is not matched the shop's location_id(more/wrong). Please double check.
error_authLack of location_id, please double check.
error_authPlease wait for the holiday mode set then to edit item. Please try later.
error_authTotal stock must be more than reserved stock.
error_param{{.error_info}}
error_authYour shop can not use model level dts
error_authYou do not have right to use seller location_id, please only fill seller_stock filed.
error.paramCan not update item with stock less than reserved stock
error_innerInvalid stock location ID
error_paramCan 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_paramCan not update item with stock less than reserve stock
error_busiThe merchant/shop has multi warehouse, please input location id
error_authStock should be larger than reserved stock.
error_paramInvalid parameter for product.
error_system_busyOur system is taking some time to respond, please try later.
error_seller_under_penaltyThe shop is under penalty.
error_nil_shopid_or_itemidQuery information failed.
error_item_uneditableCan't edit this item. item status can not support editing.
error_perm_non_adminDon't have permission.
error_paramCan 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_promotionNormal_stock cannot be edited when item is under promotion.
error_cannt_edit_stock_in_promotionNormal_stock cannot be edited when item is under promotion.
error_serverInteral error, please contact openapi team.
error_holiday_mode_change_stockCannot change stock in holiday mode.
error_promotion_cantnot_update_stockCannot change stock when item is under promotion.
error_in_item_promotion_nomodel_to_modelsCan't to edit item stock directly while item has models.
error_model_update_stock_model_in_promotionModel stock cannot be editted when item/model is promotion.
error_edit_item_stock_for_item_has_modelCan't to edit item stock directly while item has models.
#

§17 Common errors

Common errors

ErrorDescriptionSolution
error_authpartner_id is invalid
error_authThe App is deleted, and you'll be unable to make any API call.
error_authApp 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_paramThere is no partner_id in query.
error_paramInvalid partner_id.
error_paramno timestamp
error_paramInvalid timestamp
error_paramThere is no sign in query.
error_signWrong sign.
invalid_partner_idInvalid partner_id, please have a check.
error_authNo permission to current api.
error_api_call_restrictedThe 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_suspendedThe API is offline. Please call v2 API instead.
error_limitThe 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_limitToo many requests. You have reached the rate limit. Please try again later.
source_ip_undeclaredRequest Source IP ({ip}) is undeclared. Please declare all your IP addresses in the Shopee Open Platform Console > App list > IP Address Whitelist
error_paramPermission denied. This API is currently offline or the request path is incorrect.
error_paramPartner_id is invalid, should be an integer between 0 and 4294967295.
error_paramno timestamp.
error_paramTimestamp is invalid, should be an integer between 0 and 4294967295.
error_paramTimestamp is expired.
error_partner_key_expiredYour 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_permissionThis app type has no permission to this API.
error_paramThere is no access_token in query.
error_authInvalid access_token.
error_authInvalid partner_id or shopid.
shop_no_linkedPartner and shop has no linked.
shop_bannedThe shop account has been banned. Permissions for shop authorization and API calls have been suspended until the shop account is restored.
invalid_acceess_tokenInvalid access_token, please have a check.
partner_shop_no_linkInvalid partner_id or shop_id, please have a check.
error_ashop_api_permissionThe shop is Affiliate shop has no permission to call this API.
error_kyc_authNo permission. Please inform the seller to complete the Seller Registration on Shopee Seller Center first, then this shop can call for this API.
error_authSystem error, please try again later.
error_paramThere is no shop_id in query.
error_paramshop_id is invalid, should be an integer between 0 and 4294967295.
#

§18 Update log

Update log

DateChange
2022-10-31offline the normal_stock fields
2022-06-13add reminder "Please use the seller_stock field instead, we will deprecate this field in the future."
#