实验饿百同步饿鲜达商品
This commit is contained in:
@@ -63,6 +63,9 @@ type StoreSkuSyncInfo struct {
|
||||
BindDeletedAt time.Time `orm:"type(datetime)" json:"bindDeletedAt"`
|
||||
|
||||
model.Sku
|
||||
ExdSkuID string `orm:"column(exd_sku_id)"`
|
||||
ExdSkuName string
|
||||
ExdUpc int
|
||||
|
||||
// sku_name
|
||||
Prefix string
|
||||
|
||||
@@ -2,6 +2,7 @@ package ebai
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
@@ -19,6 +20,7 @@ import (
|
||||
|
||||
const (
|
||||
defVendorCatID = 201222934 // 其他蔬菜
|
||||
exdStoreName = "饿鲜达"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -118,7 +120,7 @@ func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) {
|
||||
func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isNeedMapCat bool) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
storeSku := storeSkuList[0]
|
||||
strStoreID := utils.Int2Str(storeID)
|
||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, false)
|
||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, false, false)
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
|
||||
if err != nil {
|
||||
@@ -141,11 +143,23 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
// 对于多门店平台来说,storeSkuList中只有SkuID与VendorSkuID有意义
|
||||
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
storeSku := storeSkuList[0]
|
||||
var vendorSkuID int64
|
||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, true)
|
||||
var (
|
||||
vendorSkuID int64
|
||||
isExd bool = false
|
||||
customSkuID int64
|
||||
)
|
||||
store, _ := dao.GetStoreDetail(dao.GetDB(), storeSku.StoreID, model.VendorIDEBAI)
|
||||
if strings.Contains(store.Name, exdStoreName) {
|
||||
isExd = true
|
||||
customSkuID = utils.Str2Int64(storeSku.ExdSkuID)
|
||||
} else {
|
||||
isExd = false
|
||||
customSkuID = int64(storeSku.SkuID)
|
||||
}
|
||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, true, isExd)
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
strStoreID := utils.Int2Str(storeID)
|
||||
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, storeSku.SkuID, params); err == nil {
|
||||
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil {
|
||||
utils.AfterFuncWithRecover(5*time.Second, func() {
|
||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
||||
// 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下
|
||||
@@ -270,7 +284,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
||||
return failedList, err
|
||||
}
|
||||
|
||||
func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate bool) (params map[string]interface{}) {
|
||||
func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate, isExd bool) (params map[string]interface{}) {
|
||||
photos := []map[string]interface{}{
|
||||
map[string]interface{}{
|
||||
"is_master": true,
|
||||
@@ -284,14 +298,21 @@ func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate bool
|
||||
})
|
||||
}
|
||||
params = map[string]interface{}{
|
||||
"name": utils.LimitMixedStringLen(storeSku.SkuName, ebaiapi.MaxSkuNameByteCount),
|
||||
"left_num": model.MaxStoreSkuStockQty,
|
||||
"category_id": utils.Str2Int64(storeSku.VendorCatID),
|
||||
// "name": utils.LimitMixedStringLen(storeSku.SkuName, ebaiapi.MaxSkuNameByteCount),
|
||||
"left_num": model.MaxStoreSkuStockQty,
|
||||
// "category_id": utils.Str2Int64(storeSku.VendorCatID),
|
||||
"predict_cat": 0, // 不使用推荐类目
|
||||
"cat3_id": getEbaiCat(storeSku.VendorVendorCatID),
|
||||
"weight": storeSku.Weight,
|
||||
"photos": photos,
|
||||
}
|
||||
if !isExd {
|
||||
params["category_id"] = utils.Str2Int64(storeSku.VendorCatID)
|
||||
params["name"] = utils.LimitMixedStringLen(storeSku.SkuName, ebaiapi.MaxSkuNameByteCount)
|
||||
} else {
|
||||
params["upc"] = storeSku.ExdUpc
|
||||
params["name"] = storeSku.ExdSkuName
|
||||
}
|
||||
if storeSku.DescImg != "" {
|
||||
params["rtf"] = storeSku.DescImg
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user