diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index ec7e619d8..afaa0132a 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -113,19 +113,25 @@ func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) { return ebaiapi.IsErrSkuNotExist(err) } -func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (successList []*dao.StoreSkuSyncInfo, err error) { +func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isNeedMapCat bool) (successList []*dao.StoreSkuSyncInfo, err error) { storeSku := storeSkuList[0] strStoreID := utils.Int2Str(storeID) params := genSkuParamsFromStoreSkuInfo2(storeSku, false) if globals.EnableEbaiStoreWrite { _, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params) - utils.CallFuncAsync(func() { - api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) - }) + if isNeedMapCat { + utils.CallFuncAsync(func() { + api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) + }) + } } return nil, err } +func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (successList []*dao.StoreSkuSyncInfo, err error) { + return p.updateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true) +} + // 对于多门店平台来说,storeSkuList中只有SkuID与VendorSkuID有意义 func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (successList []*dao.StoreSkuSyncInfo, err error) { storeSku := storeSkuList[0] @@ -136,6 +142,9 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, storeSku.SkuID, params); err == nil { utils.AfterFuncWithRecover(5*time.Second, func() { api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) + // 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下 + // 比如门店:100887, skuID:33805,订单:1577176719141226065 + p.updateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false) }) } } else {