diff --git a/platformapi/ebaiapi/shop_sku.go b/platformapi/ebaiapi/shop_sku.go index fe3f36c1..ad66b51d 100644 --- a/platformapi/ebaiapi/shop_sku.go +++ b/platformapi/ebaiapi/shop_sku.go @@ -206,11 +206,19 @@ func (a *API) SkuCreate(shopID string, customSkuID int, params map[string]interf return 0, err } -func GetEbaiSkuIDFromError(err error) int64 { - if err2, ok := err.(*utils.ErrorWithCode); ok && err2.IntCode() == 1 && strings.Index(err2.ErrMsg(), "shop sku exist") >= 0 { - searchResult := skuExistReg.FindStringSubmatch(err2.ErrMsg()) - if searchResult != nil && len(searchResult[1]) > 0 { - return utils.Str2Int64(searchResult[1]) +func (a *API) GetEbaiSkuIDFromError(shopID string, customSkuID int, err error) int64 { + if err2, ok := err.(*utils.ErrorWithCode); ok && err2.IntCode() == 1 { + if strings.Index(err2.ErrMsg(), "shop sku exist") >= 0 { + searchResult := skuExistReg.FindStringSubmatch(err2.ErrMsg()) + if searchResult != nil && len(searchResult[1]) > 0 { + return utils.Str2Int64(searchResult[1]) + } + } else if strings.Index(err2.ErrMsg(), "商品已存在") >= 0 { + if skuInfo, err2 := a.SkuList(shopID, &SkuListParams{ + CustomSkuID: utils.Int2Str(customSkuID), + }); err2 == nil && skuInfo != nil && len(skuInfo.List) > 0 { + return skuInfo.List[0].SkuID + } } } return 0