# 订单同步流程

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

  1. 平台物流模式订单同步流程——由 CJ 仓库统一操作发货,面单由你自己上传;
  2. 使用 CJ 物流的订单同步流程——由 CJ 自有物流渠道直接发货,无需上传面单;
  3. 店铺商品订单流程——使用你自己店铺的商品标识下单(orderFlow=2,仅支持创建订单 V3)。它只改变第 1 步「创建订单」中商品的识别方式,后续步骤按你选择的物流方式(shopLogisticsType)走流程 1 或流程 2。

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

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

适用于使用 CJ 仓库进行发货、但面单由自己上传的商户。需要指定 shopLogisticsType=1 或 3,以及仓库 storageId;选择该模式后,仓库会在收到你上传的面单后才开始作业。

  1. 按商品查询库存

    文档:按商品查询库存

  2. 查询仓库信息

    文档:查询仓库信息

  3. 创建订单

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

    提示:

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

    文档:添加订单到购物车

    提示:一次调用即可批量添加订单到购物车。

  5. 购物车订单确认

    文档:购物车订单确认

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

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

  7. 支付

    文档:支付

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

  8. 上传面单与发货信息

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

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

  9. 更新面单与发货信息(可选)

    文档:更新面单与发货信息

    提示:只有订单状态为 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 自有物流渠道发货、无需自行上传面单的商户——与流程 1 的关键区别是不需要上传面单。需要将 shopLogisticsType 设为 2,storageId 留空,并指定物流方式 logisticName;支付完成后由 CJ 安排发货。

  1. 创建订单

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

    提示:

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

    文档:添加订单到购物车

    提示:一次调用即可批量添加订单到购物车。

  3. 购物车订单确认

    文档:购物车订单确认

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

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

  5. 支付

    文档:支付

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

  6. 等待 CJ 处理订单发货

  7. 查询订单详情

    文档:查询订单详情

    提示:可通过返回的 orderStatus 判断 CJ 是否已发货。

  8. 查询物流轨迹

    文档:查询物流轨迹

# 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:你的店铺商品/变体标识(该流程下必传;sku 在此流程下一般不使用,见 3.3 节)
    • 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

    提示:

    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 业务对接人确认
  2. 添加订单到购物车、购物车订单确认、创建母单并获取支付 ID、支付、上传/更新面单信息、查询订单详情与物流轨迹等后续步骤,请根据你选择的物流方式(shopLogisticsType),参照上文"1. 平台物流模式订单同步流程"或"2. 使用 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: 创建母单并获取支付ID(POST /order/saveGenerateParentOrder)
    CJ-->>商户: 母订单号、应付金额、支付ID

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

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

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

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

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

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

  1. 保存店铺商品

    文档:保存商品(POST)

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

  2. 批量保存店铺变体

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

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

  3. 创建商品关联关系

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

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

  4. 解除商品关联关系

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

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