京东商城商品修改
This commit is contained in:
@@ -759,9 +759,30 @@ func filterSensitiveWord(name string) (result string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInfo, isCreate bool) (updateSkusParam *jdshopapi.UpdateSkusParam, err error) {
|
func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInfo, isCreate bool) (updateSkusParam *jdshopapi.UpdateSkusParam, err error) {
|
||||||
|
var (
|
||||||
|
ggValueID int64 //规格的属性id
|
||||||
|
attrsPropSku []*jdshopapi.CreateSkuParamAttrs
|
||||||
|
skus []*jdshopapi.UpdateSkusParamSkus
|
||||||
|
multiPropSku []*jdshopapi.CreateSkuParamAttrs
|
||||||
|
specQuality string
|
||||||
|
)
|
||||||
updateSkusParam = &jdshopapi.UpdateSkusParam{
|
updateSkusParam = &jdshopapi.UpdateSkusParam{
|
||||||
WareID: storeSku.JdsWareID,
|
WareID: storeSku.JdsWareID,
|
||||||
}
|
}
|
||||||
|
sku := &jdshopapi.UpdateSkusParamSkus{
|
||||||
|
WareID: storeSku.JdsWareID,
|
||||||
|
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),
|
||||||
|
}
|
||||||
|
//库存设置
|
||||||
|
if v.Status == model.SkuStatusNormal {
|
||||||
|
sku.StockNum = "9999"
|
||||||
|
} else {
|
||||||
|
sku.StockNum = "0"
|
||||||
|
}
|
||||||
|
//规格类别设置
|
||||||
attrIDs := make(map[string]int)
|
attrIDs := make(map[string]int)
|
||||||
attrs, err := api.JdShopAPI.FindAttrs(int(storeSku.VendorVendorCatID))
|
attrs, err := api.JdShopAPI.FindAttrs(int(storeSku.VendorVendorCatID))
|
||||||
for _, v := range attrs {
|
for _, v := range attrs {
|
||||||
@@ -771,75 +792,6 @@ func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInf
|
|||||||
attrIDs[v.Name] = v.ID
|
attrIDs[v.Name] = v.ID
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var (
|
|
||||||
ggValueID int64 //规格的属性id
|
|
||||||
attrsPropSku []*jdshopapi.CreateSkuParamAttrs
|
|
||||||
skus []*jdshopapi.UpdateSkusParamSkus
|
|
||||||
multiPropSku []*jdshopapi.CreateSkuParamAttrs
|
|
||||||
specQuality string
|
|
||||||
)
|
|
||||||
valuesSku, maxNo, _ := api.JdShopAPI.FindValuesByAttrId(attrIDs["规格"])
|
|
||||||
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
|
|
||||||
specQuality = strings.TrimRight(fmt.Sprintf("%.2f", float64(v.SpecQuality)), "0.") + v.SpecUnit
|
|
||||||
} else {
|
|
||||||
specQuality = utils.Float64ToStr(float64(v.SpecQuality)) + v.SpecUnit
|
|
||||||
}
|
|
||||||
if v.Comment != "" {
|
|
||||||
specQuality = v.Comment
|
|
||||||
}
|
|
||||||
for _, vv := range valuesSku {
|
|
||||||
if vv.Name == specQuality {
|
|
||||||
ggValueID = vv.ID
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if isCreate {
|
|
||||||
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{
|
|
||||||
WareID: storeSku.JdsWareID,
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
if !isCreate {
|
|
||||||
vendorSku, err2 := api.JdShopAPI.FindSkuById(utils.Str2Int64(v.VendorSkuID))
|
|
||||||
err = err2
|
|
||||||
var attrValue string
|
|
||||||
if v.Comment != "" {
|
|
||||||
attrValue = v.Comment
|
|
||||||
} else {
|
|
||||||
attrValue = specQuality
|
|
||||||
}
|
|
||||||
err = api.JdShopAPI.UpdateWareSaleAttrvalueAlias(&jdshopapi.UpdateWareSaleAttrvalueAliasParam{
|
|
||||||
WareID: v.JdsWareID,
|
|
||||||
Props: []*jdshopapi.CreateSkuParamAttrs2{
|
|
||||||
&jdshopapi.CreateSkuParamAttrs2{
|
|
||||||
AttrID: vendorSku.SaleAttrs[0].AttrID,
|
|
||||||
AttrValues: []string{vendorSku.SaleAttrs[0].AttrValues[0]},
|
|
||||||
AttrValueAlias: []string{attrValue},
|
|
||||||
Type: "com.jd.pop.ware.ic.api.domain.prop",
|
|
||||||
Type2: "com.jd.pop.ware.ic.api.domain.Prop",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
sku.SkuID = utils.Str2Int64(v.VendorSkuID)
|
|
||||||
}
|
|
||||||
if attrIDs["类别"] != 0 {
|
if attrIDs["类别"] != 0 {
|
||||||
values2, _, err2 := api.JdShopAPI.FindValuesByAttrId(attrIDs["类别"])
|
values2, _, err2 := api.JdShopAPI.FindValuesByAttrId(attrIDs["类别"])
|
||||||
err = err2
|
err = err2
|
||||||
@@ -851,6 +803,62 @@ func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInf
|
|||||||
multiPropSku = append(multiPropSku, attrlb)
|
multiPropSku = append(multiPropSku, attrlb)
|
||||||
}
|
}
|
||||||
sku.MultiCateProps = multiPropSku
|
sku.MultiCateProps = multiPropSku
|
||||||
|
if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
|
||||||
|
specQuality = strings.TrimRight(fmt.Sprintf("%.2f", float64(v.SpecQuality)), "0.") + v.SpecUnit
|
||||||
|
} else {
|
||||||
|
specQuality = utils.Float64ToStr(float64(v.SpecQuality)) + v.SpecUnit
|
||||||
|
}
|
||||||
|
valuesSku, maxNo, _ := api.JdShopAPI.FindValuesByAttrId(attrIDs["规格"])
|
||||||
|
if isCreate {
|
||||||
|
for _, vv := range valuesSku {
|
||||||
|
if vv.Name == specQuality {
|
||||||
|
ggValueID = vv.ID
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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.SaleAttrs = attrsPropSku
|
||||||
|
} else {
|
||||||
|
vendorSku, err2 := api.JdShopAPI.FindSkuById(utils.Str2Int64(v.VendorSkuID))
|
||||||
|
err = err2
|
||||||
|
vendorAttrValue := vendorSku.SaleAttrs[0].AttrValueAlias[0]
|
||||||
|
if v.Comment != "" {
|
||||||
|
if v.Comment != vendorAttrValue {
|
||||||
|
err = api.JdShopAPI.UpdateWareSaleAttrvalueAlias(&jdshopapi.UpdateWareSaleAttrvalueAliasParam{
|
||||||
|
WareID: v.JdsWareID,
|
||||||
|
Props: []*jdshopapi.CreateSkuParamAttrs2{
|
||||||
|
&jdshopapi.CreateSkuParamAttrs2{
|
||||||
|
AttrID: vendorSku.SaleAttrs[0].AttrID,
|
||||||
|
AttrValues: []string{vendorSku.SaleAttrs[0].AttrValues[0]},
|
||||||
|
AttrValueAlias: []string{v.Comment},
|
||||||
|
Type: "com.jd.pop.ware.ic.api.domain.prop",
|
||||||
|
Type2: "com.jd.pop.ware.ic.api.domain.Prop",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
sku.SkuID = utils.Str2Int64(v.VendorSkuID)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if vendorAttrValue != specQuality {
|
||||||
|
catID, _ := api.JdShopAPI.SaveVenderAttrValue(specQuality, utils.Str2Int(vendorSku.SaleAttrs[0].AttrID), int(storeSku.VendorVendorCatID), maxNo+1)
|
||||||
|
attrSku := &jdshopapi.CreateSkuParamAttrs{
|
||||||
|
AttrID: vendorSku.SaleAttrs[0].AttrID,
|
||||||
|
AttrValues: []string{utils.Int64ToStr(catID)},
|
||||||
|
}
|
||||||
|
attrsPropSku = append(attrsPropSku, attrSku)
|
||||||
|
sku.SaleAttrs = attrsPropSku
|
||||||
|
err = api.JdShopAPI.DeleteSku(utils.Str2Int64(v.VendorSkuID))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
skus = append(skus, sku)
|
skus = append(skus, sku)
|
||||||
updateSkusParam.Skus = skus
|
updateSkusParam.Skus = skus
|
||||||
return updateSkusParam, err
|
return updateSkusParam, err
|
||||||
|
|||||||
Reference in New Issue
Block a user