俊安交接
陈俊安-shopee交接
shopee-业务代码
shopee-coding
陈俊安-temu交接
temu 刊登方案设计
temu coding处理
陈俊安-amazon交接
亚马逊跟卖流程设计
陈俊安-mercadolibre交接
陈俊安-ozon交接
ozon 刊登方案设计
ozon coding处理
陈俊安-tiktok交接
陈俊安-pib交接
陈俊安-monitor交接
刊登监控设计
其他平台coding处理
joom
速卖通
shopify
shoplazza
shopline
本文档使用 MrDoc 发布
-
+
首页
陈俊安-amazon交接
# # 官方文档地址 `https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-reference` # # 负责的产品 万钰洁 # # 项目 `mdc-amazon-product` `mps-amazon-product` `mdc-amazon-meta` `mdc-open-api-product` `mdc-open-api-publish` # # 流程 我在亚马逊平台主要负责分类解析推送,编辑商品,更新价格、更新库存、删除商品、上架、下架、跟卖等功能。 1、基础信息 同步分类的逻辑位于`mps-amazon-meta`项目中,通过 AdminController.syncCategory() 触发异步的同步分类。 同步分类采用了方老板提供的策略模式,按以下节点执行存储Category链路: > CreateReport -> GetReportDocument -> GetReportDocumentDownload -> DownloadReport -> ParseCategoryXml -> Persistence -> CategoryPushMessage  所有的节点在如下位置存放:  相关的配置存放在如下(内外网同理), 配置可以决定开启哪些节点,  亚马逊分类最近对于 ID 做了一些优化,因为平台返回的 IDPath 中会多出一些ID,但是又找不到对应的分类,因此去掉了这部分id,核心逻辑就是先把整个文件中的分类全部保存下来,把 IDPath 中的每个分类拿出来在全部分类中寻找,找不到则剔除,最后拼接出新的 IDPath 。  2、在线商品 更新商品、更新价格、更新库存、上架、下架,删除商品合并到一套业务中执行。因此这几个业务是公用一张表的,表所在`mdc.mdc_product_task.mps_amazon_update_task`,其中 `type` 字段用于区分业务类型,而`content`字段存放是实际的业务数据,`update_xml_file`和`update_result_file` 字段分别是保存上传给平台的xml文件和平台返回的结果文件,用户排查问题使用。 但是入口是分为不同的业务的,以下是更新商品的案例:   这个 `updateTask()` 方法是这些业务公用的,核心逻辑就是 > 查询对应的业务任务 -> 组装 `xml` 格式文件 -> 提交给亚马逊平台 -> 将结果推送到广州 此处还有一个很关键的点,为了兼容程明那边的同步库存功能,在表中我加入了`source_type` 字段用于区分,详情可在表结构中查看。 3、跟卖 跟卖的表在 `mdc.mdc_product_task.mps_amazon_follow_task` 。 跟卖的业务在 `mps-amazon-product` 项目中的 `AmazonProductFollowSellTaskConsumer` 消费者中,为了更大化的利用平台的上传文件接口(此接口很多地方在使用),我们决定使用批量的方式处理,因此在 `mdc-open-api-product` 中跟卖入口处没有丢入跟卖队列,而是在 `mps-amazon-product` 项目中写了定时任务来自动扫描表中的待执行任务,该定时器3分钟扫一次,也就是保证3分钟内同一个店铺的跟卖任务将绑定在一批中一起执行。  > 其他详见 [跟卖流程设计](http://175.178.169.18:10086/doc/118/ "跟卖流程设计") # 多站点excel解析    ```java String path = "C:\\Users\\Admin\\Desktop\\amazon\\" + site + "\\"; List<String> l = getPackage(path); if (l == null || l.size() <= 0) { return; } BaseData.addDataToMap(); for (String fileName : l) { int index = fileName.indexOf("Flat.File."); index = index != -1 ? index + "Flat.File.".length() : 0; int lastIndex = fileName.lastIndexOf("us".equals(site) ? "_b2b" : ("." + site)); String newFileName = fileName.substring(index, lastIndex); String newFilePath = path + newFileName + "/" + newFileName + ("us".equals(site) ? "_b2b" : "") + ".json"; if (new File(newFilePath).exists()) { continue; } System.out.println(fileName); syncExcel(fileName, site); } ```
chenjunan
2023年9月14日 18:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码