# 订单同步流程

本文档介绍了通过API将订单同步到CJ平台的三种主要流程:

# 1. 平台物流模式订单同步流程

适用于希望由CJ仓库统一操作发货、自己负责上传物流面单的商户。需要指定 shopLogisticsType=13,以及仓库 storageId;选择该模式后,仓库会在收到你上传的面单后才开始作业。

  1. 按商品查询库存

    文档:按商品查询库存

  2. 查询仓库信息.

    文档:查询仓库信息

  3. 创建订单.

    文档: 创建订单 V2 or 创建订单 V3

Tip:

  1. 添加参数: shopLogisticsType 和 storageId
  2. 需要指定物流类型和存储ID(存储ID一旦指定,就不能更改)
  1. 添加订单到购物车

    文档: 添加订单到购物车

提示: 批量添加订单到购物车,支持添加订单。

  1. 购物车订单确认

    文档: 购物车订单确认

  2. 创建母单并获取支付ID

    文档: 创建母单并获取支付ID

  3. 支付.

    文档: 支付

提示: 你还可以进入MyCJ的网页批量支付

  1. 上传面单与发货信息.

    文档: 上传面单与发货信息

提示: 付款完成后才能执行

  1. 更新面单与发货信息

    Docs:更新面单与发货信息

提示: 只有订单状态为UNSHIPPED时才能执行

# 1.1 时序图

sequenceDiagram
    participant 商户 as 商户系统(调用方)
    participant CJ as CJ开放平台

    商户->>CJ: 按商品查询库存(GET /product/stock/getInventoryByPid)
    CJ-->>商户: 库存信息

    商户->>CJ: 查询仓库信息(GET /warehouse/detail)
    CJ-->>商户: 仓库信息

    商户->>CJ: 创建订单(POST /order/createOrderV2 或 /order/createOrderV3<br/>shopLogisticsType=1或3,storageId=指定仓库ID)
    CJ-->>商户: 返回订单号及订单状态

    商户->>CJ: 添加订单到购物车(POST /order/addCart)
    CJ-->>商户: 加购结果

    商户->>CJ: 购物车订单确认(POST /order/addCartConfirm)
    CJ-->>商户: 确认结果

    商户->>CJ: 创建母单并获取支付ID(POST /order/saveGenerateParentOrder)
    CJ-->>商户: 母订单号、应付金额、支付ID

    商户->>CJ: 支付(POST /pay/payBalanceV2)或在MyCJ网页批量支付
    CJ-->>商户: 支付结果

    Note over 商户,CJ: 仓库会在收到面单后才开始作业,请在支付完成后及时上传

    商户->>CJ: 上传面单与发货信息(POST /order/uploadWaybillInfo)
    CJ-->>商户: 上传结果

    opt 订单状态为"待发货"(UNSHIPPED)
        商户->>CJ: 更新面单与发货信息(POST /order/updateWaybillInfo)
        CJ-->>商户: 更新结果
    end

# 2. 订单同步到CJ及使用CJ物流的流程

适用于希望直接使用CJ自有物流渠道发货、无需自行上传面单的商户。需要将 shopLogisticsType 设为 2storageId 留空,并指定物流方式 logisticName;支付完成后由CJ安排发货。

  1. 创建订单.

    文档: 创建订单 V2 or 创建订单 V3

Tip:

  1. shopLogisticsType传值为2、 storageId传值为空
  2. 需要指定物流,参数:logisticName
  1. 添加订单到购物车

    文档: 添加订单到购物车

提示: 批量添加订单到购物车,支持添加订单。

  1. 购物车订单确认

    文档: 购物车订单确认

  2. 创建母单并获取支付ID

    文档: 创建母单并获取支付ID

  3. 支付.

    文档: 支付

提示: 你还可以进入MyCJ的网页批量支付

  1. 等待CJ处理订单发货

  2. 查询订单详情

    Docs: 查询订单详情

  3. 查询物流轨迹

    Docs:查询物流轨迹

# 2.1 时序图

sequenceDiagram
    participant 商户 as 商户系统(调用方)
    participant CJ as CJ开放平台

    商户->>CJ: 创建订单(POST /order/createOrderV2 或 /order/createOrderV3<br/>shopLogisticsType=2,storageId留空,指定logisticName)
    CJ-->>商户: 返回订单号及订单状态

    商户->>CJ: 添加订单到购物车(POST /order/addCart)
    CJ-->>商户: 加购结果

    商户->>CJ: 购物车订单确认(POST /order/addCartConfirm)
    CJ-->>商户: 确认结果

    商户->>CJ: 创建母单并获取支付ID(POST /order/saveGenerateParentOrder)
    CJ-->>商户: 母订单号、应付金额、支付ID

    商户->>CJ: 支付(POST /pay/payBalanceV2)或在MyCJ网页批量支付
    CJ-->>商户: 支付结果

    Note over CJ: 等待CJ处理订单发货

    商户->>CJ: 查询订单详情(GET /order/getOrderDetail)
    CJ-->>商户: 订单详情

    商户->>CJ: 查询物流轨迹(GET /logistic/trackInfo)
    CJ-->>商户: 物流轨迹

# 3. 店铺订单流程

# 3.1 概述与适用场景

CJ 开放平台创建订单 V3 接口支持两种商品识别方式,通过参数 orderFlow 区分:

orderFlow 名称 适用场景
1(默认) CJ商品订单流程 下单时必须提供 CJ 变体 ID(vid)或 CJ SKU,商品信息完全来自 CJ 商品库
2 店铺订单流程 下单时可以直接传入你自己店铺系统里的商品/变体标识(店铺 SKU、店铺商品 ID),不要求提前知道对应的 CJ 变体 ID

如果你的店铺商品尚未与 CJ 商品建立关联关系,店铺订单流程可以显著简化对接:无需在下单前先完成关联,本次下单仍可正常提交;但下单后仍需前往 My CJ - Unconnected (opens new window) 页面手动完成该商品的关联。

订单创建后,根据商品是否已关联CJ商品,会展示在不同位置:

# 3.2 如何使用店铺商品模式

  1. 创建店铺订单时必须使用 创建订单 V3 接口(不要使用 V2),并设置 orderFlow=2
  2. 商品信息通过 products 数组传入,需要同时提供
    • products.vid:你的店铺商品/变体标识
    • products.storeProductId:店铺商品 ID
    • products.storeProductImg:店铺商品图片
  3. 若该商品此前尚未与 CJ 商品建立关联,前往 My CJ - Unconnected (opens new window) 页面,找到该未关联的商品,完成关联;也可以提前通过接口完成商品保存与关联,见 3.7 节。

若你的账号已由 CJ 为其整体开通"店铺订单模式",则即使不传 orderFlow,也会按店铺订单流程处理。具体账号是否已开通,请联系 CJ 业务对接人确认。

# 3.3 接口参数说明

摘自 创建订单 V3(POST) 的关键参数:

参数 类型 必填 说明
orderFlow int 否,默认 1 订单流程类型。1=CJ商品订单流程(使用 CJ 变体创建订单,默认);2=店铺订单流程(支持使用店铺 SKU 创建订单)
products[].vid string 否(店铺商品模式下需传值 CJ商品订单流程下为 CJ 变体 ID;店铺商品模式下传你的店铺商品/变体标识。vid/sku 不能同时为空
products[].sku string CJ 变体 SKU;缺少 vid 时用 sku 反查变体(店铺商品模式下一般不使用该字段)
products[].storeProductId String 否(店铺商品模式下需传值 你店铺侧的商品 ID,会保存到店铺商品记录中
products[].storeProductImg String 否(店铺商品模式下需传值 你店铺侧的商品图片,会保存到店铺商品记录中

# 3.4 完整业务流程

店铺订单流程只影响第 1 步"创建订单"中商品的识别方式,其余步骤与第 1、2 节完全一致:

  1. 创建订单.

    文档: 创建订单 V3

Tip:

  1. 必须使用创建订单V3接口,暂不支持V2
  2. 设置 orderFlow 传值为2
  3. products中需要同时传入:vid(你的店铺商品/变体标识)、storeProductId(店铺商品ID)、storeProductImg(店铺商品图片)
  4. 若该商品已与CJ商品关联,订单创建后展示在 Imported → Orders (opens new window) 中,可正常处理
  5. 若该商品尚未与CJ商品建立关联,系统会自动创建一条店铺商品记录,本次下单仍可正常完成,但不会自动建立CJ商品关联;订单创建后展示在 Imported → Invalid Orders (opens new window) 中,需前往 My CJ - Unconnected (opens new window) 页面完成关联后订单才能正常处理
  6. 若你的账号已由CJ为其整体开通"店铺订单模式",即使不传orderFlow,也会按店铺订单流程处理,具体请联系CJ业务对接人确认
  1. 添加购物车、购物车确认、创建母单并获取支付ID、支付、上传/更新面单信息、查询订单详情与物流轨迹等后续步骤,请根据你选择的物流方式(shopLogisticsType),参照上文"1. 平台物流模式订单同步流程"或"2. 订单同步到CJ及使用CJ物流的流程"执行。

# 3.5 与CJ商品订单流程对比

维度 店铺订单流程(orderFlow=2) CJ商品订单流程(orderFlow=1,默认)
下单所需商品信息 你自己店铺的商品/变体标识(店铺 SKU、店铺商品 ID),无需提前知道 CJ 变体 ID 必须提供 CJ 变体 ID(vid)或 CJ SKU
未关联 CJ 商品时的处理 系统自动创建店铺商品记录,本次下单可以正常继续,但不会自动建立 CJ 商品关联,订单展示在 Imported → Invalid Orders (opens new window) 商品必须已经是有效的 CJ 变体,否则无法下单
后续维护 需自行前往 My CJ - Unconnected (opens new window) 页面,找到该未关联商品并手动完成关联 无需额外维护,本身即为 CJ 商品
适用商户 希望直接用自己店铺商品体系对接、简化前期商品关联工作的商户 已完整维护 CJ 商品/变体映射关系的商户

# 3.6 时序图

sequenceDiagram
    participant 商户 as 商户系统(调用方)
    participant CJ as CJ开放平台

    商户->>CJ: 创建订单V3(POST /order/createOrderV3,orderFlow=2<br/>products.vid + storeProductId + storeProductImg)
    alt 店铺商品已关联CJ商品
        CJ-->>CJ: 直接匹配对应CJ商品下单
        CJ-->>商户: 订单展示在 Imported → Orders
    else 店铺商品尚未关联CJ商品
        CJ-->>CJ: 自动创建店铺商品记录(不会自动建立CJ商品关联),本次下单仍可正常完成
        CJ-->>商户: 订单展示在 Imported → Invalid Orders
        Note over 商户,CJ: 商户需自行前往 My CJ → Unconnected 页面<br/>找到该商品并手动完成关联(接口不会主动提示)
    end
    CJ-->>商户: 返回订单号及订单状态

    商户->>CJ: 添加购物车(POST /order/addCart)
    CJ-->>商户: 加购结果

    商户->>CJ: 购物车确认(POST /order/addCartConfirm)
    CJ-->>商户: 确认结果

    商户->>CJ: 保存提交母单(POST /order/saveGenerateParentOrder)
    CJ-->>商户: 母订单号、应付金额、支付ID

    商户->>CJ: 余额支付(POST /pay/payBalanceV2)或跳转CJ支付页完成支付
    CJ-->>商户: 支付结果

    opt 平台物流模式(shopLogisticsType=1或3)
        商户->>CJ: 上传面单信息(POST /order/uploadWaybillInfo)/ 更新面单信息(POST /order/updateWaybillInfo)
        CJ-->>商户: 面单处理结果
    end

    商户->>CJ: 订单查询(GET /order/getOrderDetail)
    CJ-->>商户: 订单详情

    商户->>CJ: 查询物流信息(GET /logistic/trackInfo)
    CJ-->>商户: 物流轨迹

以上接口路径均省略了统一前缀 https://developers.cjdropshipping.com/api2.0/{version}/shopping.../logistic,具体版本号 {version} 及完整 URL 以对应接口文档为准。

# 3.7 提前维护店铺商品与关联关系(可选)

如果你希望在下单前就把店铺商品同步到CJ、并提前建立好与CJ商品的关联关系(避免订单创建后落入 Imported → Invalid Orders (opens new window),需要事后再去 Unconnected 页面处理),可以调用以下接口,效果与登录 My CJ 手动操作等价:

  1. 保存店铺商品

    文档:保存商品(POST)

提示:把店铺商品信息提前保存到CJ系统。

  1. 批量保存店铺变体

    文档:批量保存变体(POST)

提示:把店铺商品的变体信息批量保存到CJ系统。

  1. 创建商品关联关系

    文档:创建商品关联(POST)

提示:将店铺商品(及其变体)与CJ商品(及其变体)建立关联关系,效果与登录 My CJ - Unconnected (opens new window) 页面手动关联等价。

  1. 解除商品关联关系

    文档:解除商品关联(DELETE)

提示:按店铺商品Id(可选变体Id)解除已建立的关联关系。