需求背景:
有侵权信息的变体删除了,母体没删除,还留在后台,也有侵权的可能;
需求描述:
1.在listing列表,如果该渠道SKU是变体,则在界面上展示其母体ASIN,点击母体ASIN,可以快速在该界面搜索出该母体下的所有变体;

2.删除按钮改为可选,有两个可选项,分别为“删除选中listing”,“连带删除母体及所有变体”,“删除选中listing”为原来的功能,“连带删除母体及所有变体”为新逻辑;
3.点击连带删除母体及所有变体,对于没有变体的listing,则还是删除自身,如果是变体,则要删除该母体及其母体下的所有变体;点击时提示:“连带删除母体及所有变体会把该变体对应母体下的所有变体都删除,是否确认?”

测试环境不好找到有母体、变体、单体多种关系的Asin的Listing数据,就在测试环境先造数据:
开始操作删除:页面展示
选中了如下3条数据,做删除测试:
在正式环境条件下,提交到平台的队列需要查看【RB_AmazonUploadResult】这张表是否有新数据,看OrderSourceID、OrderSourceSKU这两个字段是不是与页面提交的吻合,AddTime时间是否大致与操作时相似,子店【Status】是否等于0,字段【LoadType】是否等于6,字段AmazonItemTypes的值是否是【POST_PRODUCT_DATA】,等待队列执行成功后【Status】是要有变化的;
删除后再去核查勾选的以及相关关系Asin的Listing数据:
日志查看:
这个删除操作,有两种日志记录,一种是记在表RB_Product_OrderSourceSKULog里面的记录(延续了线上已有的删除操作的记录方式),这种方式是记录了删除提交到平台的记录以及,也只有变体和单体,母体Listing数据的字段OrderSourceSkuID是没有值和字段OrderSourceSku是没有值的,所以没法提交至平台删除平台Listing、平台也不会存在母体这样的Listing。
另一种删除日志记录是文本txt形式记录存放在服务器端,记录了页面勾选的Listing asin和记录汇总了当前删除一共执行了哪些删除的Asin对应的Listing数据:
{
[22:52:48] AmazonListing通过Asin执行逻辑删除,结束,guid为:e182b37e-43fd-470d-b2f3-84d7d7438ae2,共计耗时:1045634毫秒;本次在页面勾选的Asin有【B0BF96JHG3,B0BF7NPSFP,B0BF78CHGT】;删除的相关Listing的Asin有【TEST_MU_B0BF96JHG3,B0BF96JHG3,B0BF7NPSFP,B0BF78CHGT】;
}
注意的是:可能有极端情况是没法避免的:
子Asin与母体Asin极其对应的变体Listing与母体Listing,的数据是分别通过【Task_Amazon_GetMatchingProduct Asin关系同步队列服务】与【Task_Amazon_LisingStatistics Listing变体母体Asin变体母体关系回写的统计服务】来回写各自关系的,Task_Amazon_GetMatchingProduct这个服务时刻在有新数据产生的,每天的同步是没法及时跟上的。所以不排除有操作人操作了如下情况的数据:ListingA是母体、原本平台有ListingB、ListingC、ListingD是ListingA的变体,但是由于刚好还在当天执行上述两个服务时,只同步回来了变体ListingB、ListingC,那么此时的按照Asin关系删除Listing就只能删除掉母体ListingA和变体ListingB、ListingC,变体ListingD的Listing数据的字段Asin、与字段ParentAsin此时还有没有关联数据关系,所以没法连带把变体ListingD给删掉。