张庆交接
Tiktok在线商品文档
Tiktok平台报错
Thisshop在线业务文档
Tiktok业务文档
TIKTOK接口整理
Lazada广州基础信息改造方案
Lazada视频管理接口梳理
速卖通全托管
全托管报错整理
Lazada交接
Lazada coding
temu刊登
本文档使用 MrDoc 发布
-
+
首页
Lazada交接
## 文档地址 https://open.lazada.com/apps/doc/api?path=%2Fproduct%2Fcreate 文档中主要使用seller API Product API 以及 Corss Boader Product API 下面的接口文档。 seller API下主要是卖家相关的接口 Product API 商品相关的接口 Corss Boader Product API 发布六合一商品相关的接口 ## 平台接口调用 项目中调用平台接口的地方大部分都是使用的平台自带的sdk调用,只有同步店铺商品、同步详情是使用自己封装的工具类进行调用 平台是个多站点平台,不同的站点有不同的域名,因此在项目调用时都会拿着对应的站点去获取到对应的域名。在传入对应的access_token即可,其他公共参数例如sign_method,timestamp等已经封装在自带的sdk里面了。 比较重要的是需要通过`LazadaClientEnum` 这个枚举类返回对应站点的域名地址的LazopClient客户端,在枚举类内部也已经把app_key和APP_SECRET 封装到返回的客服端了,  因此在使用时直接用这个枚举类传入站点或得客户端即可  ## 基础信息 ### - 业务线 lazada基础信息经历过变动,变动的内容是增加了广州服务用于接收处理香港服务传过来的基础信息数据。 基础信息主要分为分类、分类属性、分类品牌等信息,三个接口都是利用异步消息的方式进行调用 ### 1.分类信息 调用平台接口/category/tree/get   GetCategoryTree 分类信息并未向php提供调用接口,调用入口是`mps-product-allproducer` 定时总控项目 每隔5天进行一次类目同步,循环同步所有站点的分类,并向中台`mps-lazada-product`发送同步消息 中台LazadaCategoryConsumer在监听到消息后通过传入站点调用平台获取到该站点的所有数据,在返回的数据中有children字段存放当前分类的子分类 ,对返回的数据进行解析组装,按照根节点分类以及对应的叶子节点组合成当前分类的分类树,推送到广州服务`mdc-product-lazada`。 ### 2.分类属性 调用平台接口/category/attributes/get   GetCategoryAttributes 获取对应站点的某个分类下的属性,需要传入站点以及需要查询的分类。 分类属性信息的入口是`mps-product-allproducer` 定时总控项目 每隔5天进行一次类目同步。在同步每个类目的时候,向类目属性的队列中生产一条同步属性的消息,开始同步属性,向广州服务推送的数据是按照一个分类下所有的属性推送至广州的。 ### 3.分类品牌 调用接口/category/brands/query   GetBrandByPages 品牌信息的入口是`mps-product-allproducer` 每晚8点进行同步,同步每一个站点的品牌,当前接口是一个分类接口,因此在项目中需要循环分页调用。一页最多获取20条品牌数据,向广州推送数据是按照获取到的一页一页的数据进行推送的。 ### - 代码线 #### 1.简介 lazada基础信息的开发都是采用异步消息的方式,通过定时器作为入口调用 `mps-lazada-product`(香港端)和`mdc-product-lazada`。(广州端),其中香港端主要调用接口获取数据并组装香港端服务需要的数据格式,推送到广州端,广州端接收到后存入到erp数据库,供前端页面展示的数据 #### 2.涉及项目 mps-product-allproducer(定时任务总控程序)(定时同步)(香港) mps-lazada-product(基础信息刊登服务)(香港) mdc-product-lazada(基础信息存表服务)(广州) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) #### 3.具体流程 消息异步:由定时器 mps-product-allproduce 定时向分类消息队列和品牌队列中丢入一条消息 mps-lazada-product 消费者监听到消息后,开始进行消费,拉取到所有分类消息,循环每个分类并向分类属性队列中丢入消息,开始获取分类属性数据,数据获取之后组装成广州端需要的数据格式推送至广州服务mdc-product-lazada,广州消费者在监听到消息后开始消费,拿到香港端传过来的数据后,对erp 基础表的信息进行新增、更新,删除等操作。 ## 刊登商品 ### - 业务线 lazada平台刊登分为普通的站点刊登和六合一刊登,站点刊登成功后,平台直接返回刊登结果,六合一刊登成功后,还需调用获取状态信息接口去获取六合一每个站点的刊登状态。 #### 1. 本土刊登 调用Product Api 下面 CreateProduct /product/create 接口。 刊登接口也是通过异步发送消息的方式,我们中台这边只负责开发了香港端,广州端是php那边开发的, 本土刊登调用平台需要传入json格式的参数,其中后期改动是把sku字段中的标准属性或者自定义属性放到了saleProp对象里面这点需要注意 #### 2. 六合一刊登 所谓六合一刊登就是多站点刊登,lazada总共有6个站点,vn、id、sg、ph、my、th 其中my站点做为全球站点,当调用六合一刊登时传入my站点即可 接口使用的是Cross Boarder Product Api 下的CreateGlobalProduct   /product/global/create接口 需要注意的是在调用该接口的时候需要把参数转换成xml格式进行刊登上传,调用接口后,会返回一个sku列表的结果,以供后续步骤使用 #### 3. 获取全球商品状态 接口使用的是Cross Boarder Product Api 下的GetGlobalProductStatus   /product/global/status/get接口 在六合一刊登返回结果后,想要查看这个全球商品是否刊登成功,则需要调用该接口去获取全球刊登结果。 该接口需要传入全球刊登的seller_sku,就能获取到对应站点的刊登的结果。一般刊登成功后都会返回对应站点的商品Id 获取到刊登结果后会直接推送给php。 ### - 代码线 #### 1.简介 lazada刊登都是采用异步消息的方式,通过php调用刊登端入口 `mdc-open-api-publish`(香港端)接收到请求后进行消息的组装推送到刊登服务mps-lazada-product,刊登服务接收到消息后开始进行本土刊登或全球刊登。刊登成功后推送消息给php. lazada 基础信息服务和刊登服务都是放在`mps-lazada-product`这一个项目的 #### 2.涉及项目 mdc-open-api-publish (香港刊登服务入口)(香港) mps-lazada-product(基础信息刊登服务)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) #### 3.具体流程 本土刊登:php发送刊登请求到mdc-open-api-publish,在publish服务中推送刊登的消息,mps-lazada-product接收到消息后,开始查询数据库,并组装好平台需要的格式(json),调用平台接口把结果推送给php php->mdc-open-api-publish ->mps-lazada-product->平台接口->发送消息给php 六合一刊登 流程大体跟本土刊登一样只是提供了不同的一套接口用于六合一刊登。并且在平台接口后,不会立马给php推送消息,而是推送一个获取状态结果的消息到LazadaPublishGlobalStatusConsumer 消费者,在监听到消息后开始调用平台接口获取当前六合一刊登seller_sku各站点的结果推送给php php->mdc-open-api-publish ->mps-lazada-product->平台接口->获取消息结果队列->调用刊登结果接口 ->发送消息给php ## 在线商品 ### - 业务线 lazada在线商品这里主要提一下同步商品列表和同步商品详情,其他直调接口在后面单独的列出来。 #### 1. 同步商品列表 接口使用的是Product API下的GetProducts   /products/get接口 该接口主要是通过分页的方式去获取商家某个站点的商品列表数据。这里每页最多能拉取50个商品,但是也要看商品中的sku数量,若sku数量过多就需要减少每页的数量,否则则会报错,项目中使用searchChainUtil进行页数的动态增减 #### 2. 同步商品详情 接口使用的是Product API下的GetProductItem   /product/item/get接口 进行商品详情同步 ### - 代码线 #### 1.简介 这里的商品列表和商品详情在后续被优化重构过,因为在调用台sdk的时候可能会造成线程阻塞,导致消息堆积不消费,因此在调用接口的时候不适用平台sdk而是使用公司的Http工具类。同时店铺和详情代码也进行了优化重构 #### 2.涉及项目 mps-product-allproducer(定时任务总控程序)(定时同步)(香港) 每3天同步一次 mdc-open-api-product (香港同步入口)(香港) mps-lazada-product(刊登服务)(香港) mabang-push-message(推送中间程序)(香港) mabang-receive-message(推送中间程序)(广州) #### 3.流程 同步店铺商品 - 由php调用我们的香港端入口mdc-open-api-product, - 在入口服务里面发送消息到mps-lazada-product队列中 - 监听到消息后在getDataList()方法中调用平台接口,调用接口返回的数据进行判断,如果失败或者返回的数据为null则进行重试 - 获取到数据后先将一些重要数据保存到临时的mongo中 - 再从mongo中查询出开始保存到临时mongo的数据 - 查出的数据放到同步商品详情的队列中开始同步商品详情 - 将查询出来临时mongo的数据存放在cos中。这样是做的目的是为了同步的时候方便查询和比对同步的商品是否完整 - 同步成功后开始修改中台的同步状态改为同步完成,并向同步详情队列发送 同步状态信息 - 删除临时mongo中的数据 (存放在临时mongo的作用是,当同步过程中发生了失败进行重试,之前已经同步了一些数据,下次进来进行同步的时候接着失败的地方进行同步,这样也能保证cos文件的完整性你和推送数据的完整性因为在推送的时候是要等这个店铺的商品拉齐全了后才会进行推送) 同步商品详情 - LazadaSyncProductConsumer接收到同步店铺推送过来的商品id列表后,开始消费 - 首先判断传过来的是否含有状态对象,如果有则证明同步店铺完成,则直接给php推送刊登结果 - 如果是商品id集合则直接循环调用平台接口,接口返回结果判断需要重试的的商品id,处理平台删除的商品 - 处理重试的商品进行重试,保存获取到成功的数据到mongo - 推送到php
zhangqing
2023年8月24日 18:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码