diff --git a/business/partner/purchase/jdshop/store_sku.go b/business/partner/purchase/jdshop/store_sku.go index 096e3f55c..82b276e77 100644 --- a/business/partner/purchase/jdshop/store_sku.go +++ b/business/partner/purchase/jdshop/store_sku.go @@ -35,7 +35,20 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } if result.TotalItem > 0 && len(result.Data) > 0 { - + for _, vv := range v.StoreSkuSyncInfoJds { + vv.JdsWareID = result.Data[0].WareID + updateSkusParam, err := buildUpdateSkusParam(v, vv) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + return failedList, err + } + vendorSkuID, err := api.JdShopAPI.UpdateSkus(updateSkusParam) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + return failedList, err + } + vv.VendorSkuID = vendorSkuID + } } else { createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v) if err != nil { @@ -544,3 +557,50 @@ func filterSensitiveWord(name string) (result string) { } return name } + +func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInfo) (updateSkusParam *jdshopapi.UpdateSkusParam, err error) { + updateSkusParam = &jdshopapi.UpdateSkusParam{ + WareID: storeSku.JdsWareID, + } + attrIDs := make(map[string]int) + attrs, err := api.JdShopAPI.FindAttrs(int(storeSku.VendorVendorCatID)) + for _, v := range attrs { + if v.Name == "规格" { + attrIDs[v.Name] = v.ID + } + } + var ( + ggValueID int64 //规格的属性id + attrsPropSku []*jdshopapi.CreateSkuParamAttrs + ) + valuesSku, maxNo, _ := api.JdShopAPI.FindValuesByAttrId(attrIDs["规格"]) + specQuality := utils.Float64ToStr(float64(v.SpecQuality)) + v.SpecUnit + for _, v := range valuesSku { + if v.Name == specQuality { + ggValueID = v.ID + } + } + if ggValueID == 0 { //说明没有建这个规格,要建上 + catID, _ := api.JdShopAPI.SaveVenderAttrValue(specQuality, attrIDs["规格"], int(storeSku.VendorVendorCatID), maxNo+1) + ggValueID = catID + } + attrSku := &jdshopapi.CreateSkuParamAttrs{ + AttrID: utils.Int2Str(attrIDs["规格"]), + AttrValues: []string{utils.Int64ToStr(ggValueID)}, + } + attrsPropSku = append(attrsPropSku, attrSku) + sku := &jdshopapi.UpdateSkusParamSkus{ + JdPrice: jxutils.IntPrice2Standard(v.VendorPrice), + Type: "com.jd.pop.ware.ic.api.domain.sku", + Type2: "com.jd.pop.ware.ic.api.domain.Sku", + OuterID: utils.Int2Str(v.SkuID), + } + sku.SaleAttrs = attrsPropSku + if v.Status == model.SkuStatusNormal { + sku.StockNum = "9999" + } else { + sku.StockNum = "0" + } + updateSkusParam.Skus[0] = sku + return updateSkusParam, err +}