跳转到内容
返回官网

提交商品发布任务

用于技术接入:服务端调用蜂巢开放接口提交一条淘宝商品发布任务。任务先进入预处理(图片上传、生成 RPA 可用 JSON),再由已绑定该店铺的桌面助手领取并执行发品。

需开通权限 rpa_goods_publish(桌面助手发布商品)。店铺用 sellerNick(须已授权),商品正文放在 product(JSON 字符串)。不同淘宝类目的 product 字段差异较大,完整示例见下方「类目示例」链接。

使用流程

  1. 确认店铺已授权,且桌面助手已用绑定码绑定该店铺(见 获取店铺绑定码)
  2. 按目标类目组装 product JSON(参考类目示例页)。组装前/组装中通常还需要调用开放平台下列接口:
    • 上传图片到图片空间(必用):主图、详情图等须先上传到淘宝图片空间,再把返回的图片地址写入 product。见 上传图片到图片空间
    • 获取前台展示的店铺内卖家自定义商品类目(可选):若要填写 shopcat(店铺分类),可先拉取卖家自定义类目再写入。见 获取店铺自定义类目
    • 获取用户运费模板(可选):若要填写 logistics.freightTemplateName,可先拉取运费模板列表,选用与店铺后台一致的模板名称。见 获取用户运费模板
  3. 调用本接口提交任务;同一 idempotencyKey 可幂等返回已有任务
  4. 在桌面助手「查看任务」中跟踪执行;创建成功时对外状态一般为 RUNNING(预处理中)

请求说明

POST https://kf.fw199.com/gateway/rpa/publish-tasks

Content-Type:application/x-www-form-urlencoded(与开放平台其它网关接口一致,需带签名公共参数)。

公共参数

参数名类型必填说明
appidString是开放平台应用 AppId
timestampString是当前时间戳(秒)
signString是接口签名,算法与开放平台其它接口相同(见 SDK 示例)

业务参数

参数名类型必填说明
sellerNickString是已授权店铺的卖家昵称(淘宝 seller_nick)。须属于当前 appid
productIdString是业务侧商品 ID;建议与 product.productId 一致。网关会在 product 缺省时自动补齐
platformString否平台,默认 `taobao`
productString是商品发布 JSON 字符串(须为 JSON 对象)。类目相关字段因类目而异,见下方类目示例
runtimeString否运行时 JSON 对象字符串。常用:`browserMode`、`publishMode`、`dryRun`、`allowSubmit`、`saveDraft`
rulePackString否规则包 JSON(可选/内测)。留空即可
priorityString否优先级整数,越大越优先;默认 0
idempotencyKeyString否幂等键。同一 partner + key 重复提交时直接返回已有任务,不新建

product 公共字段

product 为 JSON 对象序列化后的字符串。下列字段多数类目通用;properties、skus[].attributes、以及部分扩展字段(如 colorImages、材质成分)随类目变化,请以对应类目示例为准。

字段类型说明
productIdString业务商品 ID;缺省时用表单 productId 补齐
itemNoString货号 / 商家编码(按类目需要填写)
platformString平台,缺省补 `taobao`
sellerNickString卖家昵称;缺省时用表单 sellerNick 补齐
titleString宝贝标题
shopping_titleString导购标题(部分类目如女装需要)
category.pathString[]类目级联路径,RPA 按此逐级选择类目
category.leafNameString叶子类目名称,须与 path 末级一致
main_images_1_1String[]1:1 主图 URL 列表
main_images_3_4String[]3:4 主图 URL 列表,可为空数组
description_imagesObject[]必填。详情图列表,至少 1 张;元素含 `src` / `width` / `height`(图片须已上传至淘宝图片空间)
shopcatString[]店铺分类路径文案,如 `一级>二级`
priceNumber价格(展示/默认价)
quantityNumber总库存相关数量(与 SKU stock 配合)
propertiesObject类目属性键值。不同类目必填项不同,以淘宝商家发布页带 * 号的属性为准(如适用人群、适用季节等),按发布页属性名与可选值填写。鞋类常见另含 `尺码分组`(如 `欧码(男)` / `欧码(童鞋)` / `中国码(男)` / `中国码(童鞋)` 等,以发布页为准)
skusObject[]SKU 列表;每项含 `attributes`、`price`、`stock`、`outerId` 等
logisticsObject物流服务对象;子字段见下方「logistics 字段」
afterSaleObject售后,如 `supportSevenDayReturn`

logistics 字段

product.logistics 为对象,供桌面助手在发布页填写发货时效、发货地、运费模板与重量等。文案须与店铺后台可选值一致(运费模板名、发货地省市等需在该店铺真实存在)。当 deliveryTime 为「大于48小时发货」时,须同时填写 deliveryDayAfterPay(付款后多少天发货)。

示例:

{
"logistics": {
"deliveryTimeMode": "按商品统一设置",
"deliveryTime": "大于48小时发货",
"deliveryDayAfterPay": "7",
"shippingArea": "大陆及港澳台",
"shippingType": "单一发货地",
"shippingPlace": ["湖南", "长沙"],
"extractWay": "使用物流配送",
"freightTemplateName": "测试的副本",
"weightKg": "1"
}
}
字段类型说明
deliveryTimeModeString发货时间设置方式。常用:`按商品统一设置`(按 SKU 分别设置时以店铺页选项为准)
deliveryTimeString发货时效文案,如 `48小时内发货`、`24小时内发货`、`大于48小时发货`;须与发布页可选项一致。选「大于48小时发货」时须填 `deliveryDayAfterPay`
shippingAreaString发货区域大区,如 `大陆及港澳台`
shippingTypeString发货地类型,如 `单一发货地` / `多发货地`
shippingPlaceString[]发货地级联路径,按省→市顺序,如 `["浙江","温州"]`;也可传 `/` 分隔字符串(实现侧兼容)
extractWayString提取方式,如 `使用物流配送`
freightTemplateNameString运费模板名称,须与店铺后台已创建的模板名称完全一致(如下拉中的「免邮」「TEST的副本」)
weightKgString / Number物流重量(千克)。按重量计费的运费模板通常需要;示例可用字符串 `"1"`

已支持类目示例

类目 path 说明 文档
运动鞋new → 运动休闲鞋 SKU 维度为颜色分类 + 鞋码 运动鞋 / 运动休闲鞋
女装/女士精品 → 卫衣/绒衫 含材质成分、colorImages、尺码等 女装 / 卫衣绒衫

未列出的类目:可按公共字段扩展 properties / skus,或联系开通与补充示例。

Java 示例

依赖开放平台通用签名工具(与其它网关接口相同)。Config / Utils.Sign / doHttpRequest 可参考 zeroone-opensdk。完整 product JSON 请从上方类目示例页复制后赋给 product 变量。

@Test
public void createPublishTask() throws Exception {
String apiUrl = Config.baseUrl + "/gateway/rpa/publish-tasks";
String productId = "taobao-test-cat001";
// 将下方 product 替换为类目示例页中的完整 JSON(运动鞋或卫衣等)
String product = "{ ... }";
Map<String, String> data = new HashMap<String, String>();
data.put("appid", Config.AppId);
Long timestamp = System.currentTimeMillis() / 1000;
data.put("timestamp", timestamp.toString());
data.put("sellerNick", Config.TBSellerNick);
data.put("productId", productId);
data.put("platform", "taobao");
data.put("product", product);
data.put("idempotencyKey", "rpa-publish-" + timestamp);
data.put("sign", Utils.Sign(data, Config.AppSecret));
doHttpRequest(apiUrl, data);
}

说明:

  • Config.baseUrl 生产环境一般为 https://kf.fw199.com
  • product 与表单字段 productId / sellerNick 建议保持一致;网关也会在 JSON 缺省时自动补齐
  • 成功时响应 data.taskId 为任务 ID

返回说明

统一结构:code / message / data。code = 0 表示成功。

成功示例

{
"code": 0,
"message": "success",
"data": {
"taskId": "task_a1b2c3d4e5f6789012345678abcdef01",
"status": "RUNNING",
"platform": "taobao",
"sellerNick": "示例店铺",
"productId": "taobao-test-cat001"
}
}

data 字段

字段类型说明
taskIdString任务 ID,后续查询与桌面端领取均以此为准
statusString对外状态。新建任务通常为 `RUNNING`(含预处理阶段);幂等命中时返回该任务当前对外状态
platformString平台
sellerNickString卖家昵称
productIdString业务商品 ID

常见错误

code说明
100应用 appid 不能为空
102查询合作伙伴出错
105签名失败
其它权限码未开通 `rpa_goods_publish` 时鉴权失败(与开放平台权限校验一致)
400sellerNick / productId 缺失;或 product / runtime / rulePack 不是合法 JSON 对象
40301SHOP_NOT_AUTHORIZED:店铺未授权或不属于当前应用
500创建或保存任务失败

注意事项

  • 提交前请确保 sellerNick 对应店铺已完成授权,且商家侧桌面助手已绑定该店铺,否则任务无法被领取。
  • description_images(详情图)为必填,请先通过图片空间上传后再写入 URL。
  • properties 须按目标类目在淘宝发布页的属性填写;带 * 为必填,属性名与可选值须与发布页一致(含鞋类 尺码分组 等)。
  • 当物流发货时效选择「大于48小时发货」时,务必填写 logistics.deliveryDayAfterPay。
  • idempotencyKey 建议业务侧按「店铺 + 商品 + 版本」生成,避免重复灌入相同任务。
  • product 体积可能较大,请注意网关与客户端超时;图片请使用可公网访问的 URL。
  • SDK 与签名示例见:https://github.com/CheeliAI/zeroone-opensdk
  • 开发者控制台:https://console.fw199.com