# 05. Shopping
# About platform logistics order process, please refer to the Documentation
# 1 Order
# 1.1 Create Order V2(POST)
- Create order
payType=1or omitted: page payment (default), andcjPayUrlwill be returnedpayType=2: balance payment, and the order will continue through add-to-cart, order confirmation, and balance deductionpayType=3: create the order only without initiating payment, add-to-cart, or order confirmation- Add param platformToken to header, The way to obtain platformToken is the same as the way to obtain CJ Access Token. If not required, the value can be empty. (2025-01-08 update)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/createOrderV2
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/createOrderV2' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'platformToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderNumber": "1234",
"shippingZip": "123",
"shippingCountry": "123",
"shippingCountryCode": "US",
"shippingProvince": "123",
"shippingCity": "132",
"shippingCounty": "",
"shippingPhone": "111",
"shippingCustomerName": "123213",
"shippingAddress": "123213",
"shippingAddress2": "123213",
"taxId": "123",
"remark": "note",
"email": "",
"consigneeID": "",
"payType": "",
"shopAmount": "",
"logisticName": "PostNL",
"fromCountryCode": "CN",
"houseNumber": "123",
"iossType": "",
"platform": "shopify",
"iossNumber": "",
"shopLogisticsType": 1,
"storageId": "201e67f6ba4644c0a36d63bf4989dd70",
"orderFlow": 1,
"products": [
{
"vid": "92511400-C758-4474-93CA-66D442F5F787",
"quantity": 1,
"storeLineItemId": "test-lineItemId-1111"
}
]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderNumber | A unique identifier for the order from CJ partner. | string | Y | 50 | |
| shippingZip | Zip of destination | string | N | 20 | |
| shippingCountryCode | Country code of destination | string | Y | 20 | Referer:Country Code, Please use The two-letter code |
| shippingCountry | Country of destination | string | Y | 50 | |
| shippingProvince | Province of destination | string | Y | 50 | |
| shippingCity | City of destination | string | Y | 50 | |
| shippingCounty | County of destination | String | N | 50 | |
| shippingPhone | Phone number of destination | string | N | 20 | |
| shippingCustomerName | Customer name | string | Y | 50 | |
| shippingAddress | Shipping address of destination | string | Y | 200 | |
| shippingAddress2 | Shipping address 2 of destination | string | N | 200 | |
| houseNumber | House Number | String | N | 20 | |
| String | N | 50 | |||
| taxId | Tax Id | string | N | 20 | |
| remark | Order remark | string | N | 500 | |
| consigneeID | consignee id | string | N | 20 | |
| payType | Payment type | int | N | 10 | Options: 1=Page payment (default, returns cjPayUrl), 2=Balance payment, 3=Create order only without payment |
| isSandbox | Is sandbox order | integer | N | 1 | Default 0. 0-normal order; 1-sandbox order. Regardless of payType value, sandbox orders will automatically use fake/simulated payment and will not generate real charges, real logistics, or fulfillment |
| shopAmount | Order Amount | BigDecimal | N | 20 | |
| logisticName | logistic name | string | Y | 50 | Referer Freight Calculation |
| fromCountryCode | Country code of the shipment from | string | Y | 20 | Referer:Country Code, Please use The two-letter code |
| platform | Platform, Default: Api | String | N | 20 | If this parameter is not passed, the default platform Api will be used. Referer Platforms |
| iossType | IOSS Type | int | N | 20 | IOSS Type, Options: 1=No IOSS(The recipient will be required to pay VAT and other related fees when the order is declared without IOSS.), 2=Declare with my own IOSS(Please ensure that the IOSS provided is valid and is linked to the destination country in the EU. The declaration will proceed without IOSS if the destination country is not linked to a correct IOSS.), 3=Declare with CJ’s IOSS(Declaration with your store order amount is recommended. You will be responsible for the relevant risks if you choose to declare with CJ order amount. CJ’s IOSS is not applicable for orders valued above €150, and the recipient will be required to pay VAT.), Config Page (opens new window) |
| shopLogisticsType | Shipping mode, default value: 2 | int | N | 20 | Shipping type, Options: 1=Platform Logistics (storageId specified by you, required. When choosing platform logistics mode, the warehouse will start operation after uploading the shipping label. Please upload the shipping label in a timely manner, Upload Shipping and Shipping Label), 2=Seller Logistics (storageId will not be used), 3=Platform Logistics (storageId specified by CJ). If no requirement, please use 2=merchant logistics. Launched on 2025-11-18 |
| storageId | CJ warehouse ID | String | N | 40 | This value is valid when shopLogisticsType=1, Launched on 2025-11-18 |
| iossNumber | IOSS Number | String | N | 10 | If iossType=3, the value is fixed to CJ-IOSS |
| storeName | Store name | String | N | 50 | If provided, the system will validate that the store name matches an API store in CJ system. If not provided, the order will be assigned to the default API store |
| storeOrderTime | Store order time | Long | N | 20 | Timestamp in seconds. Represents the actual order creation time in the customer's store. If the time is later than the current system time, an error will be returned |
| orderFlow | Order flow type, default value: 1 | int | N | 10 | Order flow type. Options: 1=Manual order flow (create order using CJ variants, default), 2=Store order flow (supports creating orders using store SKUs, requires Store Product linked to CJ products in My CJ). Launched on 2025-05-19 |
| products | List | Y | 20 | ||
| - vid | CJ variant id | string | N | 50 | vid and sku cannot both be null. When vid is missing, sku will be used to query the CJ variant. If both are provided, they must refer to the same variant and will be validated accordingly. If the customer account has been granted permission to submit non-CJ SKUs, then the vid field is required |
| - sku | CJ variant sku | string | N | 50 | vid and sku cannot both be null. When vid is missing, sku will be used to query the CJ variant. If both are provided, they must refer to the same variant and will be validated accordingly. |
| - quantity | quantity | int | Y | 50 | |
| - unitPrice | item pricing | BigDecimal | N | 20 | |
| - storeLineItemId | lineItemId of your store order | string | N | 125 | |
| - podProperties | POD customization information | String | N | 500 | podProperties is a string,1:Pod2.0 Example: [{"areaName":"LogoArea","links":["https://cc-west-usa.oss-us-west-1.aliyuncs.com/9f0b99e6-17ec-4dcd-8916-fc5d644be993_LOGO_NavyBlue.png"],"type":"1"}] 2:Pod3.0 Example:[{"links": ["Production image URL (multiple allowed)"],"effectImgs": ["Rendering image URL (exactly one required)"]}] |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"orderNumber": "",
"orderId": "123434",
"shipmentOrderId": "",
"iossAmount": "",
"iossTaxHandlingFee": "",
"postageAmount": "",
"productAmount": "",
"productOriginalAmount": "",
"productDiscountAmount": "",
"postageDiscountAmount": "",
"postageOriginalAmount": "",
"totalDiscountAmount": "",
"actualPayment": "",
"orderOriginalAmount": "",
"cjPayUrl": "",
"orderAmount": "",
"logisticsMiss": "",
"productInfoList": [
{
"storeLineItemId": "test-lineItemId-1111",
"lineItemId": "",
"variantId": "",
"isGroup": true,
"quantity":10,
"subOrderProducts": [
{
"lineItemId": "",
"variantId": "",
"quantity": 1
}
]
}
],
"orderStatus": "",
"interceptOrderReasons": [
{
"code": 1001,
"message": ""
}
]
},
"requestId": "9eddf3f5-bd3d-4fae-a4f2-028cbb90db97",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
data information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderId | CJ order id | string | 200 | If the provided product VID is not a CJ SKU, the order id will change, and thus the CJ order id will not be returned. You can monitor the webhook to obtain the latest CJ order id |
| orderNumber | orderNumber | string | 200 | |
| shipmentOrderId | shipment order id | string | 200 | |
| iossAmount | ioss amount | BigDecimal | (18,2) | Unit: $ (USD) |
| iossTaxHandlingFee | ioss tax | BigDecimal | (18,2) | Unit: $ (USD) |
| postageAmount | postage amount | BigDecimal | (18,2) | Unit: $ (USD) |
| productAmount | product amount | BigDecimal | (18,2) | Unit: $ (USD) |
| productOriginalAmount | total amount of products (before discount) | BigDecimal | (18,2) | Unit: $ (USD) |
| productDiscountAmount | product discount amount | BigDecimal | (18,2) | Unit: $ (USD) |
| postageDiscountAmount | postage discount amount | BigDecimal | (18,2) | Unit: $ (USD) |
| postageOriginalAmount | postage amount (before discount) | BigDecimal | (18,2) | Unit: $ (USD) |
| totalDiscountAmount | the total amount of the order after discount | BigDecimal | (18,2) | Unit: $ (USD) |
| actualPayment | the amount actually paid | BigDecimal | (18,2) | Unit: $ (USD) |
| orderOriginalAmount | original order amount | BigDecimal | (18,2) | Unit: $ (USD) |
| cjPayUrl | CJ pay url | string | 200 | |
| orderAmount | order amount | BigDecimal | 200 | |
| logisticsMiss | logistics missing mark | Boolean | 10 | |
| orderStatus | Order status | string | 10 | Referer Order Status |
| productInfoList | product information | list | ||
| interceptOrderReasons | order interception information | list |
product information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| storeLineItemId | lineItemId of your store order | string | 125 | |
| lineItemId | lineItemId of CJ order | string | 50 | |
| variantId | variant id | string | 50 | |
| quantity | quantity | int | 20 | |
| isGroup | Main product label | boolean | 10 | |
| subOrderProducts | combination product | list | 10 | |
| - lineItemId | Unique ID of the order item in CJ | string | 50 | |
| - variantId | variant id | string | 50 | |
| - quantity | quantity | int | 20 |
Order interception information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | code | int | 50 | |
| message | message | string | 200 |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.2 Create Order V3(POST)
- Create order
- Add param platformToken to header, The way to obtain platformToken is the same as the way to obtain CJ Access Token. If not required, the value can be empty. (2025-01-08 update)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/createOrderV3
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/createOrderV3' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'platformToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderNumber": "1234",
"shippingZip": "123",
"shippingCountry": "123",
"shippingCountryCode": "US",
"shippingProvince": "123",
"shippingCity": "132",
"shippingCounty": "",
"shippingPhone": "111",
"shippingCustomerName": "123213",
"shippingAddress": "123213",
"shippingAddress2": "123213",
"taxId": "123",
"remark": "note",
"email": "",
"consigneeID": "",
"shopAmount": "",
"logisticName": "PostNL",
"fromCountryCode": "CN",
"houseNumber": "123",
"iossType": "",
"platform": "shopify",
"iossNumber": ""
"shopLogisticsType": 1,
"storageId": "201e67f6ba4644c0a36d63bf4989dd70",
"orderFlow": 1,
"products": [
{
"vid": "92511400-C758-4474-93CA-66D442F5F787",
"quantity": 1,
"storeLineItemId": "test-lineItemId-1111"
}
]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderNumber | A unique identifier for the order from CJ partner. | string | Y | 50 | |
| shippingZip | Zip of destination | string | N | 20 | |
| shippingCountryCode | Country code of destination | string | Y | 20 | Referer:Country Code, Please use The two-letter code |
| shippingCountry | Country of destination | string | Y | 50 | |
| shippingProvince | Province of destination | string | Y | 50 | |
| shippingCity | City of destination | string | Y | 50 | |
| shippingCounty | County of destination | String | N | 50 | |
| shippingPhone | Phone number of destination | string | N | 20 | |
| shippingCustomerName | Customer name | string | Y | 50 | |
| shippingAddress | Shipping address of destination | string | Y | 200 | |
| shippingAddress2 | Shipping address 2 of destination | string | N | 200 | |
| houseNumber | House Number | String | N | 20 | |
| String | N | 50 | |||
| taxId | Tax Id | string | N | 20 | |
| remark | Order remark | string | N | 500 | |
| consigneeID | consignee id | string | N | 20 | |
| shopAmount | Order Amount | BigDecimal | N | 20 | |
| logisticName | logistic name | string | Y | 50 | Referer Freight Calculation |
| fromCountryCode | Country code of the shipment from | string | Y | 20 | Referer:Country Code, Please use The two-letter code |
| platform | Platform, Default: Api | String | N | 20 | If this parameter is not passed, the default platform Api will be used. Referer Platforms |
| iossType | IOSS Type | int | N | 20 | IOSS Type, Options: 1=No IOSS(The recipient will be required to pay VAT and other related fees when the order is declared without IOSS.), 2=Declare with my own IOSS(Please ensure that the IOSS provided is valid and is linked to the destination country in the EU. The declaration will proceed without IOSS if the destination country is not linked to a correct IOSS.), 3=Declare with CJ’s IOSS(Declaration with your store order amount is recommended. You will be responsible for the relevant risks if you choose to declare with CJ order amount. CJ’s IOSS is not applicable for orders valued above €150, and the recipient will be required to pay VAT.), Config Page (opens new window) |
| iossNumber | IOSS Number | String | N | 10 | If iossType=3, the value is fixed to CJ-IOSS |
| shopLogisticsType | Shipping mode, default value: 2 | int | N | 20 | Shipping type, Options: 1=Platform Logistics (storageId specified by you, required. When choosing platform logistics mode, the warehouse will start operation after uploading the shipping label. Please upload the shipping label in a timely manner, Upload Shipping and Shipping Label), 2=Seller Logistics (storageId will not be used), 3=Platform Logistics (storageId specified by CJ). If no requirement, please use 2=merchant logistics. Launched on 2025-11-18 |
| storageId | CJ warehouse ID | String | N | 40 | This value is valid when shopLogisticsType=1, Added on 2025-11-18 |
| storeName | Store name | String | N | 50 | If provided, the system will validate that the store name matches an API store in CJ system. If not provided, the order will be assigned to the default API store |
| storeOrderTime | Store order time | Long | N | 20 | Timestamp in seconds. Represents the actual order creation time in the customer's store. If the time is later than the current system time, an error will be returned |
| orderFlow | Order flow type, default value: 1 | int | N | 10 | Order flow type. Options: 1=Manual order flow (create order using CJ variants, default), 2=Store order flow (supports creating orders using store SKUs, requires Store Product linked to CJ products in My CJ). Launched on 2025-05-19 |
| isSandbox | Is sandbox order | integer | N | 1 | Default 0. 0-normal order; 1-sandbox order. Regardless of payType value, sandbox orders will automatically use fake/simulated payment and will not generate real charges, real logistics, or fulfillment |
| products | List | Y | 20 | ||
| - vid | CJ variant ID | string | N | 50 | vid and sku cannot both be null. When vid is missing, sku will be used to query the CJ variant. If both are provided, they must refer to the same variant and will be validated accordingly. If the customer account has been granted permission to submit non-CJ SKUs, then the vid field is required |
| - sku | CJ variant sku | string | N | 50 | vid and sku cannot both be null. When vid is missing, sku will be used to query the CJ variant. If both are provided, they must refer to the same variant and will be validated accordingly. |
| - quantity | quantity | int | Y | 50 | |
| - unitPrice | item pricing | BigDecimal | N | 20 | |
| - storeLineItemId | lineItemId of your store order | string | N | 125 | |
| - podProperties | POD customization information | String | N | 500 | podProperties is a string,1:Pod2.0 Example: [{"areaName":"LogoArea","links":["https://cc-west-usa.oss-us-west-1.aliyuncs.com/9f0b99e6-17ec-4dcd-8916-fc5d644be993_LOGO_NavyBlue.png"],"type":"1"}] 2:Pod3.0 Example:[{"links": ["Production image URL (multiple allowed)"],"effectImgs": ["Rendering image URL (exactly one required)"]}] |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"orderNumber": "",
"orderId": "123434',
"shipmentOrderId": "",
"iossAmount": ,
"iossTaxHandlingFee": ,
"iossAmount": ,
"postageAmount": ,
"productAmount": "",
"productOriginalAmount": "",
"productDiscountAmount": "",
"postageDiscountAmount": "",
"postageOriginalAmount": "",
"totalDiscountAmount": "",
"actualPayment": "",
"orderOriginalAmount": "",
"cjPayUrl": "",
"orderAmount": "",
"logisticsMiss": "",
"productInfoList": [
{
"storeLineItemId": "test-lineItemId-1111",
"lineItemId": "",
"variantId": "",
"isGroup": true,
"quantity":10,
"subOrderProducts": [
{
"lineItemId": "",
"variantId": "",
"quantity": ""
}
]
}
],
"orderStatus": "",
"interceptOrderReasons": [
{
"code": 1001,
"message": ""
}
]
},
"requestId": "9eddf3f5-bd3d-4fae-a4f2-028cbb90db97"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
data information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderId | CJ order id | string | 200 | If the provided product VID is not a CJ SKU, the order id will change, and thus the CJ order id will not be returned. You can monitor the webhook to obtain the latest CJ order id |
| orderNumber | customer order number | string | 200 | |
| shipmentOrderId | shipment order id | string | 200 | |
| iossAmount | ioss amount | BigDecimal | (18,2) | Unit: $ (USD) |
| iossTaxHandlingFee | ioss tax | BigDecimal | (18,2) | Unit: $ (USD) |
| postageAmount | postage amount | BigDecimal | (18,2) | Unit: $ (USD) |
| productAmount | product amount | BigDecimal | (18,2) | Unit: $ (USD) |
| productOriginalAmount | total amount of products (before discount) | BigDecimal | (18,2) | Unit: $ (USD) |
| productDiscountAmount | product discount amount | BigDecimal | (18,2) | Unit: $ (USD) |
| postageDiscountAmount | postage discount amount | BigDecimal | (18,2) | Unit: $ (USD) |
| postageOriginalAmount | postage amount (before discount) | BigDecimal | (18,2) | Unit: $ (USD) |
| totalDiscountAmount | the total amount of the order after discount | BigDecimal | (18,2) | Unit: $ (USD) |
| actualPayment | the amount actually paid | BigDecimal | (18,2) | Unit: $ (USD) |
| orderOriginalAmount | original order amount | BigDecimal | (18,2) | Unit: $ (USD) |
| cjPayUrl | CJ pay url | string | 200 | |
| orderAmount | order amount | BigDecimal | 200 | |
| logisticsMiss | logistics missing mark | Boolean | 10 | |
| orderStatus | order status | string | 10 | Referer Order Status |
| productInfoList | product information | list | ||
| interceptOrderReasons | order interception information | list |
product information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| storeLineItemId | lineItemId of your store order | String | 125 | |
| lineItemId | Unique ID of the order item in CJ | string | 50 | |
| variantId | variant id | string | 50 | |
| quantity | quantity | int | 20 | |
| isGroup | Main product label | boolean | 10 | |
| subOrderProducts | combination product | list | 10 | |
| - lineItemId | Unique ID of the order item in CJ | string | 50 | |
| - variantId | CJ variant id | string | 50 | |
| - quantity | quantity | int | 20 |
Order interception information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | code | int | 50 | |
| message | message | string | 200 |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.3 Add Cart
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/addCart
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/addCart' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"cjOrderIdList": ["SD25080109282603297001"]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| cjOrderIdList | CJ order id | List | Y | 200 | Query |
# Return
success
{
"success": true,
"code": 200,
"message": "Congratulation! Well done!",
"data": {
"successCount": 1,
"addSuccessOrders": [
"SD25080109282603297001"
],
"unInterceptAddressCount": 0,
"interceptOrders": []
}
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1603001,
"result": false,
"message": "order confirm fail",
"data": null,
"requestId": "7dc61955-c0e8-4731-bb9b-393b4fffeaaf"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.4 Add Cart Confirm (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/addCartConfirm
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/addCartConfirm' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"cjOrderIdList": ["SD25080109282603297001"]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| cjOrderIdList | CJ order id | List | Y | 200 | Query |
# Return
success
{
"success": true,
"code": 200,
"message": "Congratulation! Well done!",
"data": {
"successCount": 1,
"submitSuccess": true,
"shipmentsId": "",
"result": 0,
"interceptOrders": []
}
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| - successCount | Success Count | |||
| - submitSuccess | Is the submission successful | |||
| - shipmentsId | Shipment Order Id | |||
| - result | ||||
| - interceptOrders | Intercepted order ID List | List | ||
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1603001,
"result": false,
"message": "order confirm fail",
"data": null,
"requestId": "7dc61955-c0e8-4731-bb9b-393b4fffeaaf"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.5 Save Generate Parent Order(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/saveGenerateParentOrder
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/saveGenerateParentOrder' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"shipmentOrderId": "SD25080109282603297001"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| shipmentOrderId | Shipment Order Id | string | Y | 200 | Query |
# Return
success
{
"success": true,
"message": "",
"data": {
"orderMoney": 99.99,
"payExpireTime": "2024-12-31 23:59:59",
"payId": "PAY123456789",
"result": 0,
"submitSuccess": true,
"unMatchOrderCodes": ["ORDER001", "ORDER002"],
"successOrders": ["ORDER003", "ORDER004"],
"unMatchProductCodes": ["PROD001", "PROD002"],
"paymentInformation": {
"actualPayment": 89.99,
"balanceDeduction": 10.00,
"billAmount": 12.50,
"canDeduct": true,
"commodityDiscount": 5.00,
"commodityTotalAmount": 94.99,
"couponAmount": 15.00,
"freight": 5.00,
"iossAmount": 2.50,
"iossNumber": "IOSS123456",
"iossTaxHandlingFee": 0.50,
"iossTaxes": 2.00,
"iossType": 3,
"orderOriginalAmount": 104.99,
"orderProductAmount": 94.99,
"payableAmount": 89.99,
"postageDiscount": 0.00,
"serviceFee": 1.00
},
"interceptOrders": [
]
}
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1603001,
"result": false,
"message": "order confirm fail",
"data": null,
"requestId": "7dc61955-c0e8-4731-bb9b-393b4fffeaaf"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.6 List Order(GET)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/list?pageNum=1&pageSize=10
# CURL
curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/list?pageNum=1&pageSize=10' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| pageNum | Page number | int | N | 20 | Default 1 |
| pageSize | Quantity of results on each page | int | N | 20 | Default 20 |
| orderIds | order id | string[] | N | 100 | |
| shipmentOrderId | Shipment Order Id | string | N | 100 | |
| status | order status | string | N | 200 | default: CANCELLED, values: CREATED,IN_CART,UNPAID,UNSHIPPED,SHIPPED,DELIVERED,CANCELLED,OTHER |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"pageNum": 1,
"pageSize": 10,
"total": 6859,
"list": [
{
"orderId": "1377085655003308032",
"orderNum": "50166125936666",
"cjOrderId": null,
"shippingCountryCode": "SG",
"shippingProvince": "Singapore",
"shippingCity": "Singapore",
"shippingPhone": "6587997352",
"shippingAddress": "Singapore,07 Anson Tanjong Pagar,79 ANSON ROAD,79 Anson Road #01-01, Phoenix Tower",
"shippingCustomerName": "KUDO KANJI ",
"remark": "",
"orderWeight": 0,
"orderStatus": "CREATED",
"orderAmount": null,
"productAmount": 0,
"postageAmount": null,
"logisticName": null,
"trackNumber": null,
"createDate": "2021-03-31 00:46:39",
"paymentDate": null,
"productList": null,
"storageId": "201e67f6ba4644c0a36d63bf4989dd70",
"storageName": "Cranbury Warehouse"
}...
]
}
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderId | order id | string | 200 | |
| orderNum | order name | string | 200 | |
| cjOrderId | CJ order id | string | 200 | |
| shippingCountryCode | country code | string | 200 | |
| shippingProvince | province | string | 200 | |
| shippingCity | city | string | 200 | |
| shippingAddress | shipping address | string | 200 | |
| shippingCustomerName | shipping name | string | Y | 200 |
| shippingPhone | phone number | string | 200 | |
| remark | order remark | string | 500 | |
| logisticName | logistic name | string | 200 | |
| trackNumber | track number | string | 200 | |
| trackingUrl | tracking URL | string | N | 200 |
| orderWeight | order weight | int | 20 | |
| orderAmount | order amount | BigDecimal | (18,2) | Unit: $ (USD) |
| orderStatus | order status | string | 200 | Referer Order Status |
| createDate | create time | string | 200 | |
| paymentDate | pay time | string | 200 | |
| storeCreateDate | Store order creation time | DateTime | 1 | UTC Time, eg: 2025-03-14 13:21:07 |
| isSandbox | Is sandbox order | integer | 1 | 0-no, 1-yes |
| productAmount | product amount | BigDecimal | (18,2) | Unit: $ (USD) |
| postageAmount | postage amount | BigDecimal | (18,2) | Unit: $ (USD) |
| storageId | storage id | string | 200 | Added on 2025-11-18 |
| storageName | storage name | string | 200 | Added on 2025-11-18 |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.7 Query Order(GET)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/getOrderDetail?orderId=210711100018043276
# CURL
curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/getOrderDetail?orderId=210711100018043276&features=f1&features=f2' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# Request Parameters
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | order id | string | Y | 200 | support: Custom order id, CJ order id |
| features | features | List<String> | false | 20 | If a feature is passed in, the relevant function will be enabled. If multiple features are required, pass multiple feature parameters |
# Feature enumeration
| Enumeration | Description |
|---|---|
| LOGISTICS_TIMELINESS | Enable querying logistics timeliness. After passing in this feature enumeration, logisticTimelines will be returned in the results |
# Response
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"orderId": "210823100016290555",
"orderNum": "api_52f268d40b8d460e82c0683955e63cc9",
"platformOrderId": "6387689586969",
"cjOrderId": null,
"shippingCountryCode": "US",
"shippingProvince": "Connecticut",
"shippingCity": "ftdsr",
"shippingPhone": "43514123",
"shippingAddress": "rfdxf rfdesr",
"shippingCustomerName": "Xu Old",
"remark": null,
"orderWeight": 20,
"orderStatus": "CREATED",
"orderAmount": 4.25,
"productAmount": 0.57,
"postageAmount": 3.68,
"logisticName": "CJPacket Ordinary",
"trackNumber": null,
"createDate": "2021-08-23 11:31:45",
"paymentDate": null,
"isComplete":1,
"fromCountryCode":"CN",
"storageId": "201e67f6ba4644c0a36d63bf4989dd70",
"storageName": "Cranbury Warehouse",
"productList": [
{
"vid": "1392053744945991680",
"quantity": 1,
"sellPrice": 0.57,
"podPropertiesInfo": null,
"lineItemId": "2505170958390976500",
"storeLineItemId": "16045188153625",
"productionOrderStatus": 1,
"abnormalType": [
6,
9
]
}
]
},
"requestId": "3adccdcb-d41b-4808-996b-c7c5c833d77d"
}
POD order return information
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"orderId": "210823100016290555",
"orderNum": "api_52f268d40b8d460e82c0683955e63cc9",
"cjOrderId": null,
"platformOrderId": "6387689586969",
"shippingCountryCode": "US",
"shippingProvince": "Connecticut",
"shippingCity": "ftdsr",
"shippingPhone": "43514123",
"shippingAddress": "rfdxf rfdesr",
"shippingCustomerName": "Xu Old",
"remark": null,
"orderWeight": 20,
"orderStatus": "CREATED",
"orderAmount": 4.25,
"productAmount": 0.57,
"postageAmount": 3.68,
"logisticName": "CJPacket Ordinary",
"trackNumber": null,
"createDate": "2021-08-23 11:31:45",
"paymentDate": null,
"isComplete": 1,
"fromCountryCode": "CN",
"storageId": "201e67f6ba4644c0a36d63bf4989dd70",
"storageName": "Cranbury Warehouse",
"productList": [
{
"vid": "1392053744945991680",
"quantity": 1,
"sellPrice": 0.57,
"lineItemId": "2505170958390976500",
"storeLineItemId": "16045188153625",
"productionOrderStatus": 1,
"abnormalType": [
6,
9
]
"podPropertiesInfo": {
"image": "https://pod-picture.oss-cn.aliyuncs.com/LX/PO-211-12729261699191806-1.jpg",
"isFixedCustom": false,
"podVersion": 3,
"failedList": [],
"effectImgList": [
"https://pod-picture.oss-cn.aliyuncs.com/LX/PO-211-1.jpg?podThumbnailUrl=https%3A%2F%2Fpod-picture.oss-cn.aliyuncs.com%2Fpod%2F250428%2Fpod-picture_oss-cn-211-12729261699191806-1_jpg.1440x1440.webp&podOriginSize=638820&podOriginPxUrl=https%3A%2F%2Fpod-picture.oss-cn-hangzhou.aliyuncs.com%2Fpod_infinity%2F250428%2Fpod-picture_oss-cn-hangzhou_aliyuncs_com_LX_PO-211-12729261699191806-1_jpg.InfinityxInfinity.webp&podOriginPx=1936_1854&podOriginOss=https%3A%2F%2Fpod-picture.oss-cn-hangzhou.aliyuncs.com%2Fpod_origin%2F250428%2Fpod-picture_oss-cn-hangzhou_aliyuncs_com_LX_PO-211-1_jpg.InfinityxInfinity.jpg"
],
"finish": 1,
"customResources": [],
"type": 5,
"customMessgae": {
"podType": 1,
"color": {},
"zone": {
"back": {},
"front": {}
}
},
"productionImgList": [
"https://pod-picture.oss-cn.aliyuncs.com/LX/PO-211-1.jpg?podThumbnailUrl=https%3A%2F%2Fpod-picture.oss.aliyuncs.com%2Fpod%2F250428%2Fpod-picture_oss-cn-hangzhou_aliyuncs_com_LX_PO-211-12729261699191806-1_jpg.1440x1440.webp&podOriginSize=638820&podOriginPxUrl=https%3A%2F%2Fpod-picture.oss-cn-hangzhou.aliyuncs.com%2Fpod_infinity%2F250428%2Fpod-picture_oss-cn-hangzhou_aliyuncs_com_LX_PO-211-12729261699191806-1_jpg.InfinityxInfinity.webp&podOriginPx=1936_1854&podOriginOss=https%3A%2F%2Fpod-picture.oss-cn-hangzhou.aliyuncs.com%2Fpod_origin%2F250428%2Fpod-picture_oss-cn-hangzhou_aliyuncs_com_LX_PO-211-12729261699191806-1_jpg.InfinityxInfinity.jpg"
],
"customDesign": [
{
"img": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/180af06e-7b7-4662-b975-070203989480.jpg",
"areaNameEn": "",
"printWidth": "50",
"typeName": "",
"type": "1",
"scaleX": "1",
"backImgList": [
{
"color": "1pcs",
"imgSrc": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/00e2483-b3b2-4873-80ac-e71f4d760e1f.jpg"
},
{
"color": "4pcs",
"imgSrc": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/0c42181-d63f-49f9-b6d5-d55574027fcb.jpg"
},
{
"color": "10pcs",
"imgSrc": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/1ae2f95-5484-4d30-a93f-64bc740832d2.jpg"
},
{
"color": "16pcs",
"imgSrc": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/53ce421-33db-4249-8862-f36ad20083b5.jpg"
},
{
"color": "18pcs",
"imgSrc": "https://oss-cf.cjdropshipping.com/product/2025/04/22/01/245e348-a87b-4196-a3a4-056f6b391301.jpg"
}
],
"printHeight": "50",
"scaleY": "1",
"podType": "4",
"top": "297.99999928474426",
"areaName": "DIY",
"left": "253.99999994039536",
"areaType": "1",
"imgicon": "",
"angle": "0",
"fontSize": 12,
"fontSpace": 0,
"sku": ""
}
]
}
}
]
},
"requestId": "3adccdcb-d41b-4808-996b-c7c5c833d77d"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderId | order id | string | 200 | |
| orderNum | order name | string | 200 | |
| platformOrderId | Shop order ID | string | 200 | |
| cjOrderId | CJ order id | string | 200 | |
| cjOrderCode | CJ order code | string | 200 | |
| fromCountryCode | shipment country code | string | 200 | |
| shippingCountryCode | Recipient country code | string | 200 | |
| shippingProvince | Recipient province | string | 200 | |
| shippingCity | Recipient city | string | 200 | |
| shippingAddress | Recipient address | string | 200 | |
| shippingCustomerName | Recipient name | string | 200 | |
| shippingPhone | Recipient phone number | string | 200 | |
| remark | order remark | string | 500 | |
| logisticName | logistic name | string | 200 | |
| trackNumber | track number | string | 200 | |
| trackingUrl | tracking URL | string | 200 | |
| disputeId | CJ dispute ID | string | 50 | |
| orderWeight | order weight | int | 20 | |
| orderAmount | Order amount | BigDecimal | (18,2) | Unit: $ (USD) |
| orderStatus | Order status | string | 200 | Referer Order Status |
| createDate | Create time | string | 200 | UTC Time |
| paymentDate | Pay time | string | 200 | UTC Time |
| outWarehouseTime | Delivery time | DateTime | 1 | UTC Time, eg: 2025-03-14 13:21:07 |
| storeCreateDate | Store order creation time | DateTime | 1 | UTC Time, eg: 2025-03-14 13:21:07 |
| productAmount | product amount | BigDecimal | (18,2) | Unit: $ (USD) |
| isComplete | Is the order complete? 1: Complete 0: Incomplete | Number | 1 | |
| isSandbox | Is sandbox order | integer | 1 | 0-no, 1-yes |
| storageId | storage id | string | 200 | Added on 2025-11-18 |
| storageName | storage name | string | 200 | Added on 2025-11-18 |
| productList | Product List | list | 200 | |
| - vid | Variant Id | string | 200 | |
| - quantity | quantity | int | 20 | |
| - sellPrice | Sell Price | BigDecimal | (18,2) | unit:$(USA) |
| - storeLineItemId | The lineItemId of your store order | string | 125 | |
| - lineItemId | Unique ID of the order item in CJ | string | 50 | |
| - productionOrderStatus | Production Status | Number | 1 | 1=Pending Order, 2=Pending Production, 3=In Production, 4=Production Completed, 5=Production Abnormality |
| - abnormalType | Abnormal Reason | int[] | 6= Image link error, 9= Production drawings don't match the renderings, 10= Missing hanging ring, 11= Mismatch between die-cutting diagram and printing diagram, 12= uneven edges, 13= letters not connected, 14= Missing order images | |
| - podPropertiesInfo | pod product order return information | Object | ||
| -- effectImgList | Product renderings | List | 200 | |
| -- customResources | Finished product information | List | 200 | |
| -- productionImgList | Production diagram | List | 200 | |
| logisticsTimeliness | Logistics Timeliness | Object | ||
| - logisticsModes | Logistics List | List | ||
| -- logisticsName | Logistics Name | string | DHL Official | |
| -- arrivalTime | Arrival Time (Day) | string | 3-7 Days |
Order Status
| Order Status | Status | remark |
|---|---|---|
| CREATED | order create | create order, wait confirm |
| IN_CART | in cart | wait confirm, api merge this state |
| UNPAID | unpaid | confirm order, CJ order number create |
| UNSHIPPED | unshipped | paid, wait for sending |
| SHIPPED | shipped | in transit, get tracking number |
| DELIVERED | delivered | clients receving |
| CANCELLED | cancelled |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# Error code and Message
| Error Code | Message |
|---|---|
| 1600300 | order not found |
| 1600300 | orderId must be not empty |
| 1600300 | The maximum number of features is 20 |
# 1.8 Order Delete(DEL)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/deleteOrder?orderId=210711100018655344
# CURL
curl --location --request DELETE 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/deleteOrder?orderId=210711100018655344' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | order id | string | Y | 200 | Query |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": "210711100018655344",
"requestId": "721341bf-abf8-4d8c-b400-1fbdaef79039"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.9 Confirm Order(PATCH)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/confirmOrder
# CURL
curl --location --request PATCH 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/confirmOrder' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderId": "210711100018655344"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | order id | string | Y | 200 | Query |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": "210711100018655344",
"requestId": "721341bf-abf8-4d8c-b400-1fbdaef79039"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1603001,
"result": false,
"message": "order confirm fail",
"data": null,
"requestId": "7dc61955-c0e8-4731-bb9b-393b4fffeaaf"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.10 Change Order Warehouse
- The warehouse of the orders of the platform logistics can be modified through this interface.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/changeWarehouse
# CURL
curl --location 'http://localhost:8081/api2.0/v1/shopping/order/changeWarehouse' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"orderCode": "123",
"storageId": "1234"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderCode | order code | string | Y | 200 | Query |
| storageId | storage id | string | Y | 200 | Query |
# Return
success
{
"code": 200,
"result": true,
"message": "Congratulation! Well done!",
"data": true,
"requestId": "c627424a858444ef861484ba8d1bee48",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1603001,
"result": false,
"message": "order query fail",
"data": false,
"requestId": "7dc61955-c0e8-4731-bb9b-393b4fffeaaf"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.11 Sandbox Simulate Pay(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/sandbox/simulatePay
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/sandbox/simulatePay' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderId": "210711100018655344"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | CJ order id | string | N | 200 | CJ order id of the sandbox order, either this or shipmentOrderId |
| shipmentOrderId | Parent order id | string | N | 200 | Batch simulate pay for all sandbox sub-orders, either this or orderId |
Parameter Note: At least one of
orderIdorshipmentOrderIdis required. PassorderIdto simulate pay for a single sub-order; passshipmentOrderIdto batch simulate pay for all sandbox sub-orders under the parent order.Note: When a parent order contains multiple sub-orders, you cannot use
orderIdto simulate pay for a single sub-order. Please useshipmentOrderIdto batch simulate pay for all sub-orders.Scope: Only supports sandbox orders created with
isSandbox=1. This API only simulates payment success and will not generate real charges, real logistics, or fulfillment.
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": true,
"requestId": "9eddf3f5-bd3d-4fae-a4f2-028cbb90db97"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | simulate pay result | boolean | true-success | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 1.12 Sandbox Update Status(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/sandbox/updateStatus
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/sandbox/updateStatus' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderId": "210711100018655344",
"targetStatus": 400
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | CJ order id | string | Y | 200 | The CJ order id of the sandbox order |
| targetStatus | Target status code | integer | Y | 20 | Optional: 400(unshipped), 500(shipped), 600(completed), 700(closed) |
Scope: Only supports sandbox orders created with
isSandbox=1. Status update only simulates sandbox order status flow and will not trigger real logistics or fulfillment.
Status Flow Rule: Status can only flow in order: 300→400→500→600→700. Cannot skip or revert.
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": true,
"requestId": "9eddf3f5-bd3d-4fae-a4f2-028cbb90db97"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | update status result | boolean | true-success | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# Order Status
| Order Status | remark |
|---|---|
| CREATED | Order Created |
| IN_CART | Order in cart |
| UNPAID | Order unpaid |
| UNSHIPPED | Order has been paid and is currently pending shipment |
| SHIPPED | Order Shipped and in transit |
| DELIVERED | Package delivered |
| CANCELLED | Order cancelled |
# 2 Payment
# 2.1 Get Balance(GET)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/getBalance
# CURL
curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/getBalance' \
--header 'CJ-Access-Token: 0580277abfe24bcc9fccdc3ede57d334'
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"amount": 87247.32,
"noWithdrawalAmount": null,
"freezeAmount": null
},
"requestId": "36fc030a-a110-4318-bc83-f39f9d3e5484"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| noWithdrawalAmount | Bonus amount | BigDecimal | (18,2) | Unit: $ (USD) |
| freezeAmount | Frozen amount | BigDecimal | (18,2) | Unit: $ (USD) |
| amount | Amount | BigDecimal | (18,2) | Unit: $ (USD) |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 2.2 Pay Balance(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/payBalance
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/payBalance' \
--header 'CJ-Access-Token: 0580277abfe24bcc9fccdc3ede57d334' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderId": "12"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | Order id | string | Y | 200 |
Sandbox Note: If the order is a sandbox order (isSandbox=1), balance payment will use fake/simulated payment without real charges.
Note: When a parent order contains multiple sub-orders, you cannot use this API to pay by a single
orderId. Please use the "Pay Balance V2" API withshipmentOrderIdinstead.
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": null,
"requestId": "7dbe69b9-dd82-4ee3-907c-a6fca833e3ce"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 2.3 Pay Balance V2(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/payBalanceV2
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/payBalanceV2' \
--header 'CJ-Access-Token: 0580277abfe24bcc9fccdc3ede57d334' \
--header 'Content-Type: application/json' \
--data-raw '{
"shipmentOrderId": "12",
"payId": "12"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| shipmentOrderId | Shipment order Id | string | Y | 200 | |
| payId | PayId | String | N | 200 | Optional, system will auto-generate if not provided |
Sandbox Note: If all sub-orders under the parent order are sandbox orders (isSandbox=1), payBalanceV2 will automatically use sandbox simulated payment without real charges. Sandbox orders and normal orders are not allowed to be in the same parent order.
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": null,
"requestId": "7dbe69b9-dd82-4ee3-907c-a6fca833e3ce"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 3 Shipping Info
# 3.1 Upload Shipping Info(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/uploadWaybillInfo
Tips:
- When uploading the waybill file, please submit the request in multipart/form data format.
- This interface can only be called after CJ order payment.
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/uploadWaybillInfo' \
--header 'CJ-Access-Token:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ' \
--form 'orderId="2511111146000642900"' \
--form 'waybillFile=@"/C:/Users/Desktop/abcd.pdf"' \
--form 'cjOrderId="DP2511111145580643400"' \
--form 'cjShippingCompanyName="USPS"' \
--form 'trackNumber="123123"'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | Order Id | string | Y | 200 | |
| cjOrderId | CJ Order Id | string | Y | 200 | |
| cjShippingCompanyName | CJ Shipping Company Name | string | Y | 200 | Referer:Get Storage Info, Get:logisticsBrandList |
| trackNumber | Track Number | string | Y | 200 | |
| waybillFile | waybill document | MultipartFile | Y | 200 |
# Return
success
{
"success": true,
"message": "",
"result": true,
"data": true,
"requestId": "52f1888a3b4f451d889a84218f2b50dc"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | Boolean | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 806,
"result": false,
"message": "Warehouse “null” does not support logistics carrier “USPS”.",
"data": null,
"requestId": "309ad9d884ff4994b34f0da17853b970",
"success": false
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 3.2 Update Shipping Info(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/updateWaybillInfo
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/updateWaybillInfo' \
--header 'CJ-Access-Token:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ' \
--form 'orderId="2511111146000642900"' \
--form 'waybillFile=@"/C:/Users/Desktop/abcd.pdf"' \
--form 'cjOrderId="DP2511111145580643400"' \
--form 'cjShippingCompanyName="USPS"' \
--form 'trackNumber="123123"'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderId | Order Id | string | Y | 200 | |
| cjOrderId | CJ Order Id | string | Y | 200 | |
| cjShippingCompanyName | CJ Shipping Company Name | string | Y | 200 | Referer:Get Storage Info, Get:logisticsBrandList |
| trackNumber | Track Number | string | Y | 200 | |
| waybillFile | waybill document | MultipartFile | Y | 200 |
# Return
success
{
"success": true,
"message": "",
"result": true,
"data": true,
"requestId": "52f1888a3b4f451d889a84218f2b50dc"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | Boolean | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
error
{
"code": 804,
"result": false,
"message": "This order does not use store platform logistics. Label upload not supported.",
"data": null,
"requestId": "715937dad5844ec49d51be43541eeb00",
"success": false
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 3.3 UPDATE POD Pictures(POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/podProductCustomPicturesEdit
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/podProductCustomPicturesEdit' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'platformToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"podPicturesEditParams": [
{
"orderCode": "123",
"lineItemId": "111",
"effectImgList": [
"https://oss-cf.cjdropshipping.com/product/2025/04/22/01/245e348-a87b-4196-a3a4-056f6b391301.jpg"
],
"productionImgList": [
"https://oss-cf.cjdropshipping.com/product/2025/04/22/01/245e348-a87b-4196-a3a4-056f6b391301.jpg"
]
}
]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| podPicturesEditParams | List | Y | |||
| -orderCode | CJ order id | string | Y | 200 | |
| -lineItemId | Unique ID of the order item in CJ | string | Y | 200 | |
| -effectImgList | Product renderings | List | Y | 200 | |
| -productionImgList | Production diagram | List | Y | 200 |
# Return
success
{
"code": 200,
"result": true,
"message": "Congratulation! Well done!",
"data": {
"list": [
{
"orderCode": "123",
"lineItemId": "111",
"result": 2,
"failedMessage": null
},
{
"orderCode": "456",
"lineItemId": "666",
"result": 0,
"failedMessage": "No matching order number found"
}
]
},
"requestId": "fa65ceae2f5740459c3e8dc8cf32124c",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | Object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
data information
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| list | List | Y | ||
| -orderCode | CJ order id | string | 200 | |
| -lineItemId | Unique ID of the order item in CJ | string | 200 | |
| -result | update result 0:fail, 1: Processing, 2: success | int | 20 | |
| -failedMessage | fail reason | string | 200 |
Error
{
"code": 804,
"result": false,
"message": "Param error",
"data": null,
"requestId": "715937dad5844ec49d51be43541eeb00",
"success": false
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| code | error code | int | 20 | Reference error code |
| result | Whether or not the return is normal | boolean | 1 | |
| message | return message | string | 200 | |
| data | return data | Object | interface data return | |
| requestId | requestId | string | 48 | Flag request for logging errors |
# 4 COGS
# 4.1 Query COGS Basic Data Order Info (POST)
Query basic data order information list based on provided order codes.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/order/queryCogsBasicDataOrderInfoList
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/order/queryCogsBasicDataOrderInfoList' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"orderCodesList": ["DP2506140734320969300"]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderCodesList | List of CJ order codes | List<String> | Y | - | CJ order number list |
# Return
success
{
"code": 200,
"data": [
{
"cogsBasicDataOrderInfoJson": {
"a": "CJ2506144290356158893",
"c": null,
"d": 1,
"e": 6,
"f": 0.74,
"g": 6.58,
"h": 5.84,
"i": null,
"ii": "38",
"j": "2025-06-14T07:44:31"
},
"orderCode": "DP2506140734320969300",
"originalOrderCode": "",
"paymentDate": "2025-06-14T07:44:31",
"userId": "e11a3d3e3230401ab3984c59949be6a9"
}
],
"message": "",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderCode | Order code | string | 200 | |
| originalOrderCode | Original order code | string | 200 | For split orders: original code; for merged orders: pre-merge code |
| paymentDate | Payment time | LocalDateTime | - | |
| userId | User ID | string | 200 | |
| cogsBasicDataOrderInfoJson | Basic data details | object | - | See CogsBasicDataOrderInfoJson below |
# CogsBasicDataOrderInfoJson
| Attribute | Type | JSON Field | Definition |
|---|---|---|---|
| shipmentsOrderId | String | a | Parent order ID |
| merchantNumber | String | s | Customer ID |
| payFlag | Integer | d | Payment flag (1: paid) |
| postage | BigDecimal | f | Total postage after discount |
| totalAmount | BigDecimal | g | Total order amount |
| orderProductAmount | BigDecimal | h | Total product amount |
| paymentDate | LocalDateTime | j | Payment time |
| taxesInfo | Object | k | Tax information |
| productInfoMap | Map | z | Product data (productCode → ProductInfo) |
| disputeInfoMap | Map | x | Dispute data (disputeId → DisputeInfo) |
| diffAmountInfoMap | Map | c | Supplementary payment info (diffCode → DiffAmountInfo) |
| storeOrderInfo | Object | n | Store order information |
| isOutOfStockSplit | Integer | m | Out-of-stock split flag |
| isReissue | Integer | Reissue order flag (0: no, 1: yes) | |
| outStockFee | BigDecimal | rr | Out-stock fee |
| storeCostFee | BigDecimal | tt | Storage cost fee |
| resendParcelFeeMap | Map | yy | Re-dispatch fee for problematic parcels |
| isReOrder | Integer | uu | Re-order flag |
| store | String | ii | Warehouse number |
| storeSkuProcessFlag | Integer | oo | Store SKU processing flag |
| countryCode | String | pp | Receiving country code |
# ProductInfo
| Attribute | Type | JSON Field | Definition |
|---|---|---|---|
| productCode | String | pc | Product code |
| groupProductCode | String | q | Group product code (for combined products) |
| sku | String | w | SKU |
| isGroupMain | Integer | e | Main product of combination (0: no, 1: yes) |
| grams | BigDecimal | r | Weight in grams |
| price | BigDecimal | t | Actual paid unit price |
| quantity | Integer | y | Product quantity |
| productType | String | u | Product type (0: normal, 1: service, 3: packaging, 4: supplier, 5: supplier-shipped, 6: virtual) |
| img | String | z | Product image |
| isGift | Integer | h | Is gift (0: no, 1: yes) |
| couponOrderProductAmount | BigDecimal | j | Coupon amount |
| headPostage | BigDecimal | n | Head-postage per private inventory item |
# DisputeInfo
| Attribute | Type | JSON Field | Definition |
|---|---|---|---|
| productPriceFinal | BigDecimal | q | Final product refund amount |
| iossTaxesFinal | BigDecimal | e | Final IOSS tax |
| iossTaxHandlingFeeFinal | BigDecimal | r | Final IOSS handling fee |
| ddpHandlingFee | BigDecimal | t | Final DDP handling fee |
| dutyTaxesFinal | BigDecimal | y | Final duty tax |
| icmsTaxesFinal | BigDecimal | u | Final circulation tax |
| postageFinal | BigDecimal | p | Final refunded shipping fee |
| outboundCostFinal | BigDecimal | s | Final refunded outbound cost |
| storageCostFinal | BigDecimal | d | Final refunded storage cost |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
# 5 Merge Order
# 5.1 Auto Match Merge Order List (POST)
Get list of automatically matched mergeable orders.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMatchMergeOrderListV3
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMatchMergeOrderListV3' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"filterOrder": true,
"orderStatus": 100
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| filterOrder | Filter manually removed orders | boolean | Y | 1 | |
| orderStatus | Order status | int | Y | 10 | 100: Complete order page, 101: Shopping cart page |
# Return
success
{
"code": 200,
"data": [
{
"haveMoreShopOrder": true,
"mergeShopOrderVOList": [
{
"city": "Shanghai",
"country": "China",
"countryCode": "CN",
"customerName": "John",
"logisticsInfoList": [
{
"logisticsName": "PostNL",
"postage": 18.00,
"arrivalTime": "2023-11-20",
"isChecked": true
}
]
}
]
}
],
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| haveMoreShopOrder | Has multiple store orders | boolean | 1 | false: no, true: yes |
| mergeShopOrderVOList | Store order list | Array | - | |
| - city | City | string | 200 | |
| - country | Country | string | 200 | |
| - countryCode | Country code | string | 20 | |
| - customerName | Customer name | string | 200 | |
| - logisticsInfoList | Logistics options list | Array | - | |
| -- logisticsName | Logistics name | string | 200 | |
| -- postage | Postage | decimal | - | |
| -- arrivalTime | Estimated arrival time | string | 200 | |
| -- isChecked | Currently selected logistics | boolean | 1 | |
| -- basePostage | Base postage | decimal | - | |
| -- packPrice | Packaging postage | decimal | - | |
| -- remoteAmount | Remote area fee | decimal | - |
# 5.2 Auto Merge Query Progress (POST)
Query the asynchronous processing progress of auto match merge order list.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMergeQueryProgress
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMergeQueryProgress' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json'
# Return
success
{
"code": 200,
"data": {
"noTask": false,
"step": 2,
"stepCount": [10, 20, 30, 10, 30],
"stepPercent": 5000
},
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| noTask | No submitted tasks to process | boolean | 1 | |
| step | Current step | int | 10 | |
| stepCount | Step ratio array | Array | - | Array length = step count, elements = step weight |
| stepPercent | Current step progress | int | 10 | Max 10000 |
# 5.3 Auto Merge Query Result (POST)
Query asynchronous results of automatically matched merged orders, returning store order information and logistics options.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMergeQueryResult
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/autoMergeQueryResult' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json'
# Return
success
{
"code": 200,
"data": [
{
"haveMoreShopOrder": true,
"mergeShopOrderVOList": [
{
"city": "Shanghai",
"country": "China",
"countryCode": "CN",
"customerName": "John",
"logisticsInfoList": [
{
"logisticsName": "PostNL",
"postage": 18.00,
"arrivalTime": "2023-11-20"
}
],
"mergeOrderInfoList": [
{
"orderCode": "CJ123456789",
"orderNumber": "ORD987654",
"platform": "shopify",
"shopName": "My Store"
}
],
"phone": "13800138000",
"shippingAddress": "123 Main St"
}
]
}
],
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| haveMoreShopOrder | Has multiple store orders | boolean | 1 | false: no, true: yes |
| mergeShopOrderVOList | Store order list | Array | - | |
| - mergeOrderInfoList | Merge order info list | Array | - | |
| -- orderCode | CJ order code | string | 200 | |
| -- orderNumber | Customer order number | string | 200 | |
| -- platform | Platform | string | 50 | |
| -- shopName | Shop name | string | 200 |
# 5.4 Submit Merge Order Batch (POST)
Submit merged orders with auto-matched groups, combining multiple eligible orders into one.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitMergeOrderBatchV3
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitMergeOrderBatchV3' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '[
{
"logisticName": "PostNL",
"orderCodeList": ["CJ123456789", "CJ987654321"],
"orderNumber": "ORD123456",
"orderStatus": 100,
"packType": 0
}
]'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| logisticName | Logistics name | string | Y | 50 | |
| orderCodeList | CJ order codes to merge | List<String> | Y | - | |
| orderNumber | Customer store order number | string | Y | 50 | |
| orderStatus | Order status | int | Y | 10 | 100: Complete order page, 101: Shopping cart |
| packType | Packaging type | int | Y | 1 | 0: SKU, 1: Store |
# Return
success
{
"code": 200,
"data": {
"failGroupCount": 0,
"failOrderCount": 0,
"mergeFailOrderGroupList": [],
"newOrderCodeList": ["CJ999888777"],
"successGroupCount": 1,
"successOrderCount": 2
},
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| failGroupCount | Number of failed groups | int | 10 | |
| failOrderCount | Number of failed orders | int | 10 | |
| mergeFailOrderGroupList | Failed order list with reasons | Array | - | |
| - errorCode | Error code | int | 10 | 200: success, 11001-11007: various errors, 11100: other |
| - orderCodes | Order codes | Array | - | |
| newOrderCodeList | Successfully merged order codes | Array | - | |
| successGroupCount | Number of successful groups | int | 10 | |
| successOrderCount | Number of successful orders | int | 10 |
# 5.5 Submit Merge Progress (POST)
Query the asynchronous processing progress of submitted merged orders.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitProgress
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitProgress' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json'
# Return
success
{
"code": 200,
"data": {
"noTask": false,
"step": 1,
"stepCount": [10, 20, 30, 10, 30],
"stepPercent": 8000
},
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| noTask | No submission tasks to process | boolean | 1 | |
| step | Current step | int | 10 | |
| stepCount | Step ratio array | Array | - | Array length = step count |
| stepPercent | Current step progress | int | 10 | Max 10000 |
# 5.6 Submit Merge Result (POST)
Get asynchronous processing results of submitted merged orders, returning information about successfully merged and failed orders.
# URL
https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitResult
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/shopping/mergeOrder/submitResult' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json'
# Return
success
{
"code": 200,
"data": {
"failGroupCount": 0,
"failOrderCount": 0,
"mergeFailOrderGroupList": [],
"newOrderCodeList": ["CJ999888777"],
"successGroupCount": 1,
"successOrderCount": 2
},
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| failGroupCount | Number of failed groups | int | 10 | |
| failOrderCount | Number of failed orders | int | 10 | |
| mergeFailOrderGroupList | Failed order list with reasons | Array | - | |
| - errorCode | Error code | int | 10 | 200: success, 11001: only 1 order selected, 11002: order exception, 11003: empty order, 11004: address mismatch, 11005: no available logistics, 11006: supplier self-shipped order, 11007: order status changed, 11100: other error |
| - orderCodes | Order codes | Array | - | |
| newOrderCodeList | Successfully merged order codes | Array | - | |
| successGroupCount | Number of successful groups | int | 10 | |
| successOrderCount | Number of successful orders | int | 10 |
← 4 Storage 6 Logistic →