diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index 316d8644b..29ec7b706 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -2,6 +2,7 @@ package jd import ( "fmt" + "strings" "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/utils" @@ -194,6 +195,21 @@ func (p *PurchaseHandler) CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSy param := skuInfo2Param(ctx, sku) if globals.EnableJdStoreWrite { sku.VendorSkuID, err = getAPI(sku.VendorOrgCode).AddSku2(param) + if err != nil && strings.Contains(err.Error(), jdapi.ErrMustUPC) { + result, err2 := getAPI(sku.VendorOrgCode).BatchAddSkuByUPC([]*jdapi.CreateByUpcParam2{ + &jdapi.CreateByUpcParam2{ + OutSkuId: utils.Int2Str(sku.SkuID), + Upc: sku.Upc, + JdPrice: utils.Int64ToStr(sku.Price), + ShopCategoryID: utils.Str2Int64(sku.VendorCatID), + }, + }) + if err2 == nil { + sku.VendorSkuID = result.SkuID + } else { + err = err2 + } + } } else { sku.VendorSkuID = utils.Int64ToStr(jxutils.GenFakeID()) }