diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 05588d1dd..02be90ef5 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -620,12 +620,20 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v if err = err2; err == nil { remoteSkuMap := make(map[int]int) for _, v := range remoteSkuList { - remoteSkuMap[v.SkuList[0].SkuID] = 1 - if localSkuMap[v.SkuList[0].SkuID] == nil { - sku2Delete = append(sku2Delete, &partner.StoreSkuInfo{ - SkuID: v.SkuList[0].SkuID, - VendorSkuID: v.SkuList[0].VendorSkuID, - }) + if skuID := v.SkuList[0].SkuID; skuID > 0 { + if localSkuMap[skuID] == nil || + remoteSkuMap[skuID] == 1 /*skuID在平台重复,典型的是美团可能会出现此类情况*/ { + sku2Delete = append(sku2Delete, &partner.StoreSkuInfo{ + SkuID: skuID, + VendorSkuID: v.SkuList[0].VendorSkuID, + }) + } + if remoteSkuMap[skuID] == 0 { + remoteSkuMap[skuID] = 1 + } else { + // 重复的删除后,再打上待创建标记 + remoteSkuMap[skuID] = 0 + } } }