快工助手跨境电商知识与商机助手

创建商品

Shopee 官方资料 · Shopee Open Platform 开发者指南 · 适合开发者

stable本次发布有变化全部展示

来自 Shopee 官方资料快照 ·

打开官方原文 ↗
  1. 当前资料结构化阅读页
  2. 固定快照已留存,可追溯
  3. 官方原文可核对
查看技术与溯源信息
平台 / profile
Shopee / profile.shopee.developer_guide
语言
zh-Hans
发布版本
cn-20260909-2
标签
zhuge/sourceplatform/shopeeaudience/developercategory/api_doctopic/apitopic/api-guidelines-and-flowstopic/developer

资料正文

§1 创建商品

当您获取到商品基础数据后,就可以开始创建商品。

#

§2 1. 上传媒体文件

商品的图片和视频,都需要预先存储在Shopee的媒体资料库中。所以您需要先调用mediaspace相关的接口上传。

#

§3 1.1 上传图片

1.1 上传图片

接口:v2.media_space.upload_image

每个商品都必须有商品图片,另外我们也支持商品描述中添加图片。其中商品图片文件需满足下列要求:

  • 图片大小:最大2MB。
  • 图片格式:​​JPG, JPEG, PNG。

请注意

  • v2.media_space.upload_image接口我们只支持图片文件流上传,不支持url的方式上传图片。当图片上传成功后,您将会获得各个地区可访问的Shopee图片url和一个唯一的image_id,我们建议您访问所在地区的Shopee图片url。创建商品和更新商品的图片信息都需要使用image_id。
  • 如果您上传是商品图片,请求参数scene应为normal;如果您上传的是商品描述图片,请求参数scene应为desc,因为商品图片我们会处理成正方形图片,描述图片我们将不会处理。
#

§4 1.2 上传视频

1.2 上传视频

商品视频是可选的,我们支持下列要求的视频文件:

  • 视频大小:最大30MB
  • 视频时长:10s~60s
  • 视频格式:mp4
  • 视频像素要求:像素宽高不超过1280px * 1280px

如果您的视频文件超过4M,您需要将视频文件进行分片,例如一个10MB的视频,您需要分成4M,4M,2M一共三个分片,因为每个分片不能大于4M。

上传商品视频一共分为四个步骤

  • 第一步:调用v2.media_space.init_video_upload接口。创建视频上传任务,获取上传凭证video_upload_id。请注意,不管您的视频是否有分片,file_md5需要上传的是完整视频文件的md5值,file_size需要上传的是完整视频文件的视频大小。

  • 第二步:调用v2.media_space.upload_video_part接口。上传视频分片,part_seq参数表示分片序列号,第一个分片part_seq=0,第二个分片part_seq=1,以此类推。part_content参数表示分片文件。请将所有的分片都上传完成。

  • 第三步:调用v2.media_space.complete_video_upload接口。视频转码,当您调用这个接口时,Shopee将会对您上传的所有视频分片文件进行转码。​​part_seq_list参数需要您上传所有分片的序列号,例如您上传了2个分片,则part_seq_list为[0,1]。upload_cost将上传您通过 upload_video_part api 上传视频文件所用的时间,以毫秒为单位, 用于视频上传性能跟踪目的。

  • 第四步:调用v2.media_space.get_video_upload_result接口。获取视频转码结果。因为视频转码需要一定的时间,您可以通过轮询v2.media_space.get_video_upload_result接口或者订阅Video upload push获取结果。只有当返回的status为SUCCEEDED时,您才能获取到各个市场可访问的Shopee视频url和视频封面图url,且此时的video_upload_id才可以用作创建或者更新商品提交的视频信息。

上传图片和视频后,您就可以调用v2.product.add_item接口创建商品,下面我们将讲解调用v2.product.add_item接口中需要注意的参数字段。

#

§5 2. 上传类目和类目属性

#

§6 2.1 上传类目

2.1 上传类目

商品必须上传类目(category_id)。您只能选择类目树中最后一级的类目ID进行上传商品,否则接口将会返回Invaild category id的报错。

#

§7 2.2 上传属性

2.2 上传属性

商品必须上传必填的属性(attribute)。您可以通过文章《商品创建准备》了解到各种属性类型。下面我们将讲解各种属性类型在v2.product.add_item接口中如何上传。

上传“input_type”: 1 (SINGLE_DROP_DOWN)的属性,您只能上传一个“value_id”,且此“value_id” 只能是该属性在“v2.product.get_attribute_tree” API 所返回的属性清单中的值。

范例1

"attribute_list": [
{
"attribute_id": 100036,
"attribute_value_list": [
{
"value_id": 678
}
]
}
]

上传“input_type”: 4 (MULTI_DROP_DOWN)的属性,您可以上传多个“value_id”,且这些“value_id” 只能是该属性在“v2.product.get_attribute_tree” API 所返回的属性清单中的值。

范例2

"attribute_list": [
{
"attribute_id": 100036,
"attribute_value_list": [
{
"value_id": 678
},
{
"value_id": 679
}
]
}
]

上传“input_type”: 3 (FREE_TEXT_FILED)的属性,您只能上传一个“value_id”,且您可以自行填写属性值,因此您需上传“value_id”: 0及“original_value_name” 是您自定义的值。

范例3

"attribute_list": [
{
"attribute_id": 100061,
"attribute_value_list": [
{
"value_id": 0,
"original_value_name": "customized name"
}
]
}
]

i) 如果是“input_type”: 3 (FREE_TEXT_FILED)的属性,且需要填写单位,您则需要上传“value_unit”。

(即为"input_type": 3 & "format_type": 2 (FORMAT_QUANTITATIVE_WITH_UNIT) )

范例4

"attribute_list": [
{
"attribute_id": 100061,
"attribute_value_list": [
{
"value_id": 0,
"original_value_name": "12",
"value_unit": "g"
}
]
    }
]

ii) 如果是“input_type”: 3 (FREE_TEXT_FILED)的属性,且需要填写日期类型,您则需要在"original_value_name" 参数上传时间戳。 (即为"input_type": 3 & "input_validation_type": 4 )

范例5

"attribute_list": [
{
"attribute_id": 100061,
"attribute_value_list": [
{
"value_id": 0,
"original_value_name": "1634526913"
}
]
}
]
]

针对“input_type”: 2 (SINGLE_COMBO_BOX)的属性,您只能上传一个“value_id”,此“value_id” 只能是该属性在“v2.product.get_attribute_tree” API 所返回的属性清单中的值(请参考范例1)或自定义数值(请参考范例3)。如果您还需填写单位,请参考范例4。如果需要填写日期类型,请参考范例5。

针对“input_type”: 5 (MULTI_COMBO_BOX)类型的属性,您可上传多个“value_id”,您可选择该属性在“v2.product.get_attribute_tree” API 所返回的属性清单中的值,或是您自行定义的值。

范例6

"attribute_list": [
{
"attribute_id": 100061,
"attribute_value_list": [
{
"value_id": 0,
"original_value_name": "customized name"
},
{
"value_id": 678
}
]
}
]

如果您还需要填写单位,请参考范例4。如您需要填写日期类型,请参考范例5。

总结:

  1. 任何类型的属性皆需要上传“value_id”。当上传自定义的值时,”value_id”: 0 且“original_value_name” 则为必填项目。

  2. 不论value 的资料型态为何,”original_value_name” 字段必须以字串型态上传。

  3. 当"format_type": 2且上传自定义数值时,您也必须上传"value_unit" 字段,而该单位需从“v2.product.get_attribute_tree” API 中的"attribute_unit_list"中选取

#

§8 3. 上传商品描述

*请注意,目前我们支持白名单卖家可以使用带图文的商品描述(extended_description),如何使用详细参考FAQ

#

§9 4. 上传商品价格

除了SG/MY/BR/MX/PL/AR的市场,我们支持卖家上传两位小数的价格(original_price),其他市场,只支持整数,如果卖家填写了小数,我们将会做四舍五入的处理。

#

§10 5. 上传商品库存

如果卖家没有库存仓库(目前只有白名单用户使用)则无需上传location_id字段。

#

§11 6. 上传商品发货渠道和运费

根据渠道如何计算运费,我们将渠道分为几种类型,您可以通过v2.logistics.get_channel_list接口获取fee_type,类型包括

  • SIZE_SELECTION:运费根据尺寸ID计算。
  • SIZE_INPUT:运费根据商品具体的商品尺寸计算,选择该类型渠道,商品需要上传长宽高的尺寸信息。
  • FIXED_DEFAULT_PRICE:固定运费。
  • CUSTOM_PRICE:运费可由卖家自定义。

卖家可以为商品选择多个渠道,其中

i) enabled=true 表示该商品打开此渠道,买家可选择。

ii) is_free=true 表示卖家承担运费,即产品包邮,买家无需承担运费,所有的渠道类型都支持设置包邮。

1)如果卖家选用了SIZE_SELECTION的渠道,调用v2.product.add_item接口必须上传size_id字段。size_id请通过v2.logistics.get_channel_list获取。

样例1:

"logistic_info":[

{

"sizeid":1,

"enabled":true,

"is_free":false,

"logistic_id":80101

}]

2)如果卖家选用了SIZE_INPUT的渠道,必须上传产品的重量和尺寸字段。

样例2:

"weight": 1,

"dimension":{

"package_height":11,

"package_length":11,

"package_width":11

},

"logistic_info":[

{

"enabled":true,

"is_free":false,

"logistic_id":80101

}]

3)如果卖家选用了CUSTOM_PRICE的渠道,必须上传运费字段。

样例3:

"logistic_info":[

{

"shipping_fee":23.12,

"enabled":true,

"is_free":false,

"logistic_id":80103

}]

"logistic_info":[

{

"enabled":true,

"logistic_id":80103

}]

#

§12 7. 创建变体

当您创建商品成功之后,v2.product.add_item 将会返回item_id,这是商品的唯一标识。如果您还需要定义规格,创建多个选项变体,例如商品的颜色尺寸,可以调用v2.product.init_tier_variation接口,调用成功后,我们会为每个变体创建一个model_id,作为变体的唯一标识。

场景一:商品有尺寸的规格,尺寸包含XS、S和M。我们称这种商品是1-tier variation。

您可以通过tier_index和每个option的位置做匹配,例子中,tier_index 和变体的对应关系是

tier_indexsizepricestocksku
tier_index[0]XS10010sku1
tier_index[1]S20020sku2
tier_index[2]M30030sku3

v2.product.init_tier_variation请求参数如下:

{

    "item_id": 800188562,

    "tier_variation": [

        {

            "name": "size",

            "option_list": [

                {

                    "option": "XS",

                    "image": {"image_id":"82becb4830bd2ee90ad6acf8a9dc26d7"}

                },

                {

                    "option": "S",

        "image": {"image_id":"72becb4830bd2ee90ad6acf879dc26d7"}

                },

                {

                    "option": "M",

      "image": {"image_id":"92becb4830bd2ee90ad6acf8a9dc26d7"}

                }

            ]

        }

    ],

    "model": [

        {

            "tier_index": [0],

            "original_price": 100,

            "model_sku": "sku1",

            "normal_stock": 10

        },

        {

            "tier_index": [1],

            "original_price": 200,

            "model_sku": "sku1",

            "normal_stock": 20

        },

       {

            "tier_index": [2],

            "original_price": 300,

            "model_sku": "sku3",

            "normal_stock": 30

        }

    ]

}

场景二:商品有颜色和尺寸的规格,颜色包括红色和蓝色,尺寸包含XL和L。我们称这种商品是2-tier variation。

tier_indexcolorsizepricestocksku
tier_index[0,0]RedXL10010sku1
tier_index[0,1]RedL20020sku2
tier_index[1,0]BlueXL30030sku3
tier_index[1,1]BlueL40040sku4

v2.product.init_tier_variation请求参数如下:

 {

  "item_id": 100917481,

  "tier_variation": [

    {

      "name": "color",

      "option_list": [

        {

          "image": {"image_id": "82becb4830bd2ee90ad6acf8a9dc26d7"},

          "option": "Red"

        },

        {

          "image": {"image_id": "72becb4830bd2ee90ad6acf879dc26d7"},

          "option": "Blue"

        }

      ]

    },

    {

      "name": "size",

      "option_list": [

        {

          "option": "XL"

        },

        {

          "option": "L"

        }

      ]

    }

  ],

  "model": [

     { 

      "tier_index": [0,0],

      "original_price": 100,

      "normal_stock": 10,

      "global_model_sku": "sku1"

    },

    {

     "tier_index": [0,1],

      "original_price": 200,

      "normal_stock": 20,

      "global_model_sku": "sku2"

    },

    {

      "tier_index": [1,0],

      "original_price": 300,

      "normal_stock": 30,

      "global_model_sku": "sku3"

    },

    {

     "tier_index": [1,1],

      "original_price": 400,

      "normal_stock": 40,

      "global_model_sku": "sku4"

    }

  ]

}

请注意:

1.您定义的option,我们会按顺序显示Shopee商城端,Shopee目前只支持最多两层规格。

2.您可以为每个变体定义一张图片,但是对于两层规格的商品,您只能定义第一层option,也就是例子中的尺寸定义图片,无法为第二层颜色定义图片。如果您一旦决定要定义,则所有的option都需要定义图片。图片必须通过v2.media_space.upload_image API先上传获取到image id。

3.请注意您定义的tier_index必须从0开始定义且不能溢出,否则会报错。

*4.建议您创建商品后间隔5秒后创建变体,因为我们底层创建商品数据可能存在延迟。

5.创建成功后您可以调用v2.product.get_model_list接口获取到每个tier_index对应的model id。

#