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