- jdapi.BatchAddSku
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -100,6 +101,19 @@ type CategoryInfo struct {
|
|||||||
FullPath string `json:"fullPath"` // 到家分类独有
|
FullPath string `json:"fullPath"` // 到家分类独有
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CreateByUpcParam struct {
|
||||||
|
Upc string
|
||||||
|
OutSkuId string
|
||||||
|
Price int // 单位为分
|
||||||
|
ShopCategoryId int64
|
||||||
|
IsSale bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateByUpcPair struct {
|
||||||
|
Upc string
|
||||||
|
SkuId int64
|
||||||
|
}
|
||||||
|
|
||||||
// 分页查询商品品牌信息接口
|
// 分页查询商品品牌信息接口
|
||||||
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=180&apiid=1ca07a3e767649a7a44fc6ea7e9ed8dd
|
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=180&apiid=1ca07a3e767649a7a44fc6ea7e9ed8dd
|
||||||
func (a *API) QueryPageBrandInfo(pageNo, pageSize, brandId int, brandName string) (brandList []*BrandInfo, totalCount int, err error) {
|
func (a *API) QueryPageBrandInfo(pageNo, pageSize, brandId int, brandName string) (brandList []*BrandInfo, totalCount int, err error) {
|
||||||
@@ -513,6 +527,40 @@ func (a *API) GetSpuSaleAttr(outSpuId string) (attrList []map[string]interface{}
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *API) BatchAddSku(paramList []*CreateByUpcParam) (pairs []*CreateByUpcPair, err error) {
|
||||||
|
batchSkuRequestList := make([]map[string]interface{}, len(paramList))
|
||||||
|
for k, v := range paramList {
|
||||||
|
batchSkuRequestList[k] = map[string]interface{}{
|
||||||
|
"uniqueCode": v.Upc,
|
||||||
|
"outSku": v.OutSkuId,
|
||||||
|
"jdPrice": fmt.Sprintf("%.2f", float32(v.Price)/100),
|
||||||
|
"shopCategoryId": v.ShopCategoryId,
|
||||||
|
"isSale": v.IsSale,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result, err := a.AccessAPINoPage("PmsSkuMainService/batchAddSku", map[string]interface{}{
|
||||||
|
"batchSkuRequestList": batchSkuRequestList,
|
||||||
|
}, nil, nil, genNoPageResultParser("code", "result", "detail", "0"))
|
||||||
|
if err == nil {
|
||||||
|
globals.SugarLogger.Debug(utils.Format4Output(result, false))
|
||||||
|
// todo 这个API在找不到UPC创建失败时,code也是0,底层不能判断失败
|
||||||
|
if result2, ok := result.([]interface{}); ok && len(result2) > 0 {
|
||||||
|
detail := utils.Slice2MapSlice(result2)
|
||||||
|
pairs = make([]*CreateByUpcPair, len(detail))
|
||||||
|
for k, v := range detail {
|
||||||
|
pairs[k] = &CreateByUpcPair{
|
||||||
|
Upc: utils.Interface2String(v["uniqueCode"]),
|
||||||
|
SkuId: utils.MustInterface2Int64(v["skuId"]),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pairs, nil
|
||||||
|
} else {
|
||||||
|
return nil, utils.NewErrorIntCode("BatchAddSku失败", -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// 私有辅助函数
|
// 私有辅助函数
|
||||||
func interface2Cat(data interface{}, level int) (cat *CategoryInfo) {
|
func interface2Cat(data interface{}, level int) (cat *CategoryInfo) {
|
||||||
|
|||||||
@@ -148,3 +148,20 @@ func TestGetSpuSaleAttr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Log(utils.Format4Output(result, false))
|
t.Log(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBatchAddSku(t *testing.T) {
|
||||||
|
paramList := []*CreateByUpcParam{
|
||||||
|
&CreateByUpcParam{
|
||||||
|
Upc: "6948939649102",
|
||||||
|
OutSkuId: "50001",
|
||||||
|
Price: 213,
|
||||||
|
ShopCategoryId: 4247719,
|
||||||
|
IsSale: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
result, err := jdapi.BatchAddSku(paramList)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(utils.Format4Output(result, false))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user