京东商城创建商品规格

This commit is contained in:
苏尹岚
2020-05-20 09:25:30 +08:00
parent d1e8c7ad66
commit 31d1d5983b
3 changed files with 61 additions and 46 deletions

View File

@@ -1120,31 +1120,34 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
err = ErrEntityNotExist
}
}
// storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{model.JdShopMainStoreID}, nameID)
// if len(storeSkus) > 0 {
// storeSkus2, err2 := dao.GetStoreSkusByNameIDs(db, nil, nameID)
// err = err2
// storeIDs := make(map[int]int)
// for _, v := range storeSkus2 {
// storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, []int{v.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "")
// storeIDs[v.StoreID] = v.StoreID
// }
// skuBindInfos := []*StoreSkuBindInfo{}
// for _, v := range storeIDs {
// skus2 := []*StoreSkuBindSkuInfo{}
// skuBindInfo := &StoreSkuBindInfo{
// StoreID: v,
// }
// sku2 := &StoreSkuBindSkuInfo{
// SkuID: sku.ID,
// }
// skus2 = append(skus2, sku2)
// skuBindInfo.Skus = skus2
// skuBindInfos = append(skuBindInfos, skuBindInfo)
// }
// FocusStoreSkusBySku(ctx, skuBindInfos, true, true)
// }
//增加规格则同步到门店,目前只做了京东商城的。
storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{model.JdShopMainStoreID}, nameID)
if len(storeSkus) > 0 {
storeIDs := make(map[int]int)
storeMaps, err2 := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "")
err = err2
for _, v := range storeMaps {
storeSkus2, err2 := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, nameID)
err = err2
if len(storeSkus2) > 0 {
storeIDs[v.StoreID] = v.StoreID
}
}
skuBindInfos := []*StoreSkuBindInfo{}
for _, v := range storeIDs {
skus2 := []*StoreSkuBindSkuInfo{}
skuBindInfo := &StoreSkuBindInfo{
StoreID: v,
}
sku2 := &StoreSkuBindSkuInfo{
SkuID: sku.ID,
}
skus2 = append(skus2, sku2)
skuBindInfo.Skus = skus2
skuBindInfos = append(skuBindInfos, skuBindInfo)
}
FocusStoreSkusBySku(ctx, skuBindInfos, true, true)
}
return outSkuNameExt, err
}

View File

@@ -1386,6 +1386,7 @@ func changeList2Jds(list []*dao.StoreSkuSyncInfo) (rList []*dao.StoreSkuSyncInfo
storeSku.Img = v[0].Img
storeSku.Img2 = v[0].Img2
storeSku.DescImg = v[0].DescImg
storeSku.JdsWareID = v[0].JdsWareID
rList = append(rList, storeSku)
}
return rList

View File

@@ -27,34 +27,45 @@ var (
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID {
for _, v := range storeSkuList {
createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v)
//判断京东商城上是否有这个商品了,如果有就是添加规格而不是创建商品
name := filterSensitiveWord(v.Name)
result, err := api.JdShopAPI.SearchWare4Valid(name)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
createSkuResult, err := api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
var resultAttrs = make(map[string]int64)
for _, vv := range createSkuParamSkus {
for _, vvv := range vv.SaleAttrs {
paramAttrs[vvv.AttrValues[0]] = vv
if result.TotalItem > 0 && len(result.Data) > 0 {
} else {
createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
}
for _, vv1 := range createSkuResult.Skus {
for _, vvv1 := range vv1.SaleAttrs {
if paramAttrs[vvv1.AttrValues[0]] != nil {
resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID
createSkuResult, err := api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
var resultAttrs = make(map[string]int64)
for _, vv := range createSkuParamSkus {
for _, vvv := range vv.SaleAttrs {
paramAttrs[vvv.AttrValues[0]] = vv
}
}
}
for _, vv2 := range v.StoreSkuSyncInfoJds {
vv2.JdsWareID = createSkuResult.WareID
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
for _, vv1 := range createSkuResult.Skus {
for _, vvv1 := range vv1.SaleAttrs {
if paramAttrs[vvv1.AttrValues[0]] != nil {
resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID
}
}
}
for _, vv2 := range v.StoreSkuSyncInfoJds {
vv2.JdsWareID = createSkuResult.WareID
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
}
}
}
}