diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 67ab08dfb..fe5b0ad42 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -264,7 +264,9 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks if mergedStoreSkuStatus == model.SkuStatusNormal { // 待创建且不可售的,暂不新建 if storeSku.Img != "" { if globals.EnableEbaiStoreWrite { - storeSku.EbaiID, err = api.EbaiAPI.SkuCreate(strStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo(pricePercentage, storeSku)) + if storeSku.EbaiID, err = api.EbaiAPI.SkuCreate(strStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo(pricePercentage, storeSku)); err == nil { + api.EbaiAPI.SkuShopCategoryMap(strStoreID, storeSku.EbaiID, "", storeSku.CatEbaiID, maxSkuCatRank-storeSku.Price) + } } else { storeSku.EbaiID = jxutils.GenFakeID() } diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 8e97e7ce6..bcfffd89f 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -14,6 +14,10 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) +const ( + maxSkuCatRank = 1000000 // 这个是rank的最大值 +) + func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { switch funcID { case partner.FuncUpdateStoreSkusStock, partner.FuncUpdateStoreSkusStatus, partner.FuncUpdateStoreSkusPrice, partner.FuncDeleteStoreSkus: @@ -95,12 +99,19 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v return nil, err } +func genSkuCatRank(storeSku *dao.StoreSkuSyncInfo) int { + return int(maxSkuCatRank - storeSku.Price) +} + // 对于多门店平台来说,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] var vendorSkuID int64 if globals.EnableEbaiStoreWrite { - vendorSkuID, err = api.EbaiAPI.SkuCreate(utils.Int2Str(storeID), storeSku.SkuID, genSkuParamsFromStoreSkuInfo2(storeSku)) + strStoreID := utils.Int2Str(storeID) + if vendorSkuID, err = api.EbaiAPI.SkuCreate(strStoreID, storeSku.SkuID, genSkuParamsFromStoreSkuInfo2(storeSku)); err == nil { + api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) + } } else { vendorSkuID = jxutils.GenFakeID() }