| 环境 | Base URL |
|---|---|
| 测试环境 | 由 Popecho 提供,例如 https://opentest.popecho.art/ |
| 正式环境 | 由 Popecho 提供,例如 https://open.popecho.art/ |
7010。第三方只能调用平台提供的 HTTPS 网关地址,不应直接访问内部服务端口。ApiKey 和 ApiSecret。调用接口时放入请求头:ApiSecret 写入前端代码或公开仓库。ApiKey 确定,请求体中不允许传入 merchantId。url 填入商品主图、SKU 图片或编辑器模板。files 可重复传入以批量上传图片。每次最多上传 20 张,只接受图片,单个文件最大 10MB。{
"code": 0,
"msg": "success",
"data": [
{
"bucketName": "popecho",
"fileName": "c18f4f8f.jpg",
"url": "https://popecho.art/api/file/openFile/popecho/309f17d92e86450998bed1a49e382ba1.jpg",
"coverUrl": "https://popecho.art/api/file/openFile/popecho-cover/309f17d92e86450998bed1a49e382ba1.webp"
}
]
}url;列表缩略图等场景可以使用 coverUrl。第三方自己的公网图片 URL 不会自动转存,正式提交商品前应先调用本接口上传。url 配置到商户资料的 logoUrl,商城商户聚合页会展示该图片。externalProductId 时创建商品;再次提交相同 externalProductId 时更新原商品。该字段应使用商户系统内稳定且唯一的商品编号。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
externalProductId | string | 是 | 商户侧商品唯一编号,最长 128 字符 |
product | object | 是 | 商品主体,结构与 Madbuz 商品保存结构一致 |
product.spu | object | 是 | SPU 基础信息 |
product.skus | array | 是 | SKU 列表,至少一项 |
product.skuAttributeValues | array | 否 | SKU 与销售属性值的关联 |
product.spuLadderPrices | array | 否 | SPU 阶梯价 |
product.attributeJson | array | 否 | 商品销售属性定义 |
editorTemplateJson | string | 否 | 编辑器导出的原始 JSON 字符串 |
spu.id、spu.spuCode、spu.saleable、spu.verifyStatus、spu.custom、sku.id、sku.spuId 等平台字段不会用于绕过平台规则。新商品的内部编号由平台生成;spu.custom 由平台强制设置为 2,表示商户成品商品。{
"externalProductId": "IP-PRODUCT-10001",
"product": {
"spu": {
"spuName": "IP 联名定制帆布袋",
"slug": "ip-custom-canvas-bag",
"subTitle": "上传图片,定制专属帆布袋",
"categoryId": 1001,
"brandId": 2001,
"mainImage": [
"https://popecho.art/api/file/openFile/popecho/309f17d92e86450998bed1a49e382ba1.jpg",
"https://popecho.art/api/file/openFile/popecho-cover/309f17d92e86450998bed1a49e382ba1.webp"
],
"price": 19.90,
"discount": 1.00,
"description": "商品简介",
"detailHtml": "<p>商品详情</p>",
"weight": 0.25,
"volume": 0.001,
"minOrderQty": 1,
"ladderPriceSupport": 1
},
"skus": [
{
"skuName": "白色 / 标准款",
"price": 19.90,
"costPrice": 10.00,
"marketPrice": 29.90,
"stock": 9999,
"lowStock": 10,
"mainImage": "https://cdn.example.com/products/10001/white.jpg",
"enabled": 1,
"weight": "0.25"
}
],
"attributeJson": [
{
"attributeId": 10,
"attributeName": "颜色",
"attributeValueId": "101",
"attributeValueName": "白色",
"valueText": "白色"
}
],
"skuAttributeValues": [
{
"attributeId": 10,
"attributeValueId": 101,
"valueText": "白色"
}
],
"spuLadderPrices": [
{
"minQuantity": 1,
"maxQuantity": 9,
"price": 19.90,
"discount": 1.00
},
{
"minQuantity": 10,
"maxQuantity": 49,
"price": 17.90,
"discount": 0.90
},
{
"minQuantity": 50,
"maxQuantity": null,
"price": 15.90,
"discount": 0.80
}
]
},
"editorTemplateJson": "{\"schemaVersion\":\"1.0\",\"surfaces\":[],\"slots\":[]}"
}editorTemplateJson 当前按字符串原样保存。商户没有编辑器模板时,可以不传或传 null。模板的图片替换与渲染规则由后续编辑器协议约定。{
"code": 0,
"msg": "success",
"data": {
"relationId": 123,
"spuId": 456,
"externalProductId": "IP-PRODUCT-10001",
"auditStatus": 0
}
}| 字段 | 说明 |
|---|---|
relationId | 商户商品关联记录 ID,可提供给平台排查问题 |
spuId | Popehco平台商品 ID |
externalProductId | 商户商品编号 |
auditStatus | 0 待审核、1 审核通过、2 审核拒绝 |
popehco 校验 ApiKey、ApiSecret 和商户状态。popehco 根据凭证得到可信的 merchantId,调用 popehco-product 内部接口。popehco 将请求转换为平台完整商品模型,通过统一完整保存流程一次性保存 SPU、SKU、销售属性、阶梯价和商户商品关联。spu.custom 用于区分消费者下单流程:spu.custom | 下单模式 |
|---|---|
0 | 编辑器定制商品,需要消费者完成设计 |
1 | 人工询价商品,可提交参考图和需求 |
2 | 商户成品商品,只选择 SKU 和数量,直接走普通购物车及支付 |
2。普通购物车接口中的 productInfo、originalPictureInfo 和 resourceInfo 对该模式均非必填。spu.mainImage 中第一张有效图片。请确保商品至少提供一张主图,并将希望展示给消费者的图片放在数组第一位。| 场景 | 说明 |
|---|---|
| 缺少请求头 | 未传 X-Api-Key 或 X-Api-Secret |
| 凭证错误 | ApiKey 不存在、商户被禁用或 ApiSecret 不正确 |
| 缺少商品编号 | externalProductId 为空 |
| 缺少 SPU | product.spu 为空 |
| 缺少 SKU | product.skus 为空,商品至少需要一个 SKU |
| 字段不合法 | 分类、品牌、属性或图片等数据不符合平台规则 |
| 内部服务失败 | 商品服务不可用或商品数据保存失败 |
externalProductId 和响应内容,但必须对 X-Api-Secret 脱敏。