实验饿百同步饿鲜达商品

This commit is contained in:
苏尹岚
2020-02-11 11:35:15 +08:00
parent 7d24d9a31a
commit 7e4993ae55
2 changed files with 32 additions and 8 deletions

View File

@@ -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

View File

@@ -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
}