京东商城创建商品规格
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user