aa
This commit is contained in:
@@ -1429,6 +1429,8 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
// vendorSkuID的赋值意义不大
|
// vendorSkuID的赋值意义不大
|
||||||
skuBind.MtwmID = deletedSku.MtwmID
|
skuBind.MtwmID = deletedSku.MtwmID
|
||||||
skuBind.EbaiID = deletedSku.EbaiID
|
skuBind.EbaiID = deletedSku.EbaiID
|
||||||
|
skuBind.JdsID = deletedSku.JdsID
|
||||||
|
skuBind.JdsWareID = deletedSku.JdsWareID
|
||||||
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
|
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
name := filterSensitiveWord(v.Name)
|
name := filterSensitiveWord(v.Name)
|
||||||
flag := false
|
flag := false
|
||||||
flag2 := false
|
flag2 := false
|
||||||
|
var wareStatusUpdateWareID string
|
||||||
result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100)
|
result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
@@ -52,204 +53,205 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
//下架
|
//下架
|
||||||
if v.WareStatus == 2 {
|
if v.WareStatus == 2 {
|
||||||
flag2 = true
|
flag2 = true
|
||||||
|
wareStatusUpdateWareID = utils.Int64ToStr(v.WareID)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if flag2 {
|
if flag2 {
|
||||||
err = getAPI(v.VendorOrgCode).WareDoUpdate("op", utils.Int64ToStr(v.JdsWareID))
|
err = getAPI(v.VendorOrgCode).WareDoUpdate("op", wareStatusUpdateWareID)
|
||||||
} else {
|
}
|
||||||
if result.TotalItem > 0 && len(result.Data) > 0 && flag {
|
if result.TotalItem > 0 && len(result.Data) > 0 && flag {
|
||||||
//jds2
|
//jds2
|
||||||
wareSaveParam := &jdshopapi.WareSaveParam{
|
wareSaveParam := &jdshopapi.WareSaveParam{
|
||||||
WareID: result.Data[0].WareID,
|
WareID: result.Data[0].WareID,
|
||||||
Title: v.Name,
|
Title: v.Name,
|
||||||
CategoryID: int(v.VendorVendorCatID),
|
CategoryID: int(v.VendorVendorCatID),
|
||||||
VenderID: jdshopapi.VendorID2,
|
VenderID: jdshopapi.VendorID2,
|
||||||
Length: 200,
|
Length: 200,
|
||||||
Wide: 100,
|
Wide: 100,
|
||||||
Height: 100,
|
Height: 100,
|
||||||
Weight: "1",
|
Weight: "1",
|
||||||
BrandID: jdshopapi.BrandIdNO,
|
BrandID: jdshopapi.BrandIdNO,
|
||||||
ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
|
ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
|
||||||
PromiseID: -1,
|
PromiseID: -1,
|
||||||
MultiCateProps: []interface{}{},
|
MultiCateProps: []interface{}{},
|
||||||
PropsSet: []interface{}{},
|
PropsSet: []interface{}{},
|
||||||
SaleAttrs: []interface{}{},
|
SaleAttrs: []interface{}{},
|
||||||
WareStatus: 8,
|
WareStatus: 8,
|
||||||
|
}
|
||||||
|
var wareSaveSkus []*jdshopapi.WareSaveSkus
|
||||||
|
//先把已有的规格放进去
|
||||||
|
// if v.VendorOrgCode == "2" {
|
||||||
|
wareResult, _ := getAPI(v.VendorOrgCode).FindWareById(wareSaveParam.WareID)
|
||||||
|
if wareResult != nil {
|
||||||
|
for _, v := range wareResult.Images {
|
||||||
|
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, &jdshopapi.CreateSkuParamImages{
|
||||||
|
ColorID: v.ColorID,
|
||||||
|
ImgURL: v.ImgURL,
|
||||||
|
ImgIndex: v.ImgIndex,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
var wareSaveSkus []*jdshopapi.WareSaveSkus
|
}
|
||||||
//先把已有的规格放进去
|
skus, _, _ := getAPI(v.VendorOrgCode).SearchSkuList2([]int{int(wareSaveParam.WareID)})
|
||||||
// if v.VendorOrgCode == "2" {
|
if len(skus) > 0 {
|
||||||
wareResult, _ := getAPI(v.VendorOrgCode).FindWareById(wareSaveParam.WareID)
|
for _, vv := range skus {
|
||||||
if wareResult != nil {
|
sku := &jdshopapi.WareSaveSkus{
|
||||||
for _, v := range wareResult.Images {
|
SkuID: vv.SkuID,
|
||||||
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, &jdshopapi.CreateSkuParamImages{
|
JdPrice: utils.Float64ToStr(vv.JdPrice),
|
||||||
ColorID: v.ColorID,
|
StockNum: vv.StockNum,
|
||||||
ImgURL: v.ImgURL,
|
Props: []*jdshopapi.WareSaveSkusProp{
|
||||||
ImgIndex: v.ImgIndex,
|
&jdshopapi.WareSaveSkusProp{
|
||||||
})
|
AttrID: utils.Str2Int(vv.SaleAttrs[0].AttrID),
|
||||||
}
|
AttrValues: utils.Str2Int64(vv.SaleAttrs[0].AttrValues[0]),
|
||||||
}
|
AttrValueAlias: vv.SaleAttrs[0].AttrValueAlias[0],
|
||||||
skus, _, _ := getAPI(v.VendorOrgCode).SearchSkuList2([]int{int(wareSaveParam.WareID)})
|
|
||||||
if len(skus) > 0 {
|
|
||||||
for _, vv := range skus {
|
|
||||||
sku := &jdshopapi.WareSaveSkus{
|
|
||||||
SkuID: vv.SkuID,
|
|
||||||
JdPrice: utils.Float64ToStr(vv.JdPrice),
|
|
||||||
StockNum: vv.StockNum,
|
|
||||||
Props: []*jdshopapi.WareSaveSkusProp{
|
|
||||||
&jdshopapi.WareSaveSkusProp{
|
|
||||||
AttrID: utils.Str2Int(vv.SaleAttrs[0].AttrID),
|
|
||||||
AttrValues: utils.Str2Int64(vv.SaleAttrs[0].AttrValues[0]),
|
|
||||||
AttrValueAlias: vv.SaleAttrs[0].AttrValueAlias[0],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
OuterID: vv.OuterID,
|
},
|
||||||
}
|
OuterID: vv.OuterID,
|
||||||
wareSaveSkus = append(wareSaveSkus, sku)
|
|
||||||
}
|
}
|
||||||
|
wareSaveSkus = append(wareSaveSkus, sku)
|
||||||
}
|
}
|
||||||
// }
|
}
|
||||||
for _, vv := range v.StoreSkuSyncInfoJds {
|
// }
|
||||||
v.JdsWareID = result.Data[0].WareID
|
for _, vv := range v.StoreSkuSyncInfoJds {
|
||||||
vv.JdsWareID = result.Data[0].WareID
|
v.JdsWareID = result.Data[0].WareID
|
||||||
_, wareSaveSku, err := buildUpdateSkusParam(v, vv, true)
|
vv.JdsWareID = result.Data[0].WareID
|
||||||
wareSaveSkus = append(wareSaveSkus, wareSaveSku)
|
_, wareSaveSku, err := buildUpdateSkusParam(v, vv, true)
|
||||||
if err != nil {
|
wareSaveSkus = append(wareSaveSkus, wareSaveSku)
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
|
||||||
return failedList, err
|
|
||||||
}
|
|
||||||
// if v.VendorOrgCode == "1" {
|
|
||||||
// vendorSkuID, err := getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
|
|
||||||
// if strings.Contains(err.Error(), "cookie可能过期了") {
|
|
||||||
// err = nil
|
|
||||||
// }
|
|
||||||
// if err != nil {
|
|
||||||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
|
||||||
// return failedList, err
|
|
||||||
// }
|
|
||||||
// vv.VendorSkuID = vendorSkuID
|
|
||||||
// } else {
|
|
||||||
wareSaveParam.Skus = wareSaveSkus
|
|
||||||
if wareResult, err2 := getAPI(v.VendorOrgCode).WareSave(wareSaveParam); err2 == nil {
|
|
||||||
for _, vvv := range wareResult {
|
|
||||||
if vvv.OuterID == wareSaveSku.OuterID {
|
|
||||||
vv.VendorSkuID = utils.Int64ToStr(vvv.SkuID)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//创建商品后要上架,改价,库存,门店关注商品等
|
|
||||||
if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareSaveParam.WareID)); err == nil {
|
|
||||||
err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{vv.VendorSkuID}, nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
_, _, wareSaveParam, err := buildCreateWareParam(v)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
return failedList, err
|
return failedList, err
|
||||||
}
|
}
|
||||||
var (
|
|
||||||
wareID int64
|
|
||||||
resultAttrs = make(map[string]int64)
|
|
||||||
)
|
|
||||||
// if v.VendorOrgCode == "1" {
|
// if v.VendorOrgCode == "1" {
|
||||||
// createSkuResult, err2 := getAPI(v.VendorOrgCode).CreateWare(createSkuParamWare, createSkuParamSkus)
|
// vendorSkuID, err := getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
|
||||||
// err = err2
|
|
||||||
// if strings.Contains(err.Error(), "cookie可能过期了") {
|
// if strings.Contains(err.Error(), "cookie可能过期了") {
|
||||||
// err = nil
|
// err = nil
|
||||||
// }
|
// }
|
||||||
// wareID = createSkuResult.WareID
|
// if err != nil {
|
||||||
|
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
// var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
|
// return failedList, err
|
||||||
// for _, vv := range createSkuParamSkus {
|
|
||||||
// for _, vvv := range vv.SaleAttrs {
|
|
||||||
// paramAttrs[vvv.AttrValues[0]] = vv
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// 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)])
|
|
||||||
// }
|
|
||||||
// }
|
// }
|
||||||
|
// vv.VendorSkuID = vendorSkuID
|
||||||
// } else {
|
// } else {
|
||||||
var createSkuResult []*jdshopapi.WareSaveResult
|
wareSaveParam.Skus = wareSaveSkus
|
||||||
for i := 0; i < 10; i++ {
|
if wareResult, err2 := getAPI(v.VendorOrgCode).WareSave(wareSaveParam); err2 == nil {
|
||||||
createSkuResult, err = getAPI(v.VendorOrgCode).WareSave(wareSaveParam)
|
for _, vvv := range wareResult {
|
||||||
if len(createSkuResult) > 0 {
|
if vvv.OuterID == wareSaveSku.OuterID {
|
||||||
break
|
vv.VendorSkuID = utils.Int64ToStr(vvv.SkuID)
|
||||||
}
|
break
|
||||||
time.Sleep(time.Second)
|
|
||||||
}
|
|
||||||
wareID = createSkuResult[0].WareID
|
|
||||||
|
|
||||||
var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
|
|
||||||
for _, vv := range wareSaveParam.Skus {
|
|
||||||
for _, vvv := range vv.Props {
|
|
||||||
paramAttrs[vvv.AttrValueAlias] = vv
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, vv1 := range createSkuResult {
|
|
||||||
for _, vvv1 := range vv1.Props {
|
|
||||||
if paramAttrs[vvv1.AttrValueAlias] != nil {
|
|
||||||
resultAttrs[paramAttrs[vvv1.AttrValueAlias].OuterID] = vv1.SkuID
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//创建商品后要上架,改价,库存,门店关注商品等
|
||||||
for _, vv2 := range v.StoreSkuSyncInfoJds {
|
if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareSaveParam.WareID)); err == nil {
|
||||||
vv2.JdsWareID = createSkuResult[0].WareID
|
err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{vv.VendorSkuID}, nil)
|
||||||
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
|
||||||
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//创建商品后要上架,改价,库存,门店关注商品等
|
|
||||||
if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareID)); err == nil {
|
|
||||||
for _, vv2 := range v.StoreSkuSyncInfoJds {
|
|
||||||
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
|
||||||
err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])}, nil)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
if err != nil {
|
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
|
||||||
return failedList, err
|
|
||||||
} else {
|
|
||||||
//追加商品透图
|
|
||||||
imageURL := ""
|
|
||||||
img := v.Img
|
|
||||||
if img != "" {
|
|
||||||
suffix := img[strings.LastIndex(img, "."):]
|
|
||||||
if suffix != ".png" {
|
|
||||||
if resBinary, _, _ := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
|
|
||||||
downloadURL, _ := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
|
|
||||||
imageURL, _ = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
imageURL, _ = uploadImg(img, name, "tou", v.VendorOrgCode)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if v.VendorOrgCode == "1" {
|
|
||||||
api.JdShopAPI.TransparentImageAdd(wareID, imageURL)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
_, _, wareSaveParam, err := buildCreateWareParam(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
return failedList, err
|
return failedList, err
|
||||||
}
|
}
|
||||||
|
var (
|
||||||
|
wareID int64
|
||||||
|
resultAttrs = make(map[string]int64)
|
||||||
|
)
|
||||||
|
// if v.VendorOrgCode == "1" {
|
||||||
|
// createSkuResult, err2 := getAPI(v.VendorOrgCode).CreateWare(createSkuParamWare, createSkuParamSkus)
|
||||||
|
// err = err2
|
||||||
|
// if strings.Contains(err.Error(), "cookie可能过期了") {
|
||||||
|
// err = nil
|
||||||
|
// }
|
||||||
|
// wareID = createSkuResult.WareID
|
||||||
|
|
||||||
|
// var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
|
||||||
|
// for _, vv := range createSkuParamSkus {
|
||||||
|
// for _, vvv := range vv.SaleAttrs {
|
||||||
|
// paramAttrs[vvv.AttrValues[0]] = vv
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// 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)])
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
var createSkuResult []*jdshopapi.WareSaveResult
|
||||||
|
for i := 0; i < 10; i++ {
|
||||||
|
createSkuResult, err = getAPI(v.VendorOrgCode).WareSave(wareSaveParam)
|
||||||
|
if len(createSkuResult) > 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
}
|
||||||
|
wareID = createSkuResult[0].WareID
|
||||||
|
|
||||||
|
var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
|
||||||
|
for _, vv := range wareSaveParam.Skus {
|
||||||
|
for _, vvv := range vv.Props {
|
||||||
|
paramAttrs[vvv.AttrValueAlias] = vv
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, vv1 := range createSkuResult {
|
||||||
|
for _, vvv1 := range vv1.Props {
|
||||||
|
if paramAttrs[vvv1.AttrValueAlias] != nil {
|
||||||
|
resultAttrs[paramAttrs[vvv1.AttrValueAlias].OuterID] = vv1.SkuID
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, vv2 := range v.StoreSkuSyncInfoJds {
|
||||||
|
vv2.JdsWareID = createSkuResult[0].WareID
|
||||||
|
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
||||||
|
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//创建商品后要上架,改价,库存,门店关注商品等
|
||||||
|
if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareID)); err == nil {
|
||||||
|
for _, vv2 := range v.StoreSkuSyncInfoJds {
|
||||||
|
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
||||||
|
err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])}, nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
if err != nil {
|
||||||
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
|
return failedList, err
|
||||||
|
} else {
|
||||||
|
//追加商品透图
|
||||||
|
imageURL := ""
|
||||||
|
img := v.Img
|
||||||
|
if img != "" {
|
||||||
|
suffix := img[strings.LastIndex(img, "."):]
|
||||||
|
if suffix != ".png" {
|
||||||
|
if resBinary, _, _ := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
|
||||||
|
downloadURL, _ := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
|
||||||
|
imageURL, _ = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
imageURL, _ = uploadImg(img, name, "tou", v.VendorOrgCode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if v.VendorOrgCode == "1" {
|
||||||
|
api.JdShopAPI.TransparentImageAdd(wareID, imageURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||||
|
return failedList, err
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//如果是普通店关注商品
|
//如果是普通店关注商品
|
||||||
|
|||||||
Reference in New Issue
Block a user