syntax = "v1" info ( title: "shopping-cart"// TODO: add title desc: "购物车服务"// TODO: add description author: "" email: "" ) import "basic.api" service shopping-cart { //加入购物车 @handler AddToCartHandler post /api/shopping-cart/add(AddToCartReq) returns (response); //删除购物车 @handler DeleteCartHandler post /api/shopping-cart/delete(DeleteCartReq) returns (response); //获取购物车列表 @handler GetCartsHandler get /api/shopping-cart/get_carts(GetCartsReq) returns (response); //计算购物车价格 @handler CalculateCartPriceHandler post /api/shopping-cart/calculate_cart_price(CalculateCartPriceReq) returns (response); //获取购物车数量 @handler GetCartNumHandler get /api/shopping-cart/get_cart_num(request) returns (response); } //加入购物车 type AddToCartReq { ProductId int64 `json:"product_id"` //产品id TemplateId int64 `json:"template_id,optional"` //模板id(不可定制的不传) IsHighlyCustomized int64 `json:"is_highly_customized"` //是否高度定制 SelectColorIndex int64 `json:"select_color_index"` //选择的颜色索引 SizeId int64 `json:"size_id"` //尺寸id FittingId int64 `json:"fitting_id,optional"` //配件id(没有可以不传) PurchaseQuantity int64 `json:"purchase_quantity"` //购买数量 Logo string `json:"logo,optional"` //logo地址(没有可以不传) CombineImage string `json:"combine_image,optional"` //合图地址 (没有可以不传) RenderImage string `json:"render_image,optional"` //渲染结果图 (没有可以不传) SwitchInfo map[string]interface{} `json:"switch_info,optional"` //开关信息 DiyInfo DiyInfo `json:"diy_info,optional"` //用户diy数据(可选) } type DiyInfo { Phone string `json:"phone,optional"` //电话(可选) Address string `json:"address,optional"` //地址 (可选) Website string `json:"website,optional"` //网站 (可选) Qrcode string `json:"qrcode,optional"` //二维码 (可选) Slogan string `json:"slogan,optional"` //slogan (可选) } //删除购物车 type DeleteCartReq { Id int64 `json:"id"` //购物车id } //获取购物车列表 type GetCartsReq { CartId int64 `form:"cart_id,optional"` //购物车ids可选 } type GetCartsRsp { Meta Meta `json:"meta"` //分页信息 CartList []CartItem `json:"cart_list"` } type CartItem { CartId int64 `json:"cart_id"` ProductInfo ProductInfo `json:"product_info"` //产品信息 SizeInfo SizeInfo `json:"size_info"` //尺寸信息 FittingInfo FittingInfo `json:"fitting_info"` //配件信息 ItemPrice string `json:"item_price"` //单价 TotalPrice string `json:"total_price"` //单价X数量=总价 DiyInformation DiyInformation `json:"diy_information"` //diy信息 PurchaseQuantity int64 `json:"purchase_quantity"` //当前购买数量 MinPurchaseQuantity int64 `json:"min_purchase_quantity"` //起购数量 StepPurchaseQuantity int64 `json:"step_purchase_quantity"` //购买加或者减少步进量 IsHighlyCustomized int64 `json:"is_highly_customized"` //是否高度定制 IsInvalid bool `json:"is_invalid"` //是否无效 InvalidDescription string `json:"invalid_description"` //无效原因 IsSelected bool `json:"is_selected"` //是否选中 TemplateTag string `json:"template_tag"` //模板标签 SelectColorIndex int64 `json:"select_color_index"` //选择的颜色索引 Logo string `json:"logo"` RenderImage string `json:"render_image"` //渲染结果图 } type ProductInfo { ProductId int64 `json:"product_id"` //产品id ProductName string `json:"product_name"` ProductSn string `json:"product_sn"` ProductCover string `json:"product_cover"` //产品图 ProductCoverMetadata interface{} `json:"product_cover_metadata"` //产品图元数据 } type SizeInfo { SizeId int64 `json:"size_id"` //尺寸id Capacity string `json:"capacity"` //尺寸名称 Title SizeTitle `json:"title"` } type FittingInfo { FittingId int64 `json:"fitting_id"` //配件id FittingName string `json:"fitting_name"` //配件名称 } type SizeTitle { Cm string `json:"cm"` Inch string `json:"inch"` } type DiyInformation { Phone string `json:"phone"` Address string `json:"address"` Website string `json:"website"` Qrcode string `json:"qrcode"` Slogan string `json:"slogan"` } //计算购物车价格 type CalculateCartPriceReq { CalculateList []CalculateItem `json:"calculate_list"` } type CalculateItem { CartId int64 `json:"cart_id"` //购物车id PurchaseQuantity int64 `json:"purchase_quantity"` //数量 IsSelected bool `json:"is_selected"` //是否是选中的,选中的会统计到总价中 } type CalculateCartPriceRsp { SubTotalPrice string `json:"sub_total_price"` CalculateResultList []CalculateResultItem `json:"calculate_result_list"` } type CalculateResultItem { CartId int64 `json:"cart_id"` //购物车id ItemPrice string `json:"item_price"` //单价 TotalPrice string `json:"total_price"` //总价 } //获取购物车数量 type GetCartNumRsp { TotalCount int64 `json:"total_count"` }