1. SKU
API URL
post {HTTP(S)host} /api/{version}/sku
Category master data (tree / create / update / delete) is documented in Sku category. Request URL: /api/{version}/sku_category. Create/update SKU still attach categories by categoryName1 / categoryName2 / categoryName3. SKU property and SPU attribute APIs are in SKU property and SPU attribute.
1.1. Query sku List
1.1.1. SERVICE_TYPE
QUERY_SIMPLE_LIST_SKU
1.1.2. Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| page | Y | Number | 1 | Page number, default 1 |
| pageSize | Y | Number | 50 | Number of records per page. no more than 200; Default is 100 |
| categoryName1 | N | String | Level 1 product classification | |
| categoryName2 | N | String | Secondary product categories | |
| categoryName3 | N | String | Three levels of product classification | |
| updateTimeFrom | N | String | 2022-09-26 | Update start time |
| updateTimeTo | N | String | 2022-09-26 | Update end time |
| skus | N | List <String> |
["123","456"] | sku code |
| titles | N | List <String> |
["The title of the product "] | The title of the product |
| skuCustomFieldValueSOList | N | List<SkuCustomFieldValueSO> | Custom Field Search criteria |
SkuCustomFieldValueSO(Custom Field Search)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| customFieldId | Y | Long | 3 | SERVICE_TYPE=CUSTOMER_FIELD_QUERY return id |
| value | N | String | “张三” | Custom Field value: STRING,SELECT。 |
| from | N | String | "1970/01/01" | Range query left interval :NUMBER,DATE。 |
| to | N | String | "1971/01/01" | The range query is the right interval : NUMBER,DATE。 |
1.1.3. Reponse
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | “DATA_INPUT_ERROR” | Error Code |
| errorMsg | Y | String | “The input of Params is incorrect” | Business Error Messages |
| state | Y | String | success | Response State |
| total | Y | Number | 100 | Total num |
| result | Y | List<Sku> | For product list information, please check the table below for details |
Sku
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | sku , up to 255 characters |
| title | Y | String | “abc” | The title of the product, up to 255 characters |
| barcode | N | String | Product barcode, up to 255 characters | |
| type | Y | String | “SINGLE” | Sku Type |
| isAssembly | N | Int | 0 or 1 | is assembly 1:yes 0:no |
| picUrl | N | String | Image address, up to 255 characters | |
| saleStatus | N | String | Sales status, up to 50 characters | |
| weight | Y | Decimal | gross weight | |
| netWeight | Y | Decimal | net weight | |
| weightUnit | Y | String | Units of weight | |
| abbrTitle | N | String | Abbreviation, up to 255 characters | |
| brand | N | String | Product brand, up to 50 characters | |
| unit | N | String | Commodity unit, maximum 128 characters | |
| color | N | String | Color, up to 255 characters | |
| size | N | String | Size, up to 255 characters | |
| length | Y | Decimal | length | |
| width | Y | Decimal | width | |
| height | Y | Decimal | height | |
| dimensionUnit | Y | String | Units of length | |
| itemPackage | N | Number | Package quantity | |
| description | N | String | Product description, maximum 2048 characters | |
| descriptionEn | N | String | Product descriptions are in English, with a maximum of 2048 characters | |
| functionDescription | N | String | Performance description, up to 2048 characters | |
| enable | Y | Number | Item status (0: disabled; 1: Valid) | |
| categoryName1 | N | String | Level 1 commodity classification | |
| categoryName2 | N | String | Secondary product categories | |
| categoryName3 | N | String | Three levels of product classification | |
| singleBoxCode | N | String | Single-box barcode | |
| singleItemVolume | N | Decimal | The volume of the single item | |
| cartonVolumeUnit | N | String | Volume units | |
| customProp1 | N | String | Custom field 1 | |
| customProp2 | N | String | Custom field 2 | |
| customProp3 | N | String | Custom field 3 | |
| price | N | Decimal | Default selling price | |
| remarkName | N | String | Description | |
| singleSkuList | N | List <SubSkuDTO> |
In the case of a combination, the sub-product information is returned | |
| parts | N | List <SubSkuDTO> |
Assembled product component information: 1. sku: component SKU code 2. quantity: component quantity |
|
| skuCustomFieldValueVOList | N | SkuCustomFieldValueVO | Custom Field info | |
| packingRate | N | Number | Number of single boxes | |
| purchaseCost | N | Decimal | Purchase cost | |
| purchaseCostUnit | N | String | Purchase cost currency | |
| skuSupplierList | N | List <SkuSupplierDTO> |
Supplier | |
| isRelatedSingleCost | N | Boolean | Whether to associate the purchase cost of single items | |
| developerUserNameList | N | List <String> |
Developer names | |
| isIssueInvoice | N | Int | Invoice Required | |
| ncm | N | String | NCM | |
| taxGoodsName | N | String | tax goods name | |
| cest | N | String | CEST | |
| placeOrigin | N | String | Country of Origin |
SubSkuDTO(Sub-product information)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | sku , up to 255 characters |
| quantity | Y | Integer | 1 | quantity |
SkuCustomFieldValueVO(Custom Field inf)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| tableName | Y | String | SYS_ITEM | SYS_ITEM: System sku Custom Field ; SYS_ORDER: Order Custom Field ; SYS_ODO: Outbound order Custom Field ; SYS_ASN: Inbound order Custom Field 。 |
| columType | Y | String | NUMBER | Filter for different fill types Custom Field: NUMBER,DATE,STRING,SELECT。 |
| columName | Y | String | Date of manufacture | The name of the field defined by the user |
| defaultValue | N | String | 1970/01/01 | Custom Field Default value |
| candidateValue | N | String | ["1970/01/01","1970/01/02"] | Candidate value for the drop-down box |
| remark | N | String | The shelf date is distinguished from the date of manufacture | Description |
| required | N | Integer | 1 | Whether to query only the required fields 1:true;0:false |
| isQuery | N | Integer | 1 | Whether to query only the columns that support the query 1:true;0:false |
| isShow | N | Integer | 1 | Specifies whether to query only the columns that support column configurations 1:true;0:false |
SkuSupplierDTO(Supplier information)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| name | Y | String | Supplier name | |
| isDefault | Y | Boolean | Whether default supplier | |
| purchaserList | Y | List <String> |
Purchaser, is username not name | |
| deliveryCycle | Y | Number | Delivery Date, day | |
| purchasePrice | N | Decimal | Purchase price, two digits after the decimal point are significant, and round up or down | |
| purchasePriceUnit | N | String | Purchase price currency(CNY,USD,CAD,GBP, EUR,JRY,etc) | |
| minimumPurchaseQuantity | N | Number | Minimum purchase quantity, which should be a positive integer | |
| purchaseTaxRate | N | Decimal | Purchase tax rate, unit: % | |
| drawbackRate | N | Decimal | Tax rebate rate, unit: % | |
| purchaseUrl | N | String | Purchase url |
Request example:
curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--form 'appId="TEST"' \
--form 'serviceType="QUERY_SIMPLE_LIST_SKU"' \
--form 'bizParam="{
\"page\":1,
\"pageSize\":1
}"' \
--form 'timestamp="1731742317"' \
--form 'sign="a9837b4485a8e427f584933267dc4ea4"'
Response example:
{
"state": "success",
"errorCode": "",
"errorMsg": "",
"bizContent": "{\"notSuccess\":false,\"result\":[{\"cartonVolumeUnit\":\"cm3\",\"ccPriceUnit\":\"USD\",\"customsDeclarationPriceUnit\":\"USD\",\"dangerousTransportGoodsType\":\"NONE\",\"dimensionUnit\":\"cm\",\"enable\":1,\"exportTax\":0.0,\"height\":33.3,\"isDeleted\":0,\"length\":33.3,\"needQualityInspection\":false,\"netWeight\":33.0,\"picUrl\":\"https://test-logo.pomogo.co/STORE/1902244893482377216/default/ced190dda0e74aa0ba25879dffb8b9bc.png\",\"price\":0.0000,\"priceUnit\":\"USD\",\"sku\":\"3WkC2QzAnXPTsGO4vCNUgm\",\"skuCustomFieldValueVOList\":[{\"candidateValue\":[],\"columCode\":1,\"columName\":\"商品有效期\",\"columType\":\"DATE\",\"customFieldId\":17,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":17,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":2,\"columName\":\"商品产地\",\"columType\":\"STRING\",\"customFieldId\":16,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":16,\"isQuery\":1,\"isShow\":1,\"required\":0},{\"candidateValue\":[\"1\",\"2\",\"3\",\"123\"],\"columCode\":3,\"columName\":\"测试单选栏位\",\"columType\":\"SELECT\",\"customFieldId\":47,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":47,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":5,\"columName\":\"货值\",\"columType\":\"DATE\",\"customFieldId\":26,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"id\":26,\"isQuery\":0,\"isShow\":1,\"required\":0},{\"candidateValue\":[],\"columCode\":6,\"columName\":\"产品编码\",\"columType\":\"STRING\",\"customFieldId\":33,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":33,\"isQuery\":1,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":7,\"columName\":\"123\",\"columType\":\"STRING\",\"customFieldId\":40,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":40,\"isQuery\":1,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":10,\"columName\":\"地区账套\",\"columType\":\"STRING\",\"customFieldId\":27,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":27,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":11,\"columName\":\"单箱条码\",\"columType\":\"STRING\",\"customFieldId\":28,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":28,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":12,\"columName\":\"规格型号\",\"columType\":\"STRING\",\"customFieldId\":29,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":29,\"isQuery\":0,\"isShow\":0,\"required\":0}],\"title\":\"yhx母婴商品测试001自营 33\",\"type\":\"SINGLE\",\"weight\":33.0,\"weightUnit\":\"KG\",\"width\":33.3}],\"state\":\"success\",\"total\":3960}",
"requestId": "afac1414-8397-4657-bd57-ed2c90bdc9b7"
}
1.2. Create sku
1.2.1. SERVICE_TYPE
INSERT_SKU_INFO
1.2.2. Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | sku , up to 255 characters |
| title | Y | String | “abc” | The title of the product , up to 255 characters |
| barcode | N | String | Product barcode, up to 255 characters | |
| type | Y | String | “SINGLE” | Sku Type |
| isAssembly | N | Int | 0 or 1 | is assembly 1:yes,Need to fill in the "parts" field 0:no |
| picUrl | N | String | Image address, up to 255 characters,It is recommended to use picUrlList | |
| picUrlList | N | List<String> |
Multiple image addresses | |
| saleStatus | N | String | Sales status, up to 50 characters | |
| weight | Y | Decimal | gross weight | |
| netWeight | Y | Decimal | net weight | |
| weightUnit | Y | String | Units of weight | |
| abbrTitle | N | String | Abbreviation, up to 255 characters | |
| brand | N | String | Product brand, up to 50 characters | |
| unit | N | String | Commodity unit, maximum 128 characters | |
| color | N | String | Color, up to 255 characters | |
| size | N | String | Size, up to 255 characters | |
| length | Y | Decimal | length | |
| width | Y | Decimal | width | |
| height | Y | Decimal | height | |
| dimensionUnit | Y | String | Units of length | |
| itemPackage | N | Number | Package quantity | |
| description | N | String | Product description, maximum 2048 characters | |
| descriptionEn | N | String | Product descriptions are in English, with a maximum of 2048 characters | |
| functionDescription | N | String | Performance description, up to 2048 characters | |
| enable | Y | Number | Item status (0: disabled; 1: Valid) | |
| serialEnable | N | Number | 0 | Whether to enable serial number management (0: No; 1: Yes) |
| packingRate | N | Number | Packing rate ,If it is not filled, the size of the outer box and the outer box will not be saved gross weight 、Outer box net weight | |
| cartonLength | N | Decimal | The outer box length, This field is mandatory when entering the packing rate. | |
| cartonWidth | N | Decimal | The outer box width, This field is mandatory when entering the packing rate. | |
| cartonHeight | N | Decimal | The outer box height, This field is mandatory when entering the packing rate. | |
| cartonWeight | N | Decimal | The outer box gross weight, This field is mandatory when entering the packing rate. | |
| cartonNetWeight | N | Decimal | The outer box net weight, This field is mandatory when entering the packing rate. | |
| cartonDimensionUnit | N | String | The outer box Dimension units(cm; m), This field is mandatory when entering the packing rate. | |
| cartonWeightUnit | N | String | The outer box Units of weight(KG; G), This field is mandatory when entering the packing rate. | |
| chineseCustomsDeclarationName | N | String | Chinese customs declaration name | |
| englishCustomsDeclarationName | N | String | English customs declaration name | |
| cdPriceMethod | N | String | How the customs declaration price is calculated(RATE:proportion; CONSTANT:fixed) | |
| cdPriceRate | N | Decimal | Proportion of customs declaration price | |
| cdPriceMaximum | N | Decimal | The maximum value of the customs declaration price | |
| customsDeclarationPrice | N | Decimal | Customs price | |
| customsDeclarationPriceUnit | N | String | Unit of customs declaration price(CNY; USD; CAD; GBP; EUR; JRY) | |
| customsCode | N | String | Officers code | |
| exportTax | N | Decimal | Export tax rates | |
| declaration | N | String | Instructions for declaration | |
| dangerousTransportGoodsType | N | String | Type of dangerous goods(NONE, LIQUID, POWDER, CONTAIN_ELECTRIC, ELECTRIC) | |
| batteryType | N | Integer | Battery type (0: uncharged; 1: Supporting lithium-ion battery; 2: Built-in lithium-ion battery; 3: Supporting lithium metal battery; 4: Built-in lithium metal battery; 5: Dry battery) | |
| ccPriceMethod | N | String | How the customs clearance price is calculated(RATE:proportion; CONSTANT:fixed) | |
| ccPriceRate | N | Decimal | Percentage of customs clearance price | |
| ccPriceMaximum | N | Decimal | The maximum value of the customs clearance price | |
| ccPrice | N | Decimal | Customs clearance price | |
| ccPriceUnit | N | String | The currency of the customs clearance price(CNY; USD; CAD; GBP; EUR; JRY) | |
| needQualityInspection | N | Boolean | Whether quality inspection is required | |
| price | N | Decimal | Default selling price | |
| priceUnit | N | String | Default selling price unit (uppercase 3 digit code) | |
| asin | N | String | ASIN | |
| customProp1 | N | String | Custom attribute 1 | |
| customProp2 | N | String | Custom Attribute 2 | |
| customProp3 | N | String | Custom attribute 3 | |
| categoryName1 | N | String | Level 1 commodity classification | |
| categoryName2 | N | String | Secondary product categories | |
| categoryName3 | N | String | Three levels of product classification | |
| remarkName | N | String | Description | |
| singleSkuList | N | List <SubSkuDTO> |
Sub-product information | |
| parts | N | List <SubSkuDTO> |
Assembled product component information requires the following fields to be filled: 1. sku: component SKU code 2. quantity: component quantity |
|
| singleBoxCode | N | String | Single-box barcode | |
| singleItemVolume | N | Decimal | The volume of the single item | |
| skuCustomFieldValueVOList | N | List <SkuCustomFieldValueVO> |
Custom Field info | |
| purchaseCost | N | Decimal | Purchase cost | |
| purchaseCostUnit | N | String | Purchase cost currency | |
| skuSupplierList | N | List <SkuSupplierDTO> |
Supplier | |
| isRelatedSingleCost | N | Boolean | Whether to associate the purchase cost of single items. This only takes effect for combined items | |
| warehouseNameList | N | List |
["warehouseName1"] | When filling in this field and type=SINGLE, automatically create warehouse products and asynchronously distribute them to the warehouse |
| createAllWarehouseItems | N | Boolean | false | The default is false. When type=SINGLE, all three-party warehouse goods are automatically created and distributed to the warehouse asynchronously; Choose from warehouseNameList |
| developerUserNameList | N | List |
Developer account | |
| isIssueInvoice | N | Int | Invoice Required 1: Yes 2: No |
|
| ncm | N | String | NCM, required when isIssueInvoice=1 | |
| taxGoodsName | N | String | tax goods name, required when isIssueInvoice=1 | |
| cest | N | String | CEST,Optional, fill in when isIssueInvoice=1 | |
| placeOrigin | N | String | Country of Origin,Optional, fill in when isIssueInvoice=1 |
SubSkuDTO(Sub sku)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | Sub-product SKUs |
| quantity | Y | Number | 3 | The number of sub-products in the combination |
SkuCustomFieldValueVO(Custom Field )
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| customFieldId | Y | Long | 3 | SERVICE_TYPE=CUSTOMER_FIELD_QUERY return id |
| value | Y | String | “michael” | Custom Field value |
SkuSupplierDTO(Supplier information)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| name | Y | String | Supplier name | |
| isDefault | Y | Boolean | Whether default supplier | |
| purchaserList | Y | List <String> |
Purchaser, is username not name | |
| deliveryCycle | Y | Number | Delivery Date, day | |
| purchasePrice | N | Decimal | Purchase price, two digits after the decimal point are significant, and round up or down | |
| purchasePriceUnit | N | String | Purchase price currency(CNY,USD,CAD,GBP, EUR,JRY,etc) | |
| minimumPurchaseQuantity | N | Number | Minimum purchase quantity, which should be a positive integer | |
| purchaseTaxRate | N | Decimal | Purchase tax rate, unit: % | |
| drawbackRate | N | Decimal | Tax rebate rate, unit: % | |
| purchaseUrl | N | String | Purchase url |
1.2.3. Reponse
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | “DATA_INPUT_ERROR” | Error Code |
| errorMsg | Y | String | “The input of Params is incorrect” | Business Error Messages |
| state | Y | String | success | Response State |
Request example:
curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--form 'appId="TEST"' \
--form 'serviceType="INSERT_SKU_INFO"' \
--form 'bizParam="{
\"sku\":\"ckfsku\",
\"title\":\"ckfsku\",
\"type\":\"SINGLE\",
\"weight\":1,
\"netWeight\":1,
\"weightUnit\":\"KG\",
\"length\":1,
\"width\":1,
\"height\":1,
\"dimensionUnit\":\"cm\",
\"enable\":1,
\"serialEnable\":1,
\"shelfLife\":90,
}"' \
--form 'timestamp="1731742317"' \
--form 'sign="bb8a4a78ebd8b43d6bc71f81e83ae900"'
Response example:
{
"state": "success",
"errorCode": "",
"errorMsg": "",
"bizContent": "{\"notSuccess\":false,\"state\":\"success\"}",
"requestId": "223f998d-b0d6-43e4-95cb-5c691572417d"
}
1.3. Update sku
1.3.1. SERVICE_TYPE
UPDATE_SKU_INFO
1.3.2. Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | sku , up to 255 characters |
| title | Y | String | “abc” | The title of the product , up to 255 characters |
| barcode | N | String | Product barcode, up to 255 characters | |
| type | Y | String | “SINGLE” | Sku Type |
| isAssembly | N | Int | 0 or 1 | is assembly 1:yes,Need to fill in the "parts" field 0:no |
| picUrl | N | String | Image address, up to 255 characters,It is recommended to use picUrlList | |
| picUrlList | N | List<String> |
Multiple image addresses | |
| saleStatus | N | String | Sales status, up to 50 characters | |
| weight | Y | Decimal | gross weight | |
| netWeight | Y | Decimal | net weight | |
| weightUnit | Y | String | Units of weight | |
| abbrTitle | N | String | Abbreviation, up to 255 characters | |
| brand | N | String | Product brand, up to 50 characters | |
| unit | N | String | Commodity unit, maximum 128 characters | |
| color | N | String | Color, up to 255 characters | |
| size | N | String | Size, up to 255 characters | |
| length | Y | Decimal | length | |
| width | Y | Decimal | width | |
| height | Y | Decimal | height | |
| dimensionUnit | Y | String | Units of length | |
| itemPackage | N | Number | Package quantity | |
| description | N | String | Product description, maximum 2048 characters | |
| descriptionEn | N | String | Product descriptions are in English, with a maximum of 2048 characters | |
| functionDescription | N | String | Performance description, up to 2048 characters | |
| enable | Y | Number | Item status (0: disabled; 1: Valid) | |
| serialEnable | N | Number | 0 | Whether to enable serial number management (0: No; 1: Yes) |
| packingRate | N | Number | Packing rate ,If it is not filled, the size of the outer box and the outer box will not be saved gross weight 、Outer box net weight | |
| cartonLength | N | Decimal | The outer box length, This field is mandatory when entering the packing rate. | |
| cartonWidth | N | Decimal | The outer box width, This field is mandatory when entering the packing rate. | |
| cartonHeight | N | Decimal | The outer box height, This field is mandatory when entering the packing rate. | |
| cartonWeight | N | Decimal | The outer box gross weight, This field is mandatory when entering the packing rate. | |
| cartonNetWeight | N | Decimal | The outer box net weight, This field is mandatory when entering the packing rate. | |
| cartonDimensionUnit | N | String | The outer box Dimension units(cm; m), This field is mandatory when entering the packing rate. | |
| cartonWeightUnit | N | String | The outer box Units of weight(KG; G), This field is mandatory when entering the packing rate. | |
| chineseCustomsDeclarationName | N | String | Chinese customs declaration name | |
| englishCustomsDeclarationName | N | String | English customs declaration name | |
| cdPriceMethod | N | String | How the customs declaration price is calculated(RATE:proportion; CONSTANT:fixed) | |
| cdPriceRate | N | Decimal | Proportion of customs declaration price | |
| cdPriceMaximum | N | Decimal | The maximum value of the customs declaration price | |
| customsDeclarationPrice | N | Decimal | Customs price | |
| customsDeclarationPriceUnit | N | String | Unit of customs declaration price(CNY; USD; CAD; GBP; EUR; JRY) | |
| customsCode | N | String | Officers code | |
| exportTax | N | Decimal | Export tax rates | |
| declaration | N | String | Instructions for declaration | |
| dangerousTransportGoodsType | N | String | Type of dangerous goods(NONE, LIQUID, POWDER, CONTAIN_ELECTRIC, ELECTRIC) | |
| batteryType | N | Integer | Battery type (0: uncharged; 1: Supporting lithium-ion battery; 2: Built-in lithium-ion battery; 3: Supporting lithium metal battery; 4: Built-in lithium metal battery; 5: Dry battery) | |
| ccPriceMethod | N | String | How the customs clearance price is calculated(RATE:proportion; CONSTANT:fixed) | |
| ccPriceRate | N | Decimal | Percentage of customs clearance price | |
| ccPriceMaximum | N | Decimal | The maximum value of the customs clearance price | |
| ccPrice | N | Decimal | Customs clearance price | |
| ccPriceUnit | N | String | The currency of the customs clearance price(CNY; USD; CAD; GBP; EUR; JRY) | |
| needQualityInspection | N | Boolean | Whether quality inspection is required | |
| price | N | Decimal | Default selling price | |
| priceUnit | N | String | Default selling price unit (uppercase 3 digit code) | |
| asin | N | String | ASIN | |
| customProp1 | N | String | Custom attribute 1 | |
| customProp2 | N | String | Custom Attribute 2 | |
| customProp3 | N | String | Custom attribute 3 | |
| categoryName1 | N | String | Level 1 commodity classification | |
| categoryName2 | N | String | Secondary product categories | |
| categoryName3 | N | String | Three levels of product classification | |
| remarkName | N | String | Description | |
| singleSkuList | N | List <SubSkuDTO> |
Sub-product information | |
| parts | N | List <SubSkuDTO> |
Assembled product component information requires the following fields to be filled: 1. sku: component SKU code 2. quantity: component quantity |
|
| singleBoxCode | N | String | Single-box barcode | |
| singleItemVolume | N | Decimal | The volume of the single item | |
| skuCustomFieldValueVOList | N | List <SkuCustomFieldValueVO> |
Custom Field info | |
| purchaseCost | N | Decimal | Purchase cost | |
| purchaseCostUnit | N | String | Purchase cost currency | |
| skuSupplierList | N | List <SkuSupplierDTO> |
Supplier | |
| isRelatedSingleCost | N | Boolean | Whether to associate the purchase cost of single items. This only takes effect for combined items | |
| developerUserNameList | N | List |
Developer account | |
| isIssueInvoice | N | Int | Invoice Required 1: Yes 2: No |
|
| ncm | N | String | NCM, required when isIssueInvoice=1 | |
| taxGoodsName | N | String | tax goods name, required when isIssueInvoice=1 | |
| cest | N | String | CEST,Optional, fill in when isIssueInvoice=1 | |
| placeOrigin | N | String | Country of Origin,Optional, fill in when isIssueInvoice=1 |
SubSkuDTO(Sub-product information)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | Sub-product SKUs |
| quantity | Y | Number | 3 | The number of sub-products in the combination |
SkuCustomFieldValueVO(Custom Field )
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| customFieldId | Y | Long | 3 | SERVICE_TYPE=CUSTOMER_FIELD_QUERY return id |
| value | Y | String | “michael” | Custom Field value |
SkuSupplierDTO(Supplier information)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| name | Y | String | Supplier name | |
| isDefault | Y | Boolean | Whether default supplier | |
| purchaserList | Y | List <String> |
Purchaser, is username not name | |
| deliveryCycle | Y | Number | Delivery Date, day | |
| purchasePrice | N | Decimal | Purchase price, two digits after the decimal point are significant, and round up or down | |
| purchasePriceUnit | N | String | Purchase price currency(CNY,USD,CAD,GBP, EUR,JRY,etc) | |
| minimumPurchaseQuantity | N | Number | Minimum purchase quantity, which should be a positive integer | |
| purchaseTaxRate | N | Decimal | Purchase tax rate, unit: % | |
| drawbackRate | N | Decimal | Tax rebate rate, unit: % | |
| purchaseUrl | N | String | Purchase url |
1.3.3. Reponse
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | “DATA_INPUT_ERROR” | Error Code |
| errorMsg | Y | String | “The input of Params is incorrect” | Business Error Messages |
| state | Y | String | success | Response State |
Request example:
curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--form 'appId="TEST"' \
--form 'serviceType="UPDATE_SKU_INFO"' \
--form 'bizParam="{
\"sku\":\"ckfsku\",
\"title\":\"ckfsku\",
\"type\":\"SINGLE\",
\"weight\":1,
\"netWeight\":1,
\"weightUnit\":\"KG\",
\"length\":1,
\"width\":1,
\"height\":1,
\"dimensionUnit\":\"cm\",
\"enable\":1,
\"serialEnable\":1,
\"shelfLife\":90,
}"' \
--form 'timestamp="1731742317"' \
--form 'sign="f843a75cdb3cf14f403fa423108bc410"'
Response example:
{
"state": "success",
"errorCode": "",
"errorMsg": "",
"bizContent": "{\"notSuccess\":false,\"state\":\"success\"}",
"requestId": "223f998d-b0d6-43e4-95cb-5c691572417d"
}
1.4. Enables/deactivates the sku
1.4.1. SERVICE_TYPE
UPDATE_SKU_STATUS
1.4.2. Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | Y | String | “sku1” | The SKU that was entered when adding a product |
| enable | Y | Number | Item status (0: disabled; 1: Valid) |
1.4.3. Reponse
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | “DATA_INPUT_ERROR” | Error Code |
| errorMsg | Y | String | “The input of Params is incorrect” | Business Error Messages |
| state | Y | String | success | Response State |
1.5. QUERY_SYS_SKU
1.5.1. SERVICE_TYPE
QUERY_SYS_SKU_LIST_SKU
1.5.2. Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| platform | Y | String | “sku1” | AMAZON,ALIEXPRESS,EBAY,WALMART,WISH, LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL, TEMU, ... |
| shopName | Y | Number | shop-name | |
| skuExtDTOList | Y | List<SkuExtDTO> | Up to 5 at a time |
SkuExtDTO(SKU query criteria)
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| onlineSkuId | N | String | "online-sku-id" | Online SKU ID, Other(LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL...)user sku id |
| onlineSku | N | String | “online-sku-code” | Online skuCode,(AMAZON,ALIEXPRESS,EBAY,WALMART,WISH) use sku code |
1.5.3. Reponse
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| platform | Y | String | “sku1” | AMAZON,ALIEXPRESS,EBAY,WALMART,WISH, LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL, TEMU, ... |
| shopName | Y | Number | shop-name | |
| skuExtDTOList | Y | List<ReturnSkuExtDTO> |
ReturnSkuExtDTO
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| onlineSkuId | N | String | "online-sku-id" | OnlineSkuId,Other(LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL等) |
| onlineSku | N | String | “online-sku-code” | OnlineSkuCode,AMAZON,ALIEXPRESS,EBAY,WALMART,WISH |
| onlineSpuId | N | String | OnlinespuId, if there is | |
| onlineSpu | N | String | OnlinespuCode, if there is | |
| skuId | Y | String | Sys-SkuId | |
| sku | Y | String | Sys-skuCode | |
| skuName | Y | String | Sys-SkuName | |
| singleSkuList | N | List<SubSkuDTO> | If the system product is a combination product, return the sub product information |
SubSkuDTO
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| sku | N | String | subskuCode | |
| skuName | N | String | subskuName | |
| quantity | N | String | subQuantity |
1.6. Sku category
API URL
post {HTTP(S)host} /api/{version}/sku_category
Same rules as ERP page Product - Category (/biz/sku_category/): max three levels; name unique under the same parent; update cannot change parent; delete fails if used by system SKU or supplier, and cascades to children. Update/delete require id and version.
Open platform authorization: None of the four APIs are auto-granted. Enable QUERY_SKU_CATEGORY_LIST / CREATE_SKU_CATEGORY / UPDATE_SKU_CATEGORY / DELETE_SKU_CATEGORY for the app on the open platform, or the call returns SERVICE_TYPE_NOT_ALLOW.
Create/update SKU still attach categories by categoryName1 / categoryName2 / categoryName3.
1.6.1. Query sku category tree
SERVICE_TYPE
QUERY_SKU_CATEGORY_LIST
Request
Same as ERP page /biz/sku_category/get_all: full category tree (level-1 nodes with childList). Not a paged query. Do not send page / pageSize. No business filters and no row cap. bizParam may be empty or {}.
Response
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | ||
| errorMsg | Y | String | ||
| state | Y | String | success | |
| result | Y | List<SkuCategory> | Level-1 list; children in childList |
SkuCategory
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| id | Y | Long | 1001 | Category primary key |
| name | Y | String | Fruit (A) | Name |
| hsCode | N | String | 3 | HS code |
| level | Y | Number | 1 | 1/2/3 |
| parentId | Y | Long | 0 | Parent id; 0 for level 1 |
| parentName | N | String | Parent name | |
| version | Y | Long | 0 | Optimistic lock; required on update/delete |
| childList | N | List<SkuCategory> | Children |
1.6.2. Create sku category
SERVICE_TYPE
CREATE_SKU_CATEGORY
Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| name | Y | String | Fruit | Category name |
| parentId | Y | Long | 0 | Parent id; 0 for level 1 |
| hsCode | N | String | 0801 | HS code |
Response
On success result.id is the new category id. Errors match the page, e.g. SKU_CATEGORY_NAME_EXISTS, SKU_CATEGORY_PARENT_NOT_EXISTS, DATA_INPUT_ERROR (more than three levels).
1.6.3. Update sku category
SERVICE_TYPE
UPDATE_SKU_CATEGORY
Request
| Params | Require | DataType | Description |
|---|---|---|---|
| id | Y | Long | Category primary key |
| version | Y | Long | Optimistic lock |
| name | N | String | Category name |
| hsCode | N | String | HS code |
Cannot change parentId. Version mismatch returns VERSION_DIFF.
1.6.4. Delete sku category
SERVICE_TYPE
DELETE_SKU_CATEGORY
Request
| Params | Require | DataType | Description |
|---|---|---|---|
| id | Y | Long | Category primary key |
| version | Y | Long | Optimistic lock |
Used by SKU: CATEGORY_USED_BY_SKU. Used by supplier: CATEGORY_USED_BY_SUPPLIER. Children are deleted together.
1.7. SKU property
API URL
post {HTTP(S)host}/api/{version}/skuProperty
SKU properties include unit, brand, sales status, and custom classification. This section does not manage SPU attributes. Text limits: name/nameEN max 50, remark max 128.
1.7.1. Create SKU property
SERVICE_TYPE
CREATE_SKU_PROPERTY
Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| type | Y | String | BRAND | UNIT, BRAND, SALE_STATUS, CUSTOM. SPU is not accepted |
| name | Y | String | Nike | Unique within the same type, max 50 |
| nameEN | N | String | Nike | English name, max 50 |
| sequence | N | Number | 0 | Sort value, 0-100, default 0 |
| remark | N | String | note | Max 128 |
Response
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| errorCode | Y | String | Error code | |
| errorMsg | Y | String | Error message | |
| state | Y | String | success | Result |
| result.id | Y | Number | 88 | Created id |
Request example:
curl --location --request POST 'https://gerp-test1.800best.com/api/v1/skuProperty' \
--form 'appId="TEST"' \
--form 'serviceType="CREATE_SKU_PROPERTY"' \
--form 'bizParam="{\"type\":\"BRAND\",\"name\":\"Nike\"}"' \
--form 'timestamp="1756865700001"' \
--form 'sign="sign"'
Response example:
{
"state": "success",
"errorCode": "",
"errorMsg": "",
"bizContent": "{\"notSuccess\":false,\"result\":{\"id\":88,\"name\":\"Nike\",\"sequence\":0,\"type\":\"BRAND\"},\"state\":\"success\"}"
}
1.7.2. Update SKU property
SERVICE_TYPE
UPDATE_SKU_PROPERTY
Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| id | Y | Number | 88 | Property id |
| type | Y | String | BRAND | Must match the stored type |
| name | Y | String | Nike | Unique within the same type |
| nameEN | N | String | Nike | Unchanged when omitted |
| sequence | N | Number | 10 | Unchanged when omitted |
| remark | N | String | Unchanged when omitted |
On success, the decoded bizContent is:
{"notSuccess":false,"state":"success"}
1.7.3. Delete SKU property
SERVICE_TYPE
DELETE_SKU_PROPERTY
Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| id | Y | Number | 88 | Property id |
| type | Y | String | BRAND | Must match the stored type |
The success response is the same as update. A missing target or type mismatch returns a business error.
1.7.4. Query SKU property list
SERVICE_TYPE
QUERY_SKU_PROPERTY_LIST
Request
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| page | N | Number | 1 | Page number, default 1, must be >= 1 |
| pageSize | N | Number | 20 | Default 20, range 1-200 |
| type | Y | String | BRAND | UNIT, BRAND, SALE_STATUS, CUSTOM |
| name | N | String | Nike | Exact match |
Response
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| total | Y | Number | 1 | Total count |
| result | Y | List<SkuProperty> | Records |
SkuProperty
| Params | Require | DataType | Sample | Description |
|---|---|---|---|---|
| id | Y | Number | 88 | Id |
| type | Y | String | BRAND | Type |
| name | Y | String | Nike | Name |
| nameEN | N | String | Nike | English name |
| sequence | Y | Number | 0 | Sort |
| remark | N | String | Remark |
An empty page returns result=[] and total=0.
Page response example:
{
"state":"success",
"errorCode":"",
"errorMsg":"",
"bizContent":"{\"notSuccess\":false,\"result\":[{\"id\":88,\"type\":\"BRAND\",\"name\":\"Nike\",\"sequence\":0}],\"state\":\"success\",\"total\":1}"
}
1.7.5. Error response
Validation, duplicate-name, missing-target, and type-mismatch errors are returned inside bizContent. See Error Code.
{
"state":"success",
"errorCode":"",
"errorMsg":"",
"bizContent":"{\"errorCode\":\"sku.property.type.invalid\",\"errorMsg\":\"Invalid sku property type\",\"notSuccess\":true,\"state\":\"failure\"}"
}
1.8. SPU attribute
API URL
post {HTTP(S) address}/api/{version}/spuAttribute
Manage SPU attribute names and values. Names and values are trimmed, max 50 characters; at most 300 values. An attribute referenced by an SPU cannot be deleted; a referenced name or value cannot be removed or renamed.
1.8.1. Create SPU attribute
SERVICE_TYPE
CREATE_SPU_ATTRIBUTE
Request
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| name | Y | String | Color | Attribute name must be unique, max 50 |
| values | Y | List<String> | ["Red","Blue"] | Full list, each max 50, at most 300 |
Response
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| errorCode | Y | String | Error code | |
| errorMsg | Y | String | Error message | |
| state | Y | String | success | Result |
| result.id | Y | Number | 88 | New id |
Response example:
{
"state":"success",
"errorCode":"",
"errorMsg":"",
"bizContent":"{\"notSuccess\":false,\"result\":{\"id\":88,\"name\":\"Color\",\"values\":[\"Red\",\"Blue\"]},\"state\":\"success\"}"
}
1.8.2. Update SPU attribute
SERVICE_TYPE
UPDATE_SPU_ATTRIBUTE
Request
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| id | Y | Number | 88 | Missing id does not create |
| name | Y | String | Color | Cannot rename when referenced |
| values | Y | List<String> | ["Red","Blue"] | Full target list; referenced values cannot be dropped |
On success, decoded bizContent is {"notSuccess":false,"state":"success"}.
1.8.3. Delete SPU attribute
SERVICE_TYPE
DELETE_SPU_ATTRIBUTE
Request
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| id | Y | Number | 88 | Fails when referenced |
The success response is the same as update. A referenced attribute returns a business error and is not deleted.
1.8.4. Get SPU attribute
SERVICE_TYPE
GET_SPU_ATTRIBUTE
Request
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| id | Y | Number | 88 | Attribute id |
Detail returns id, name, values, and attributeValues with related.
Each attributeValues item contains name, value, and related; related=true means that the value is referenced by an SPU.
1.8.5. Query SPU attribute list
SERVICE_TYPE
QUERY_SPU_ATTRIBUTE_LIST
Request
| Field | Required | Type | Example | Notes |
|---|---|---|---|---|
| page | N | Number | 1 | Default 1, >= 1 |
| pageSize | N | Number | 20 | Default 20, 1-200 |
| name | N | String | Color | Exact match |
Empty result is result=[] and total=0. List does not include per-value reference flags; use detail.
A successful list response contains result and total inside bizContent; each result item contains id, name, and values. Failures use the same envelope as SKU property errors.