This commit is contained in:
邹宗楠
2023-11-23 10:26:25 +08:00
parent 8f12a4f753
commit 687eb45bef
5 changed files with 69 additions and 16 deletions

View File

@@ -187,6 +187,10 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in
if globals.EnableEbaiStoreWrite {
if catName, catSeq, isCheck := getCheckExdStoreNameAndSeq(storeID, storeCat); !isCheck {
err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
// 修改分类时错误:自定义分类ID(category_id)不存在(降低api调用错误)
if err != nil && strings.Contains(err.Error(), "自定义分类ID(category_id)不存在") {
dao.SetStoreCategorySyncStatus(dao.GetDB(), model.VendorIDEBAI, []int{storeID}, []int{storeCat.StoreCatID}, 2)
}
}
// todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作
if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) {
@@ -231,8 +235,19 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
// 本地商品存在饿百商品id,但是平台不存在该商品
if strings.Contains(err.Error(), "sku不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSku.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
} else if strings.Contains(err.Error(), "商品禁止售卖不允许上架,请去商品审核模块进行修改") {
sql := ` UPDATE store_sku_bind SET ebai_sync_status = 0 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSku.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
}
if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 {
if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 && err == nil {
if isNeedMapCat && !isExd {
utils.CallFuncAsync(func() {
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
@@ -315,7 +330,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
vendorSkuIDs := partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList()
if globals.EnableEbaiStoreWrite {
var opResult *ebaiapi.BatchOpResult
if status == model.SkuStatusNormal {
if status == model.SkuStatusNormal { // 可售上架
if len(vendorSkuIDs) > 1 {
opResult, err = api.EbaiAPI.SkuOnline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
} else if len(vendorSkuIDs) == 1 {
@@ -325,7 +340,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
}
return failedList, err
}
} else {
} else { // 下架
if len(vendorSkuIDs) > 1 {
opResult, err = api.EbaiAPI.SkuOffline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
} else if len(vendorSkuIDs) == 1 {
@@ -389,6 +404,12 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品库存")
}
// 本地商品存在饿百商品id,但是平台不存在该商品
if err != nil && strings.Contains(err.Error(), "商品不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSkuList[0].SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
}
err = nil
}
@@ -677,6 +698,12 @@ func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult
VendoreName: vendorName,
SyncType: syncType,
}
// 本地商品存在饿百商品id,但是平台不存在该商品
if strings.Contains(opResultMap[utils.Str2Int64(v.VendorSkuID)], "商品不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, v.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
selectedStoreSkuList = append(selectedStoreSkuList, opFailed)
}
}