张庆交接
Tiktok在线商品文档
Tiktok平台报错
Thisshop在线业务文档
Tiktok业务文档
TIKTOK接口整理
Lazada广州基础信息改造方案
Lazada视频管理接口梳理
速卖通全托管
全托管报错整理
Lazada交接
Lazada coding
temu刊登
本文档使用 MrDoc 发布
-
+
首页
Tiktok业务文档
Tiktok官方地址:https://developers.tiktok-shops.com/documents/document 一、业务线 Tiktok平台刊登模块对接主要包含了在线商品、基础信息、商品刊登等接口。其中在线商品接口在前面已经开发完成这里就不在做赘述,主要说说基础信息拉取以及商品刊登接口的对接。该平台的基础信息和刊登与之前的平台都有点不同,因为该平台为多站点平台并且分为本地接口(product)和全球接口(gloab product),在开发时需要开发两套接口来供其调用。 1. 商品刊登 商品刊登分为本地商品刊登和全球商品刊登。本地商品刊登是调用平台/api/products接口,全球商品刊登调用/api/product/global_products接口。 - 图片上传:访问平台api/products/upload_imgs接口。该平台的图片上传接口,需要先将一个可以访问的url图片地址下载成字节流,然后将字节流通过BASE64的方式编译成字符串。然后调用图片上传接口,上传成功后,图片会返回一个url地址,该地址需要作为刊登商品接口的参数。 - 刊登商品流程:获取基础信息—>上传商品图片—>组装好需要刊登的数据—>调用平台接口 - 刊登商品准备工作:在刊登商品之前首先需要先获取到分类、分类属性、分类规则、分类品牌、仓库列表等基础信息以及调用图片上传接口上传商品的SPU主图,拿到上传接口返回的url地址。将获取到的这些基础信息和图片url地址作为参数调用刊登商品接口。 - SKU变体:由于本平台的SKU变体字段相对简单,字段较少并且字段与主商品的字段大部分不相同也没有与主商品关联的字段,因此在刊登商品时,把SKU做为主商品的一个字段进行上传。 - 全球商品刊登:全球商品作为整个店铺的商品库,只有全球店铺权限的才能 上传全球商品,全球商品不能展示到买家方,卖家可以对全球商品做一系列维护。 - 全球商品刊登与本地商品刊登的区别:流程逻辑和上传的参数基本一致,但是也存在些许差异的地方 size_chart中的 id:本地刊登的是img_id仅支持输入平台提供的销售属性ID gloab刊登的参数是id :需要先使用接口UploadImg API上传图片,然后获取对应的ID和url,然后填写这个字段 gloab刊登参数中没有brand_id、delivery_service_ids、is_cod_open字段 在sku中gloab只有available_stock字段。 而本地刊登stock_infos对象 gloab刊登中original_price使用的是USD币种,本地刊登使用的是当前站点的币种。 global刊登调用接口不需要传入店铺的shop_id,而本地刊登需要传入所有的店铺认证信息。 - 全球商品发布:调用全球接口/api/product/global_products/publish。 当刊登完全球商品后,卖方可以将指定的全球商品发布到选定的子站点,传入指定的SKU以及自定义的SKU参数,完成全球商品到子站点的刊登发布。发布的过程中平台回根据参数校验的强弱性,对发布的商品进行状态的赋值,通过所有验证则发布成功,通过部分校验则状态为存草稿、未通过校验则发布失败。 - 刊登时需要注意的点: price价格的计算会根据运费和税费进行和商品的价格进行计算,如果刊登的如果入参warehouse id或者warehouse id入参为0,无法计算出运费。 2. 基础信息 基础信息与其他平台类似主要有分类、分类属性、分类品牌、分类规则以及仓库列表等信息。其中不同的是,分类和分类属性也存在全球接口,在全球刊登商品的时候需要获取全球分类和分类属性。 - 分类信息 分类信息分为全球接口和本地接口,本地接口调用/api/products/categories, 全球分类接口调用/api/product/global_products/categories,分类信息只包含两个层级,其中parent_id和is_leaf可以判定是否是叶子节点。 其中经过多个店铺测试结果分析调用本地接口使用不同店铺获取到的分类不一样,全球接口新授权的全球店铺和本地店铺数据一致,但和以前的一个店铺获取到的数据不一样。 全球店铺不同站点的全球接口数据是一样的,全球店铺不同站点的本体接口数据应该是一样但是分类名的语言不一样,分类id都一样。全球接口和本地接口的数据不一样,数量也不一样因此在设计分类信息的表时候要根据不同的店铺设计。 - 分类属性 分类属性也分为全球接口和本地接口,本地接口调用/api/products/attributes,全球接口调用/api/product/global_products/attributes。 获取分类属性时需要传入叶子分类id,因此分类属性是跟着分类走的。 - 分类品牌 分类品牌只有本地接口有,调用/api/products/brands接口,传入叶子节点的分类。 - 分类规则 类别规则也是分为全球接口、本地接口,全球接口调用/api/product/global_products/categories/rules,本地接口调用 /api/products/categories/rules。传入分类的叶子节点。分类规则是在刊登时犹如size_chart、product_certifications、is_cod_open等字段需要获取分类规则的数据。 - 获取仓库列表 仓库列表是在刊登时填写仓储信息时需要填写的仓库id,需要调用/api/logistics/get_warehouse_list接口,该接口是通用的,只有一个本地接口 - 获取订阅的交付选项 通用接口,只有一个本地接口调用/api/logistics/get_subscribed_deliveryoptions,这个主要是获取可用物流选项后台选择自定义时使用。 二、代码线 1. 刊登商品 涉及项目: mdc-open-api-publish(刊登对外接口总控程序)(香港) mps-product-allproducer(定时任务总控程序)(定时刊登)(香港) mdc-tiktok-product(tiktok核心项目)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) - 本地商品刊登 具体流程(调用平台接口需要遵循接口QPS规则,如触发QPS需要重新丢入MQ队列等待下次执行) 首先由 mdc-open-api-publish 项目中的/publish/tiktok/createProduct 接口接收刊登任务 将收到的商品数据存入刊登任务库并将任务id和店铺信息丢入MQ队列,并从接口返回任务id。 mdc-tiktok-product 项目中的刊登消费者监听到消息后,开始进行刊登,首先进行重复消息校验,然后根据站点信息效验站点正确性并根据站点获取对应的店铺的开发者账号信息接着根据传入的id从刊登任务库拿到对应的刊登任务,进行数据组装,替换传入的图片地址,调用刊登接口上传刊登数据。刊登完成后,把刊登结果写入对应的刊登成功或失败表并更新刊登任务表中的状态和结果,最后把刊登结果推送给PHP端。 - 刊登全球商品 同本地刊登一样的流程,请求的是/publish/tiktok/gloab/createGloabProduct接口,后续放入到的队列和本地刊登队列不一样。消费者监听消费的逻辑也是一样。 - 发布全球商品到站点 涉及的项目同刊登商品一致 具体流程:由 mdc-open-api-publish 项目中的/publish/tiktok/createPublish接收到请求后,把需要发布的数据存入到数据库中并返回任务id,放入到消息体中,向发布商品队列中放入该条消息。 mdc-tiktok-product 项目中的发布消费者监听到消息后,判断消息是够重复消费,接着根据发布的任务id查询数据库,并组装好数据。调用平台发布商品接口,把全球商品发布到指定的站点上。调用成功后修改任务表状态,并将结果推送给PHP 2. 基础信息 涉及项目: mdc-open-api-information(基础信息对外接口总控程序)(香港) mps-tiktok-meta(tiktok基础信息核心项目)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) - 同步本地分类 该平台的基础信息将会采用同步直调和异步消息监听的方式,异步的方式是调用mdc-open-api-information项目的/information/tiktok/syncCategory接口,向同步分类队列中生产一条同步的分类的消息。 mps-tiktok-meta项目的消费者监听到队列的消息后开始同步分类,首先判断消息是否重复消费,然后根据站点信息效验站点正确性并根据站点获取对应的店铺开发者账号信息,调用平台接口获取到当前店铺的分类。然后查询数据库当前店铺分类信息与获取到的数据数据进行对比,筛选出不存在的分类信息放入到删除分类队列中推送给php,将没删除的分类信息全部存入到tidb和mongo库中并放入到分类信息队列中推送给php,同时循环所有叶子节点分类id并放入到同步分类属性和同步品牌、同步分类规则的队列中。开始同步不同分类的品牌和分类属性信息 - 同步全球分类 调用mdc-open-api-information项目的/information/tiktok/global/syncCategory,向rocketMq队列中生产一条消息mps-tiktok-meta消费消息同本地接口的逻辑是一致的。 - 同步本地分类 同样的分为异步接口和直调接口,异步接口是调用mdc-open-api-information项目的/information/tiktok/syncCategoryAttr接口,向同步分类队列中生产一条同步的分类属性的消息,或者由上面同步分类的时候向队列中丢入一条消息。 mps-tiktok-meta项目的消费者监听到队列的消息后开始同步分类属性。具体消费的逻辑同上面的同步分类接口的基本上一样,只是不用把每个分类属性进行循环推送到其他的RocketMq队列 - 同步全球分类属性 也分为直调和异步,异步接口是调用mdc-open-api-information项目的/information/tiktok/global/syncCategoryAttr接口,向队列中丢入消息,或者由上面同步全球分类时丢入到队列的消息,消费者逻辑和本地分类属性一样。 - 同步分类品牌 分类品牌只有本地接口,无全球接口,调用mdc-open-api-information项目的/information/tiktok/syncBrand,传入分类id,向队列中生产一条消息,或者在同步分类的时候生产一条消息。mps-tiktok-meta消费者消费的逻辑和分类属性一样 - 同步本地分类规则 调用mdc-open-api-information项目的/information/tiktok/syncCategoryRule,生产一条带分类id的消息。或者在同步分类的时候生产一条同步分类规则的消息。 mps-tiktok-meta的消费逻辑同品牌一样。 - 同步全球分类规则 调用mdc-open-api-information项目的/information/tiktok/global/syncCategoryRule,向消息体中传入分类id。或者在同步全球分类的时候生产一条同步全球分类规则的消息 - 同步本地分类规则 调用mdc-open-api-information项目的/information/tiktok/syncCategoryRule。其余的逻辑跟上面的一样。 - 同步仓库列表 仓库列表信息全球和本地都是通用的接口。调用mdc-open-api-information项目的/information/tiktok/syncWarehouseList接口,逻辑跟其他基础信息基本一致。 三、数据库 1. 刊登商品(mps_tiktok_task) | 字段 | 类型 | 注释 | | --- | --- | --- | | id | bigint(20) | 主键 | | app_id | bigint(20) | appid | | company_id | bigint(20) | 企业编号 | | shop_id | bigint(20) | 店铺id | | site | varchar(32) | 刊登站点 | | product_name | varchar(255) | 商品名称 | | description | mediumtext | 商品描述 | | category_id | varchar(12) | 类目id | | brand_id | varchar(30) | 品牌id | | images | text | spu图片数组 | | warranty_period | tinyint | 保修期 | | warranty_policy | varchar(100) | 保修政策 | | package_length | int | 包装长度 | | package_width | int | 包装宽度 | | package_height | int | 包装高度 | | package_weight | varchar(10) | 包装重量 | | size_chart | varchar(1000) | 商品的尺码表 | | product_certifications | mediumtext | 商品认证 | | is_cod_open | tinyint | 是否货到付款(0 false 1 true) | | skus | mediumtext | sku列表 | | delivery_service_ids | varchar(3000) | 物流服务列表 | | product_attributes | mediumtext | 商品属性列表 | | exemption_of_identifier_code | text | 免税的标识符代码 | | flag | tinyint | 刊登状态,1:待刊登 2:刊登中 6:刊登失败 7:部分失败 9:刊登成功 | | result | text | 刊登结果 | | product_id | varchar(32) | 刊登成功回写商品id | | create_time | datetime | 创建时间 | | update_time | datetime | 最后修改时间 | | is_global | tinyint | 是否全球商品(0,否 1是) | - 发布商品到站点(mps_tiktok_publish_task) | 字段 | 类型 | 蛛丝 | | --- | --- | --- | | id | bigint | 主键 | | app_id | bigint | appid | | shop_id | bigint | 店铺id | | sites | varchar(255) | 站点列表 | | global_product_id | varchar(32) | 全球商品id | | publishable_shops | mediumtext | 发布到站点的内容列表 | | flag | tinyint | 刊登状态,1:待刊登 2:刊登中 6:刊登失败 7:部分失败 9:刊登成功 | | result | text | 刊登结果 | | global_task_id | bigint | 关联的全球刊登任务id | | create_time | datetime | 创建时间 | | update_time | datetime | 最后修改时间 | 2. 基础信息 - 分类信息(mps_tiktok_category) | 字段 | 类型 | 注释 | | --- | --- | --- | | id | bigint | 主键 | | shop_id | bigint | 店铺id | | category_id | varchar(12) | 类目编号 | | is_global | tinyint | 1、global;2、非global | | parent_id | varchar(12) | 类目父编号 | | local_display_name | varchar(128) | 本地显示名称 | | local_display_name_zh | varchar(1000) | 本地显示名称(中文) | | category_name | varchar(128) | 分类名(全球接口) | | category_name_zh | varchar(128) | 分类名中文(全球接口) | | levels | tinyint | 类目等级。例如:1代表一级类目 | | is_leaf | tinyint | 1、叶子结点;2、非叶子结点 | | site | varchar(20) | 站点 | | flag | tinyint | 1、正常;2、删除 | | category_hash | varchar(255) | 类目hash | | create_time | datetime | 创建时间 | | update_time | datetime | 最后修改时间 |
zhangqing
2022年11月28日 18:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码