POST 获取商品配置项
智简魔方业务系统 V10 地域购物车商品配置接口,供前台根据商品和原生来源获取动态配置分组、字段协议及默认值。开发者可据此生成配置表单,并按必填条件、可见条件和数值约束填写完整配置,用于后续报价与加入购物车。
接口概览
| 项目 | 内容 |
|---|---|
| 文档类型 | 前台接口 |
| 请求方式 | POST |
| 接口地址 | /console/v1/location_cart/product/{id}/options |
| 所属业务 | 地域购物车 |
| 来源模块/系统 | 地域购物车插件(location_cart) |
| 接口版本 | v2 |
| 认证方式 | 允许游客访问;登录用户可沿用前台 JWT。 |
完整请求
请求
正在加载示例…接口说明
按商品 ID、原生来源和计费方式返回统一配置字段协议。路径中的 {id} 为 V10 商品 ID,对应原路由中的 :id。
前端优先使用 groups 渲染配置表单,以 defaults 作为初始配置。默认值不代表配置已经完整,必填空值仍需补全。
配置变化后,将当前已选 config_options 再次提交本接口,刷新依赖项、可见项及默认值。
请求参数
| 名称 | 位置 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | path | integer | 是 | — | V10商品ID |
source_key | body | string | 是 | — | 原生来源稳定标识,由商品接口返回 |
billing_mode | body | string | 是 | — | 计费方式 recurring_prepayment=包年包月 on_demand=按需计费 |
config_options | body | object | 否 | — | 当前已选配置;选择变化后原样传回,用于重新计算依赖项、可见项和默认值 |
成功响应
以下为结构示例,部分可选或动态字段省略;全部响应字段定义见“响应参数”。
正在加载示例…失败响应
业务状态 400:参数或业务校验失败。提示信息以实际响应中的 msg 为准。
正在加载示例…响应状态
| 业务状态码 | 含义 | 说明 |
|---|---|---|
200 | 请求成功 | 读取 data 继续购买流程。 |
400 | 请求参数或业务校验失败 | 商品、来源或计费方式无效,或配置加载失败。 |
上表为 JSON 响应体中的
status,不是 HTTP 状态码。不能仅凭 HTTP 请求成功判断业务是否成功。
响应参数
成功响应与特定业务失败响应中使用的字段如下。字段是否出现取决于响应场景;原文档未声明返回字段的必选属性。
| 名称 | 类型 | 说明 |
|---|---|---|
status | integer | 状态码 200成功 400失败 |
msg | string | 提示信息 |
data | object | 商品配置协议 |
data.product | object | 商品信息 |
data.product.product_id | integer | V10商品ID |
data.product.name | string | 商品名称 |
data.product.module | string | 原生模块 mf_cloud或mf_dcim |
data.source | object | 服务端确认的原生地域与线路来源 |
data.source.source_key | string | 原生来源稳定标识 |
data.source.data_center_id | integer | 原生数据中心ID |
data.source.line_id | integer | 原生线路ID |
data.billing_mode | string | 规范化后的计费方式 |
data.groups | array | 配置字段分组 compute计算 storage存储 network网络 system系统与周期 |
data.groups[].key | string | 分组标识 |
data.groups[].label | string | 分组显示名称 |
data.groups[].fields | array | 分组内字段列表 |
data.groups[].fields[].key | string | 提交到config_options的字段名 |
data.groups[].fields[].label | string | 字段显示名称 |
data.groups[].fields[].type | string | 控件类型 radio select number text password repeatable |
data.groups[].fields[].required | boolean | 当前条件下是否必填 |
data.groups[].fields[].default_value | any | 字段默认值 |
data.groups[].fields[].options | array | 可选值列表 |
data.groups[].fields[].options[].value | any | 选项提交值 |
data.groups[].fields[].options[].label | string | 选项显示名称 |
data.groups[].fields[].options[].disabled | boolean | 选项是否不可选择 |
data.groups[].fields[].visible_when | object | 字段条件显示规则 |
data.groups[].fields[].config_modes | array | 字段适用的配置方式 |
data.groups[].fields[].min | number | 数值最小值 |
data.groups[].fields[].max | number | 数值最大值 |
data.groups[].fields[].step | number | 数值步长 |
data.groups[].fields[].unit | string | 数值单位 |
data.groups[].fields[].constraints | object | 分段范围等约束 |
data.groups[].fields[].item_schema | object | repeatable字段的子项结构 |
data.defaults | object | 仅包含当前活动公开字段的配置默认值,可作为config_options提交基线;必填空值仍需前端补全 |
data.native | object | mf_cloud或mf_dcim原生配置快照,开发者通常应优先使用groups和defaults |