Skip to content
Back to skills

Cj Dropshipping Api

ASecurity

打通CJ Dropshipping全链路,搜品、下单、跟踪一键调用

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
developmentgobashapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 13 files and shows the line behind each finding

Scanned September 10, 2026

npx -y skills add huawolf/VaneWorker --skill cj-dropshipping-api --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cj Dropshipping Api?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cj Dropshipping Api
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/huawolf-cj-dropshipping-api/badge)](https://www.skillsdirectory.com/skills/huawolf-cj-dropshipping-api)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cj-dropshipping-api
description: 打通CJ Dropshipping全链路,搜品、下单、跟踪一键调用
tool_triggers:
- tool: bash
  args:
    command: /accio-mcp-cli\s+call\s+(?:start_cj_auth|get_cj_access_token)\b/i
title: CJ代发货源
example: |-
  怎么使用?
  Use when integrating CJ Dropshipping API V2.0 — products, orders (Shopping API), logistics, webhooks, Shopify delivery profiles. Business calls are REST against `developers.cjdropshipping.com`; use `accio-mcp-cli` only to obtain OAuth tokens (`start_cj_auth`, `get_cj_access_token`), not for produ...
version: 1.0.0
---
# CJ Dropshipping API V2.0

**accio-mcp-cli** 仅用于 **CJ OAuth 认证和读取存储的令牌**(`start_cj_auth`、`get_cj_access_token`)。其余所有功能——商品搜索、订单、物流、Webhook、伙伴刊登——均遵循第 2 节起的 **REST API**:使用 `get_cj_access_token` 获取的 **`CJ-Access-Token`** 请求头调用 `https://developers.cjdropshipping.com/api2.0/v1/...`。

两个认证调用的 CLI 参数(如 `--port`、`--raw`、`--refresh`),请参阅 **accio-mcp-cli** 技能。

## 1. 认证(仅限 accio-mcp-cli)

执行一次 OAuth,然后在每次 REST 请求前读取令牌。

```bash
accio-mcp-cli call start_cj_auth
accio-mcp-cli call get_cj_access_token
```

| 步骤 | 命令 |
|------|---------|
| 启动 OAuth(用户在浏览器中完成授权链接) | `accio-mcp-cli call start_cj_auth` |
| 读取存储的令牌对 | `accio-mcp-cli call get_cj_access_token` |

将返回的 `accessToken` 作为 **`CJ-Access-Token`** 用于下方所有 REST 调用。如需完整的网关 JSON,请在 `get_cj_access_token` 后附加 `--raw`。

**返回数据示例**(字段可能有所差异;使用 `--raw` 可获取精确的 MCP 结果):

```json
{
  "provider": "cj",
  "accessToken": "...",
  "accessTokenExpiryDate": "...",
  "refreshToken": "...",
  "refreshTokenExpiryDate": "..."
}
```

## 2. 商品管理与刊登

所有商品接口均需要:
- `CJ-Access-Token: YOUR_ACCESS_TOKEN`

### 2.1 获取分类列表
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/getCategory`

返回 CJ 分类树。

### 2.2 获取商品列表(V2)
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/listV2`

新集成的主要商品搜索/列表接口。

**查询参数:**
- `page`:页码,默认 `1`,最小 `1`,最大 `1000`
- `size`:每页数量,默认 `20`,最小 `1`,最大 `100`
- `keyWord`:搜索关键词,匹配商品名称或 SKU
- `categoryId`:分类 ID 过滤
- `countryCode`:仅返回指定国家有库存的商品
- `minPrice`:最低价格
- `maxPrice`:最高价格
- `features`:可选扩展参数,用于展开商品/分类详情

### 2.3 获取商品详情
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/query`

获取单个商品及其规格信息。

**查询参数:**
- `pid`:商品 ID。从 `pid`、`productSku`、`variantSku` 中选一个
- `productSku`:商品 SKU。从 `pid`、`productSku`、`variantSku` 中选一个
- `variantSku`:规格 SKU。从 `pid`、`productSku`、`variantSku` 中选一个
- `countryCode`:可选,库存国家过滤
- `features`:可选,已记录的支持值:
  - `enable_combine`
  - `enable_video`
  - `enable_inventory`

**重要说明:** 本接口请勿使用未记录的查询参数,如 `productId` 或 `variantId`。

### 2.4 获取所有规格
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/variant/query`

**查询参数:**
- `pid`:从 `pid`、`productSku`、`variantSku` 中选一个
- `productSku`:从 `pid`、`productSku`、`variantSku` 中选一个
- `variantSku`:从 `pid`、`productSku`、`variantSku` 中选一个
- `countryCode`:可选,库存国家过滤

### 2.5 获取规格详情
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/variant/queryByVid`

**查询参数:**
- `vid`:规格 ID
- `features`:可选。使用 `enable_inventory` 可包含库存详情

### 2.6 按规格 ID 获取库存
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryByVid`

**查询参数:**
- `vid`:规格 ID

### 2.7 按 SKU 获取库存
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryBySku`

**查询参数:**
- `sku`:SKU 或 SPU

### 2.8 按商品 ID 获取库存
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/stock/getInventoryByPid`

**查询参数:**
- `pid`:商品 ID

### 2.9 添加到我的商品
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/addToMyProduct`

**请求体:**
```json
{
  "productId": "CJ_PRODUCT_ID"
}
```

### 2.10 查询我的商品
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/myProduct/query`

**查询参数:**
- `keyword`:SKU/SPU/商品名称
- `categoryId`:分类过滤
- `startAt`:开始时间
- `endAt`:结束时间
- `isListed`:刊登状态过滤
- `visiable`:可见性过滤
- `hasPacked`:打包状态过滤
- `hasVirPacked`:虚拟打包状态过滤

### 2.11 商品评价
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/product/productComments`

**查询参数:**
- `pid`:商品 ID
- `score`:可选评分过滤
- `pageNum`:页码,默认 `1`
- `pageSize`:每页数量,默认 `20`

### 2.12 批量刊登
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/listedByPids`

将 CJ 商品刊登到第三方店铺(如 Shopify)。

**请求头:**
- `CJ-Access-Token: USER_TOKEN`

**请求体:**
```json
{
  "shopIds": ["..."],
  "productIds": ["..."],
  "formula": {
    "formulaType": 1,
    "formulaNumber": 15,
    "shippingFrom": "CN",
    "shippingTo": "US",
    "isLogistics": 1
  },
  "templateShopCategoryVOList": [
    {
      "shopId": "...",
      "deliveryProfileId": "..."
    }
  ]
}
```
*注意:Shopify 平台通常必须提供 `deliveryProfileId`,否则会触发 7001001 错误。*

### 2.13 查询平台分类树
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/getPlatformCategoryTree`

获取目标平台的分类/集合(如 Shopify Collections)。

### 2.14 查询供应商列表
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/queryVendors`

获取指定店铺的可用供应商列表。

### 2.15 获取 CJ 默认配送模板
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/getCjDefaultDeliveryProfile`

返回默认配送模板,可用作 `createDeliveryProfile` 的基础。

### 2.16 创建配送模板
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/createDeliveryProfile`

在目标 Shopify 店铺中创建新的配送模板。需要提供 `locationIds` 列表和 `zones`(含国家和省份)。

### 2.17 更新配送模板
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/updateDeliveryProfile`

更新现有配送模板。

### 2.18 删除配送模板
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/removeDeliveryProfile`

删除配送模板。

### 2.19 查询店铺仓库位置
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/shop/location/queryList`

列出店铺的所有履约仓库位置。用于识别"CJ Dropshipping"位置 ID(`fromCj: true` 的位置)。

### 2.20 查询国家与省份
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/shop/property/queryCountries`

返回支持的国家及其省份/州列表,构建配送模板的 `zones` 对象时必须调用。

## 3. 订单处理(购物)

### 3.1 创建订单 V2
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/shopping/order/createOrderV2`

**请求头:**
- `CJ-Access-Token: YOUR_ACCESS_TOKEN`

**请求体:**
```json
{
  "orderNumber": "YOUR_ORDER_ID_123",
  "shippingZip": "10001",
  "shippingCountryCode": "US",
  "shippingCountry": "United States",
  "shippingProvince": "New York",
  "shippingCity": "New York",
  "shippingAddress": "123 Main St",
  "shippingCustomerName": "John Doe",
  "shippingPhone": "1234567890",
  "remark": "Dropshipping order",
  "fromCountryCode": "CN",
  "logisticName": "CJPacket Sensitive",
  "payType": "1",
  "products": [
    {
      "vid": "CJ_VARIANT_ID",
      "quantity": 1
    }
  ]
}
```
*`payType`:1(URL 支付)、2(余额支付)、3(仅创建)*

### 3.2 获取订单详情/列表
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/shopping/order/list`
*(注:搜索用 `list`,获取单条详情用 `queryById`;若 `list` 不是标准路径,请查阅文档确认确切路径)*

**列表接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/shopping/order/list`(标准 V2 模式,支持按 `orderNumber`、`cjOrderCode`、`status` 等过滤)

**查询参数:**
- `page`: 1
- `size`: 20
- `orderNumber`:您的订单 ID
- `cjOrderCode`:CJ 订单 ID
- `status`:订单状态(如 '10' 表示已支付)

### 3.3 确认订单(支付)
若使用了 `payType=3`,通过以下接口确认/支付:
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/shopping/pay/payBalance`

**请求体:**
```json
{
  "orderIdList": ["CJ_ORDER_ID_1", "CJ_ORDER_ID_2"]
}
```

## 4. 物流

### 4.1 运费计算
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/logistic/freightCalculate`

**请求体:**
```json
{
  "startCountryCode": "CN",
  "countryCode": "US",
  "products": [
    {
      "vid": "CJ_VARIANT_ID",
      "quantity": 1
    }
  ]
}
```

### 4.2 物流跟踪
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/logistic/trackInfo`

**查询参数:**
- `trackNumber`:追踪号(批量查询可重复:`?trackNumber=A&trackNumber=B`)

### 4.3 查询配送模板(伙伴)
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/queryDeliveryProfiles`

获取刊登时需绑定的 Shopify 配送模板。

### 4.4 查询收件国家信息
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/product/listed/getReceiverCountryInfo`

## 5. Webhook

配置 Webhook 以接收实时更新。

**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/webhook/set`

**请求体:**
```json
{
  "product": { "type": "ENABLE", "callbackUrls": ["https://your-domain.com/webhook/product"] },
  "stock": { "type": "ENABLE", "callbackUrls": ["https://your-domain.com/webhook/stock"] },
  "order": { "type": "ENABLE", "callbackUrls": ["https://your-domain.com/webhook/order"] },
  "logistics": { "type": "ENABLE", "callbackUrls": ["https://your-domain.com/webhook/logistics"] }
}
```

**事件类型:**
- `product`:价格/库存变更(请查阅文档确认具体 payload 类型)
- `stock`:库存更新
- `order`:状态变更(已支付、已发货、已完成)
- `logistics`:物流跟踪更新

## 6. 账号设置

### 6.1 获取账号设置
**接口:** `GET https://developers.cjdropshipping.com/api2.0/v1/setting/get`

返回账号信息、API 配额及当前 Webhook 配置。

### 6.2 设置 Webhook 回调
**接口:** `POST https://developers.cjdropshipping.com/api2.0/v1/setting/setCallback`

**请求体:**
```json
{
  "product": {"type": "ENABLE", "urls": ["..."]},
  "stock": {"type": "ENABLE", "urls": ["..."]},
  "order": {"type": "ENABLE", "urls": ["..."]},
  "logistic": {"type": "ENABLE", "urls": ["..."]}
}
```

## 7. 店铺 API(伙伴模式)

这些接口用于管理店铺连接和设置。

### 7.1 查询店铺列表
**接口:** `GET /shop/getShops`

**说明:** 返回用户已授权的店铺列表。成功状态码为 `0`。
**注意:** 相对路径,基础 URL 需通过伙伴系统确认。

---

## 8. API 参考(详细)

伙伴/ERP 集成的详细文档:
- [伙伴集成指南(ERP/平台)](references/partner_integration.md)

本节提供伙伴/刊登 API 接口摘要。

### 8.1 批量刊登商品(listedByPids)
**接口:** `POST /product/listed/listedByPids`

**请求体(JSON):**
| 字段 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| `shopIds` | Set<String> | 是 | 目标店铺 ID(如 `["shop_id"]`)。 |
| `productIds` | List<String> | 是 | 要刊登的 CJ 商品 ID。 |
| `formula` | Object | 是 | 刊登定价公式。 |
| `formula.formulaType` | Integer | 是 | 0-固定,1-加价,2-百分比,3-推荐。 |
| `formula.formulaNumber` | BigDecimal | 是 | 公式数值/倍数(类型非 3 时必填)。 |
| `formula.shippingFrom` | String | 是 | 发货国代码(如 `"CN"`)。 |
| `formula.shippingFromName` | String | 是 | 发货国名称(如 `"China"`)。 |
| `formula.shippingTo` | String | 是 | 目的国代码(如 `"US"`)。 |
| `formula.shippingToName` | String | 是 | 目的国名称(如 `"United States"`)。 |
| `formula.logisticsMaxDay` | Integer | 是 | 最长送达天数(如 `30`)。 |
| `formula.logisticsMaxPrice` | BigDecimal | 是 | 最高物流费用(如 `100.00`)。 |
| `formula.logisticsType` | Integer | 是 | 物流类型(如 `0`)。 |
| `formula.isLogistics` | Integer | 是 | 1:含物流费,0:不含。 |
| `templateShopCategoryVOList` | List<Object> | 否 | Shopify 店铺必填。 |
| `templateShopCategoryVOList[].shopId` | String | 是 | 店铺 ID。 |
| `templateShopCategoryVOList[].deliveryProfileId` | String | 是 | Shopify 配送模板 ID。 |

**请求示例:**
```json
{
  "shopIds": ["2603221653513529700"],
  "productIds": ["1772614144538193920"],
  "formula": {
    "formulaType": 3,
    "shippingFrom": "CN",
    "shippingFromName": "China",
    "shippingTo": "US",
    "shippingToName": "United States",
    "logisticsMaxDay": 30,
    "logisticsMaxPrice": 100.00,
    "logisticsType": 0,
    "isLogistics": 1
  },
  "templateShopCategoryVOList": [
    {
      "shopId": "2603221653513529700",
      "deliveryProfileId": "112235774194"
    }
  ]
}
```

### 8.2 查询平台分类树
**接口:** `POST /product/listed/getPlatformCategoryTree`

**请求体(JSON):**
| 字段 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| `shopId` | String | 是 | 目标店铺 ID。 |
| `countryCode` | String | 否 | 按国家站点过滤。 |
| `pageNum` | Integer | 否 | 默认 1。 |

**响应数据(`data` 字段):**
包含 `categoryVOS` 列表。对于 Shopify:
- `categoryLevel 0`:自定义集合(Custom Collections)。
- `categoryLevel 1`:智能集合(Smart Collections)。

### 8.3 查询店铺配送模板
**接口:** `POST /product/listed/queryDeliveryProfiles`

**请求体(JSON):**
| 字段 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| `shopId` | String | 否 | 目标店铺 ID。 |
| `forceRefresh` | Boolean | 否 | 强制刷新缓存。 |

### 8.4 获取访问令牌(伙伴模式)
**接口:** `POST /authentication/getAccessToken`

**成功响应(`data` 字段):**
- `accessToken`:用于 `CJ-Access-Token` 请求头的令牌。
- `accessTokenExpiryDate`:令牌过期时间戳。
- `refreshToken`:用于刷新会话的令牌。
- `openId`:用户在平台中的唯一标识。

### 8.5 店铺 API - 获取店铺列表
**接口:** `GET /shop/getShops`

**响应示例:**
```json
{
  "success": true,
  "code": 0,
  "data": [
    {
      "shopId": "...",
      "shopName": "...",
      "platformName": "Shopify",
      "currencyCode": "USD"
    }
  ]
}
```

---

## 常见错误码
- `200`:成功
- `1600100`:参数错误
- `1601000`:用户不存在
- `500`:系统错误(请稍后重试)

## 9. 故障排查与常见错误

### 9.1 错误码 400:请求参数错误
- **原因**:`formula` 中缺少必填字段(如 `shippingFrom`、`shippingTo`),或 Shopify 店铺缺少 `templateShopCategoryVOList`。
- **解决**:确保所有必填字段均已填写。Shopify 平台需提供有效的 `deliveryProfileId`。

### 9.2 错误码 7001001:模板缺少配送模板
- **原因**:Shopify 店铺要求为商品分配配送模板,但未传入 `deliveryProfileId`。
- **解决**:通过 `/product/listed/queryDeliveryProfiles` 查询可用模板,并将 ID 传入 `templateShopCategoryVOList`。

### 9.3 错误码 7001003:配送模板不包含应用创建的仓库位置
- **原因**:Shopify 配送模板未启用"CJ Dropshipping"仓库位置。
- **API 自动修复**:
    1. 通过 `/api/shop/location/queryList` 查询所有位置,找到 `fromCj: true` 的位置。
    2. 通过 `/api/product/listed/createDeliveryProfile` 创建新配送模板,或更新现有模板,将该位置 ID 加入 `locationIds`。
    3. 对于有省份的国家(如美国),需在 `zones.countries` 数组中明确提供所有省份。
- **手动修复**:引导用户进入 **Shopify 后台 > 设置 > 配送与交付**,编辑配送模板,将"CJ Dropshipping"位置添加进去。

## 10. 最佳实践
1. **检查 `deliveryProfileOpen`**:通过 `getShops` 查询店铺时,若 `deliveryProfileOpen=1`,刊登时必须提供 `deliveryProfileId`。
2. **缓存访问令牌**:不要每次调用都重新获取令牌,将其存储至接近过期时再刷新。
3. **遵守速率限制**:遵循 `setting/get` 接口返回的 QPS 限制。
4. **使用 Webhook**:优先使用 Webhook 而非轮询获取订单状态更新。
5. **记录请求 ID**:在响应中记录 `requestId`,方便与 CJ 客服协作排查问题。

## 11. Shopify 配送模板自动化工作流

在 Shopify 上刊登商品时,按以下自动化流程处理配送模板:

1. **检查要求**:通过 `/shop/getShops` 获取店铺列表。若目标店铺的 `deliveryProfileOpen: 1`,则需继续处理配送模板。
2. **识别 CJ 仓库位置**:调用 `/shop/location/queryList`,找到 `fromCj: true` 的位置,保存该 `id`(即 CJ 应用仓库位置 ID)。
3. **查询省份(如需)**:若发货目的地为美国等需要强制填写省份的国家,调用 `/shop/property/queryCountries` 获取省份代码列表。
4. **配置配送模板**:
   - 调用 `/product/listed/queryDeliveryProfiles` 查看现有模板。
   - 若有效模板已包含 CJ 位置,直接使用其 ID。
   - 否则,使用 CJ 位置 ID 和所需的国家/省份 zones 调用 `/product/listed/createDeliveryProfile` 创建新模板。
5. **执行刊登**:调用 `/product/listed/listedByPids` 时,将配送模板 ID 通过 `templateShopCategoryVOList` 传入。

Files in this skill

  • SKILL.md18.2 KB
  • info.json743 B
  • references/appendix.md1.1 KB
  • references/auth.md1 KB
  • references/dispute.md3.6 KB
  • references/endpoints.md2.6 KB
  • references/logistics.md7.5 KB
  • references/partner_integration.md3.1 KB
  • references/products.md9.9 KB
  • references/settings.md619 B
  • references/shopping.md10.7 KB
  • references/storage.md728 B
  • references/webhook.md2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…