You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
5.3 KiB
131 lines
5.3 KiB
2 years ago
|
package otosaas
|
||
|
|
||
|
import "git.oa00.com/go/otosaas/request"
|
||
|
|
||
|
type sku struct {
|
||
|
}
|
||
|
|
||
|
const (
|
||
|
skuPoll = "/mall/v1/commodity/list" // 商品池
|
||
|
skuDetail = "/mall/v1/commodity/detail" // 商品详情
|
||
|
skuImage = "/mall/v1/commodity/image" // 商品图片
|
||
|
skuStatus = "/mall/v1/commodity/status" // 商品状态
|
||
|
skuStock = "/mall/v1/commodity/stock" // 商品库存
|
||
|
)
|
||
|
|
||
|
type poolItem struct {
|
||
|
TotalCount int `json:"totalCount"`
|
||
|
SkuCodes []string `json:"list"`
|
||
|
}
|
||
|
|
||
|
// Pool @Title 商品池 最大100条
|
||
|
func (s *sku) Pool(page, pageSize uint) (result poolItem, err error) {
|
||
|
err = request.Exec(skuPoll, map[string]interface{}{
|
||
|
"page": page,
|
||
|
"pageSize": pageSize,
|
||
|
}, &result)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
type SkuDetail struct {
|
||
|
ShopCode string `json:"shopCode"`
|
||
|
CommodityDetailVos []struct {
|
||
|
WordDescription string `json:"wordDescription"` // html详情
|
||
|
ImgDescription string `json:"imgDescription"` // 图片详情
|
||
|
CommodityDetailType int `json:"commodityDetailType"` // 详情类别 0=文字描述 1=图片描述
|
||
|
Id int `json:"id"`
|
||
|
CommoditySerial int `json:"commoditySerial"` // 排序
|
||
|
} `json:"commodityDetailVos"` // 商品详情
|
||
|
CommodityPic string `json:"commodityPic"` // 商品主图
|
||
|
CommodityDescription string `json:"commodityDescription"` // 商品描述
|
||
|
CommodityCategoryName string `json:"commodityCategoryName"` // 分类名称 一级-二级-三级
|
||
|
CommodityCategoryC1 string `json:"commodityCategoryC1"` // 一级分类id
|
||
|
CommodityCategoryC2 string `json:"commodityCategoryC2"` // 二级分类id
|
||
|
CommodityCategoryC3 string `json:"commodityCategoryC3"` // 三级分类id
|
||
|
CommoditySpecifications []struct {
|
||
|
CommodityPropGroup string `json:"commodityPropGroup"` // 规格类型id
|
||
|
CommodityPropName string `json:"commodityPropName"` // 规格名称
|
||
|
SellingPrice float64 `json:"sellingPrice"` // 规格售价
|
||
|
SpecificationPic string `json:"specificationPic"` // 规格图
|
||
|
OriginalPrice float64 `json:"originalPrice"` // 原价
|
||
|
CommodityCode string `json:"commodityCode"` // 商品编号
|
||
|
CommodityProp string `json:"commodityProp"` // 规格值id
|
||
|
Id int `json:"id"`
|
||
|
CommodityPropGroupName string `json:"commodityPropGroupName"` // 规格类型名称
|
||
|
SpecificationCode string `json:"specificationCode"` // 商品规格编号
|
||
|
Status string `json:"status"` // 商品规格状态 1=上架 2=下架
|
||
|
} `json:"commoditySpecifications"` // 规格参数
|
||
|
CommodityCode string `json:"commodityCode"` // 商品编码
|
||
|
CommodityFreight struct {
|
||
|
ShopCode string `json:"shopCode"`
|
||
|
ThresholdAmount float64 `json:"thresholdAmount"` // 运费模版
|
||
|
FreightTemplateType int `json:"freightTemplateType"`
|
||
|
ProvinceName string `json:"provinceName"` // 不配送省份
|
||
|
Id string `json:"id"`
|
||
|
TransportationType int `json:"transportationType"` // 配送方式 1=快递
|
||
|
ProvinceId string `json:"provinceId"` // 不配送省份id
|
||
|
ValuationType int `json:"valuationType"` // 计价方式 1=按金额
|
||
|
FreightName string `json:"freightName"`
|
||
|
ThresholdFee float64 `json:"thresholdFee"` // 运费模版运费
|
||
|
DefaultType int `json:"defaultType"`
|
||
|
} `json:"commodityFreight"` // 运费详情
|
||
|
Id int `json:"id"`
|
||
|
CommodityName string `json:"commodityName"` // 商品名称
|
||
|
Status string `json:"status"` // 上下架状态 1=上架 2=下架
|
||
|
}
|
||
|
|
||
|
// Detail @Title 商品详情
|
||
|
func (s *sku) Detail(skuCode string) (result SkuDetail, err error) {
|
||
|
err = request.Exec(skuDetail, map[string]interface{}{
|
||
|
"commodityCode": skuCode,
|
||
|
}, &result)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
type SkuImage struct {
|
||
|
CommodityCode string `json:"commodityCode"`
|
||
|
CommodityImg []string `json:"commodityImg"`
|
||
|
}
|
||
|
|
||
|
// Image @Title 商品图册
|
||
|
func (s *sku) Image(skuCode string) (result SkuImage, err error) {
|
||
|
err = request.Exec(skuImage, map[string]interface{}{
|
||
|
"commodityCode": skuCode,
|
||
|
}, &result)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
type SkuStatus struct {
|
||
|
CommoditySpecifications []struct {
|
||
|
SpecificationCode string `json:"specificationCode"` // 规格编码
|
||
|
Status string `json:"status"` // 规格状态 1=上架 2=下架
|
||
|
} `json:"commoditySpecifications"`
|
||
|
CommodityCode string `json:"commodityCode"` // 商品编码
|
||
|
Status int `json:"status"` // 商品状态 1=上架 2=下架
|
||
|
}
|
||
|
|
||
|
// Status @Title 商品状态
|
||
|
func (s *sku) Status(skuCode string) (result SkuStatus, err error) {
|
||
|
err = request.Exec(skuStatus, map[string]interface{}{
|
||
|
"commodityCode": skuCode,
|
||
|
}, &result)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
type SkuStock struct {
|
||
|
CommodityTotalStock int `json:"commodityTotalStock"` // 总库存
|
||
|
CommoditySpecifications []struct {
|
||
|
SpecificationCode string `json:"specificationCode"` // 规格编码
|
||
|
Stock int `json:"stock"` // 规格库存
|
||
|
} `json:"commoditySpecifications"`
|
||
|
CommodityCode string `json:"commodityCode"` // 商品编码
|
||
|
}
|
||
|
|
||
|
// Stock @Title 商品库存
|
||
|
func (s *sku) Stock(skuCode string) (result SkuStock, err error) {
|
||
|
err = request.Exec(skuStock, map[string]interface{}{
|
||
|
"commodityCode": skuCode,
|
||
|
}, &result)
|
||
|
return
|
||
|
}
|