package jdshopapi import ( "fmt" "git.rosy.net.cn/baseapi/utils" ) type CreateEntityStoreParam struct { Name string `json:"name"` //是 门店名称 AddCode int `json:"addCode"` //是 门店三级标准地址编码(京东) AddCodeName string `json:"addCodeName"` //否 门店三级标准地址名称(京东) AddName string `json:"addName"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦 Coordinate string `json:"coordinate"` //是 门店坐标 纬度在前,经度在后 例:39.786683,116.563075 Phone string `json:"phone"` //是 门店电话 // Item []int `json:"item"` //否 门店组ID CustomerID string `json:"customerId"` //否 商家门店Id,商家维度不可重复 CategoryName string `json:"categoryName"` //否 门店扩展属性类目名称固定填为:popmendianSelfdelivery ExtendJSON string `json:"extendJson"` //是 扩展属性JSON如:{name1:'value1',name2:'value2'},营业时间必传固定json格式:{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更 ImageFile string `json:"imageFile"` //否 门店图片,图片二进制文件流,允许png、jpg、gif、jpeg、bmp图片格式,1M以内。 } type UpdateEntityStoreParam struct { StoreID int `json:"storeId"` //门店ID(京东) Name string `json:"name,omitempty"` //是 门店名称 AddCode int `json:"addCode,omitempty"` //是 门店三级标准地址编码(京东) AddCodeName string `json:"addCodeName,omitempty"` //否 门店三级标准地址名称(京东) AddName string `json:"addName,omitempty"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦 Coordinate string `json:"coordinate,omitempty"` //是 门店坐标 纬度在前,经度在后 例:39.786683,116.563075 Phone string `json:"phone,omitempty"` //是 门店电话 ExtendJSON string `json:"extendJson,omitempty"` //是 扩展属性JSON如:{name1:'value1',name2:'value2'},营业时间必传固定json格式:{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更 ImageFile string `json:"imageFile,omitempty"` //否 门店图片,图片二进制文件流,允许png、jpg、gif、jpeg、bmp图片格式,1M以内。 CustomerID string `json:"customerId"` //否 商家门店Id,商家维度不可重复 } type GetAddressCodeResult struct { ParentID int `json:"parentId"` Level int `json:"level"` AreaName string `json:"areaName"` Status int `json:"status"` AreaID int `json:"areaId"` } //创建门店 //https://open.jd.com/home/home#/doc/api?apiCateId=351&apiId=2224&apiName=jingdong.createEntityStore func (a *API) CreateEntityStore(createEntityStoreParam *CreateEntityStoreParam) (vendorStoreID string, err error) { result, err := a.AccessAPI("jingdong.createEntityStore", prodURL, utils.Struct2FlatMap(createEntityStoreParam)) if err == nil { if !result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["success"].(bool) { return vendorStoreID, fmt.Errorf(result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["message"].(string)) } return result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["result"].(map[string]interface{})["name"].(string), err } return vendorStoreID, err } //修改门店 //https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2221&apiName=jingdong.updateEntityStore func (a *API) UpdateEntityStore(updateEntityStoreParam *UpdateEntityStoreParam) (err error) { result, err := a.AccessAPI("jingdong.updateEntityStore", prodURL, utils.Struct2FlatMap(updateEntityStoreParam)) if err == nil { if !result["jingdong_updateEntityStore_responce"].(map[string]interface{})["updateentitystore_result"].(map[string]interface{})["success"].(bool) { return fmt.Errorf(result["jingdong_updateEntityStore_responce"].(map[string]interface{})["updateentitystore_result"].(map[string]interface{})["message"].(string)) } } return err } //删除门店 //https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2222&apiName=jingdong.deleteStoresById func (a *API) DeleteStoresByID(storeId int) (err error) { _, err = a.AccessAPI("jingdong.deleteStoresById", prodURL, map[string]interface{}{ "storeId": storeId, }) return err } //获取省地址信息et //https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.province.get&id=1011 func (a *API) GetProvince() (getAddressCodeResult []*GetAddressCodeResult, err error) { result, err := a.AccessAPI("jingdong.areas.province.get", prodURL, nil) if err == nil { utils.Map2StructByJson(result["jingdong_areas_province_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false) } return getAddressCodeResult, err } //获取市地址信息et //https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.city.get&id=1014 func (a *API) GetCity(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) { result, err := a.AccessAPI("jingdong.areas.city.get", prodURL, map[string]interface{}{ "parent_id": parentID, }) if err == nil { utils.Map2StructByJson(result["jingdong_areas_city_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false) } return getAddressCodeResult, err } //获取区地址信息et //https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.county.get&id=1012 func (a *API) GetCounty(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) { result, err := a.AccessAPI("jingdong.areas.county.get", prodURL, map[string]interface{}{ "parent_id": parentID, }) if err == nil { utils.Map2StructByJson(result["jingdong_areas_county_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false) } return getAddressCodeResult, err } //查询门店库存 //https://open.jd.com/home/home#/doc/api?apiCateId=48&apiId=2983&apiName=jingdong.stock.read.findSkuSiteStock func (a *API) FindSkuSiteStock(siteId int, skuId int64) (getAddressCodeResult []*GetAddressCodeResult, err error) { result, err := a.AccessAPI("jingdong.stock.read.findSkuSiteStock", prodURL, map[string]interface{}{ "siteId": siteId, "skuId": skuId, "venderSource": 4, }) if err == nil { utils.Map2StructByJson(result["jingdong_areas_county_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false) } return getAddressCodeResult, err }