张庆交接
Tiktok在线商品文档
Tiktok平台报错
Thisshop在线业务文档
Tiktok业务文档
TIKTOK接口整理
Lazada广州基础信息改造方案
Lazada视频管理接口梳理
速卖通全托管
全托管报错整理
Lazada交接
Lazada coding
temu刊登
本文档使用 MrDoc 发布
-
+
首页
Thisshop在线业务文档
Thisshop官方文档地址:https://help.thisshop.com/article/detail/qdevmroc 一、业务线 Thisshop对接的逻辑与其他平台类似,但业务逻辑与接口调用都是比较简单的,没有全球站点和多站点的业务,接口调用也都是采用简单的http调用,需要注意的是在调用接口时需要生成Sign和Token。Sign需要根据传入除去Sign本身的所有参数进行排序拼接进行MD5加密而生成的加密字符串。Token需要使用分配的appId和appSecret调用平台接口而获得(线上是以生成好存放在数据库,我们不用管)。平台在调用接口时,不是根据路径进行区分,而是根据参数Method来区分调用的是哪个接口。因此平台的接口路径大部分都是一样的。 1. 刊登商品 刊登商品就是调用平台的创建商品接口Method(thisshop.goods.add),在创建商品之前需要提前准备好基础信息参数categoryid、brandId、costTemplateId等等。 - 刊登商品流程:上传商品的信息--->组装好数据--->调用平台接口 - 创建商品数据注意事项:提前调用基础信息接口获取基础数据,组装好数据需要上传图片的地方需传入可以访问的图片地址连接,先把链接地址对应的图片下载到本地临时目录,调用平台图片上传接口把临时文件上传到平台中,平台会返回一个url地址,替换url地址连接到创建商品的图片字段中。这样创建商品所需的数据就组装完成。 - SKU变体:由于本平台的SKU变体字段相对简单,字段较少并且字段与主商品的字段大部分不相同也没有与主商品关联的字段,因此在刊登商品时,把SKU做为主商品的一个字段进行上传。 2. 在线商品信息 在线商品信息主要包含同步店铺商品、同步单个商品等异步接口,还包含编辑商品、商品上下架、商品删除、商品停售、修改商品库存、修改商品价格等直调接口。 - 同步店铺商品:从thisshop平台拉取用户对应店铺的所有数据,保存到数据库并推送给ERP系统供用户操作管理。 同步店铺商品流程:需要拉取商品的店铺 —>根据当前的店铺信息调用平台的查询列表接口获取店铺的所有商品信息—>调用同步单个商品接口—>将拉取店铺的状态信息推送给ERP系统进行展示。 店铺商品拉取时调用平台的接口传入thisshop.item.list.get Method,跟其他平台一样该平台也支持增量分页拉取,,因此在第一次全量拉取完成后,后续再调用该接口时,可以传入上次全量拉取时间,进行增量拉取。 - 同步单个商品:获取某个商品的详细信息。 拉取单个商品的总流程:需要拉取的商品Id—>根据当前店铺信息调用平台的获取商品详情接口—>将数据存入数据库并推送给ERP系统进行展示 单个商品拉取是调用平台接口传入Method thisshop.goods.details,该接口需要传入平台的公共参数和商品spuId即可。 - 编辑商品:调用平台的Method thisshop.goods.update方法,按照平台规则传入需要修改的数据。 - 商品上下架:调用平台的Method thisshop.goods.publish.update方法,传入1代表上架,传入2代表下架 - 修改价格:调用平台的Method thisshop.goods.sku.price.update方法,修改的是SPU下面的SKU价格,SKU可以传入多个进行批量修改 - 修改库存:调用平台的Method thisshop.erp.stock.update方法,修改某个SPU下 SKU的库存数。 - 商品停售:调用平台的Method thisshop.goods.sale.status.set方法,是一个批量接口,可以传入多个SKU进行停售。 - 商品删除:调用Method thisshop.goods.delete方法,是批量删除接口,传入一个SPU集合进行删除,但是删除的SPU必须要先下架后才能操作。 3. 基础信息 基础信息主要包含同步分类、同步分类属性、同步品牌、同步运费模板等接口,同其他平台一样,thisshop基础信息也是刊登商品的前置条件。因此在刊登前要完整的拉取基础信息。 - 同步分类 从平台获取到所有分类,保存到Mongo库,并推送给ERP进行管理维护 调用平台的Method(thisshop.goods.category.get)接口,获取到分类,分类信息总共有三级,在调取接口时需要先获取最顶级分类传入parentid 0,然后不断传入父级分类id获取二、三级分。 需要注意的是,获取分类时需要传入queryType,查询类型:1 商城全类目 ,2 商家授权分类查询,这里只需要传入2,获取商家授权的分类就行。 - 同步分类属性 调用平台的Method(thisshop.property.list.get),获取分类对应的属性信息.存库并推给ERP。 其中属性信息分为销售规格和类目规格,在刊登时销售属性是在sku的规格列表中填,类目规格则是放在主商品的层级。主要在调平台接口获取规格时,需要传入3级分类的id。 - 同步品牌 调用平台的Method(thisshop.category.brand.get),传入三级分类的id,获取该分类下的品牌存库并推送给ERP - 同步运费模板 调用平台的Method(thisshop.ship.model.list.get),获取运费模板列表,在刊登时需要选择对应的运费模板,模板分为店铺模板和单品模板,目前平台只支持拉取单品模板。 二、代码线 1. 刊登商品 涉及项目: mdc-open-api-publish(刊登对外接口总控程序)(香港) mps-product-allproducer(定时任务总控程序)(定时刊登)(香港) mps-thisshop-product(thisshop核心项目)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) - 具体流程(调用平台接口需要遵循接口QPS规则,如触发QPS需要重新丢入MQ队列等待下次执行) 首先由 mdc-open-api-publish 项目中的/publish/thisshop/addPublish 接口接收刊登任务 将收到的商品数据存入刊登任务库并将任务id和店铺信息丢入MQ队列,并从接口返回任务id。 mps-thisshop-product 项目中的刊登消费者监听到消息后,开始进行刊登,首先进行重复消息校验,通过后根据传入的id从刊登任务库拿到对应的刊登任务,进行数据组装,替换传入的图片地址,调用刊登接口上传刊登数据。刊登完成后,把刊登结果写入对应的刊登成功或失败表并更新刊登任务表中的状态和结果,最后把刊登结果推送给PHP端。 2. 在线商品 涉及项目: mdc-open-api-product(在线商品对外接口总控程序)(香港) mps-thisshop-product(thisshop核心项目)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) - 同步店铺商品 具体流程:thisshop同步店铺商品流程跟其他平台的流程类似,都是由mdc-open-api-product 项目作为请求的入口,请求/product/thisshop/syncShopProduct接口,接到请求后判断中间表状态,判断是否存在上次全量同步时间,将组装好的消息丢人到队列当中。 mdc-product-thisshop项目的消费者在监听到队列中在消息后,开始判判断传过来的全量同步时间是否为空,为空全量拉取,,不为空则进行增量拉取,并加入分页参数调取平台接口,获取到店铺商品后将每条商品丢入到同步单个商品对列当中。推送完单个商品后,开始向PHP推送店铺同步状态并修改中间状态表为对应的状态。 - 同步单个商品 同步单个商品有两个入口,第一个入口是通过mdc-open-api-product 项目的/product/thisshop/syncProduct接口传入SpuId向同步单个商品对列中丢入消息 mdc-product-thisshop项目的消费者在监听到队列中在消息后,带着参数去请求平台接口获取商品详细消息,拿到数据后判断该商品的删除状态bolDelete,若是删除状态放入到商品删除队列中推送给PHP,若是mongo库中有该条商品则删除,若没有不做任何处理,商品状态为非删除状态则与mongo中的的数据进行比对,若不存在则插入该条商品信息,存在则更新此商品数据,最后向php端推送详细的商品信息。 第二个入口则为同步店铺商品消费者在消费时循环遍历放入到拉取商品信息的队列。后面的消费逻辑同第一个入口的一样。 - 库存、价格编辑、商品删除、上下架、停售等 入口是mdc-open-api-product 项目中的/product/tiktok/updateStock、/product/tiktok/updatePrice、/product/tiktok/productDelete、/product/tiktok/productOnOff、/product/tiktok/productStopSale接口,都是通过fegin的方式请求mdc-product-tiktok项目的接口。 在收到请求后,包装请求参数,直接调用第三方平台修改库存和价格。 3. 基础信息 涉及项目: mdc-open-api-information(基础信息对外接口总控程序)(香港) mps-thisshop-meta(thisshop基础信息核心项目)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) - 同步分类 同其他平台一样基础信息也都是异步监听消息的方式进行调用,首先调用mdc-open-api-information项目的/information/thisshop/syncCategory接口,向同步分类队列中生产一条同步的分类的消息。 mps-thisshop-meta项目的消费者监听到队列的消息后开始同步分类,首先判断消息是否重复消费,接着先传入顶级父类id获取一级分类,在根据顶级父类id去拉取对应的二、三级分类,获取到的数据先与之前数据库的数据进行对比,筛选出不存在的分类信息放入到删除分类队列中推送给php,将没删除的分类信息全部存入到tidb和mongo库中并放入到分类信息队列中推送给php,同时循环所有三级分类id并放入到同步分类属性和同步品牌的队列中。开始同步不同品牌和分类属性 - 同步分类属性 分类属性的调用方有两个,第一个是open-api-information接口作为入口 第二个是在同步分类时,不断生产同步分类属性的消息,消费者在监听到队列中的消息时先判断消息是否重复消费,然后根据三级分类id先删除数据库中的数据,然后调用平台获取对应分类的销售规格和分类规格存入到tidb和mongo库中并将数据放入到rabbitMq队列中推送给php。并筛选出不存在的分类属性信息放入到rabbitMq的删除队列推送给php。 - 同步分类品牌信息 同分类属性信息一样,同步品牌也是两个入口,都是从同步分类时放入的消息到同步品牌队列中,消费者在监听到消息后判断消息是否重复消费,传入三级分类id调用平台接口,获取到数据后先删除数据库中原有的对应分类的数据,然后将数据保存到Mongo和Tidb中,并将数据放入到RabbitMq队列中推送给php,同时筛选出不存在的品牌信息推送给php。 - 同步运费模板信息 首先调用mdc-open-api-information项目的/information/thisshop/syncFreightTemplate接口,向同步运费模板队列中生产一条同步的分类的消息。 mps-thisshop-meta项目的消费者监听到队列的消息后首先判断消息是否重复消费,接着开始调用平台接口无需传入参数,获取数据后先删除Mongo和Tidb库中原有的数据,然后将平台获取的接口保存到Mongo和Tidb库中。并放入到RabbitMq队列中进行推送。接着筛选出平台不存在的模板放入到RabbitMq 删除队列中。同步模板结束。 三、数据库表设计 1. 商品刊登(mps_thisshop_task) | 字段名 | 类型 | 注释 | | --- | --- | --- | | id | bigint(20) | 主键 | | app_id | bigint(20) | appid | | shop_id | bigint(20) | 店铺id | | item_name | varchar(256) | 商品名称 | | item_title | varchar(512) | 商品标题 | | category_id | bigint(20) | 分类编号 | | brand_id | varchar(32) | 品牌编号 | | brand_name | varchar(256) | 品牌名称 | | cost_template_id | varchar(32) | 运费模板 | | pc_details | varchar(1000) | pc端商品描述 | | mobile_details | text | mobile端商品描述 | | video_url | varchar(256) | 商品视频url | | typ_publish | tinyint(4) | sku上架状态,1-上下,2-下架 | | image_url | varchar(256) | SPU 主图 | | sku_list | text | sku对象列表 | | media_list | text | 商品展示图 | | category_attrs | text | 分类属性 | | flag | tinyint(4) | 刊登状态,1:待刊登 2:刊登中 6:刊登失败 7:部分失败 9:刊登成功 | | result | text | 刊登结果 | | product_id | varchar(32) | 刊登成功回写商品id | | create_time | datetime | 创建时间 | | update_time | datetime | 最后修改时间 | 2. 基础信息 - 同步分类(mps_thisshop_category) | 字段名 | 类型 | 注释 | | --- | --- | --- | | id | bigint(20) | 主键 | | shop_id | bigint(20) | 店铺id | | app_id | bigint(20) | appId | | category_id | varchar(255) | 类目id | | parent_id | varchar(255) | 父ID | | txt_name_local | varchar(255) | 商品分类本地名称 | | txt_name_en | varchar(255) | 商品分类英文名称 | | is_leaf | tinyint(4) | 是否为叶子节点: 1是 2否(平台拉取结果为y/n) | | level | tinyint(4) | 层级(1一级 2二级 3三级) | | flag | tinyint(4) | 1.正常;2.待删除 | | create_time | datetime | 创建时间 | | update_time | datetime | 更新时间 | | category_id_path | varchar(255) | 类目id路径 | | name_zh | varchar(255) | 类目翻译中文名称 | | name_en_path | varchar(255) | 类目英文名称路径 | | name_zh_path | varchar(255) | 类目中文名称路径 | | name_local_path | varchar(255) | 类目本地名称路径 | - 分类属性(mps_thisshop_category_attribute) | 列名 | 列名 | 列名 | | --- | --- | --- | | id | bigint(20) | 主键id | | shop_id | bigint(20) | 店铺id | | app_id | bigint(20) | appId | | category_id | varchar(255) | 类目id | | attr_id | varchar(255) | 属性ID | | name_local | varchar(255) | 属性本地名称 | | name_en | varchar(255) | 属性英文名称 | | type_attribute | varchar(255) | 商品属性类型 | | attr_unit_local | varchar(255) | 属性单位本地名称 | | attr_unit_en | varchar(255) | 属性单位英文名称 | | is_flag_standard | tinyint(4) | 是否为销售属性 1销售属性 2规格属性 | | must_flag | tinyint(4) | 是否为必填属性 1是 2否(平台拉取结果为y/n) | | flg_attr_image | tinyint(4) | 是否需要规格图 1是 2否(平台拉取结果为y/n) | | flg_choose | tinyint(4) | 是否多选 1是 2否(平台拉取结果为y/n) | | attr_check_type | varchar(255) | 校验类型 | | attr_group | varchar(255) | 商品属性分组 | | bol_details_display | varchar(255) | bol_details_display | | attribute_value_list | text | 属性值 | | flag | tinyint(4) | 1.正常;2.待删除 | | create_time | datetime | 创建时间 | | update_time | datetime | 更新时间 | - 品牌(mps_thisshop_brand) | 列名 | 列名 | 列名 | | --- | --- | --- | | id | bigint(20) | 主键id | | shop_id | bigint(20) | 店铺id | | app_id | bigint(20) | appId | | category_id | varchar(255) | 类目id | | brand_id | varchar(255) | 品牌ID | | name_local | varchar(255) | 品牌本地名称 | | name_en | varchar(255) | 品牌英文名称 | | pc_image_no | varchar(1000) | 品牌pc图片链接 | | mobile_image_no | varchar(1000) | 品牌mobile图片链接 | | brand_url | varchar(1000) | 品牌详情链接 | | flag | tinyint(4) | 1.正常;2.待删除 | | create_time | datetime | 创建时间 | | update_time | datetime | 更新时间 | - 运费模板(mps_thisshop_freight_template) | 列名 | 列名 | 列名 | | --- | --- | --- | | id | bigint(20) | 主键 | | shop_id | bigint(20) | 店铺id | | app_id | bigint(20) | app_id | | model_id | varchar(255) | 模板编号 | | model_name | varchar(255) | 模板名称 | | model_type | tinyint(4) | 模板类型 1、店铺2、单品 | | flag | tinyint(4) | 1.正常;2.待删除 | | create_time | datetime | 创建时间 | | update_time | datetime | 更新时间 | 四、流程图 1. 商品刊登   链接地址:https://www.processon.com/view/link/6316ba0963768972fee0375c 2. 同步商品 - 同步店铺商品   - 同步单个商品   链接地址: https://www.processon.com/view/link/63170548079129647b7276a0 、 3.基础信息 - 同步分类  - 同步分类属性  - 同步品牌  - 同步运费模板 
zhangqing
2022年9月14日 20:53
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码