Schema体系是开放平台与天猫/淘宝商品团队共同定义的一套新的开放API规范,用以解决天猫/淘宝商品管理平台的频繁变动给开发者带来的开发维护成本。天猫/淘宝商品平台通过开放平台API将商品管理涉及的元素及规则使用更接近开发者的语言通过xml的方式返回,开发者解析xml后,根据xml中的规则及元素生成一个商品信息xml,调用开放平台API上传完成商品管理。
a)获取商品发布规则信息:alibaba.item.publish.schema.get 对应的v兔接口文档地址是http://doc.vv-tool.com/platformErp/schemaget(接口名获取商品发布规则信息)
b)商品级联属性信息获取:alibaba.item.publish.props.get
c)商品发布:alibaba.item.publish.submit
a)商品编辑获取schema信息:alibaba.item.edit.schema.get
b)商品编辑提交schema信息:alibaba.item.edit.submit
c)商品增量编辑:alibaba.item.edit.fastupdate
a)商品上架:alibaba.item.operate.upshelf
b)商品下架:alibaba.item.operate.downshelf
c)商品删除:alibaba.item.operate.delete
使用Schema接口必须先理解schema体系的结构。一个完整的schema xml会由若干个field组成,每一个field都是用来描述规则和元素。schema结构针对field定义了以下组成部分:
字段名称 | 说明 |
id | 用于描述唯一主键,以商品的标题为例,id=“title”。 |
name | 用于描述field的显示名,以商品的标题为例,name=“商品标题”。 |
type | 用于描述field的值的数据输入类型,schema结构对于field定义了七种类型,分别为input、multiInput、 singleCheck、multiCheck、complex、multiComplex和label。详见3.1说明 |
values | 用于描述multiInput和multiCheck类型的field的value的集合 |
complex-value | 用于描述complex类型的field的多数据值的集合 |
complex-values | 用于描述multiComplex类型的field的多数据值的集合 |
value | 用于描述field的值,上一层级一般为values或者complex-values。 |
option | 用于描述field的值的可选值,与html中select元素中的option标签类似。 (1)displayName,用于描述可选值的展示名。(2)value,用于描述可选值主键。 |
label-group | 用于描述label的聚合,label主要用于描述说明信息 |
rule | 用于描述field的各类系统或者业务规则。详见3.2说明 |
depend-group | 用于描述依赖关系的集合 |
operator | 用于描述集合中多个依赖关系的关系,包括 ‘and’(与关系)和’or’(或关系) |
depend-express | 用于描述依赖关系,上层为depend-group,与Rule中的disableRule是成组出现的。一般可以理解为当满足依赖关系时,disableRule为true才成立 depend-express中会包含fieldId、value和symbol。目前支持的symbol见3.3说明。 |
type 用于描述field的值的数据输入类型,schema结构对于field定义了七种类型,分别为input、multiInput、singleCheck、multiCheck、complex、multiComplex和label。
类型 | 类型说明 |
input | 当前field的值为文本输入 |
multiInput | 当前field的值为多行文本输入型 |
singleCheck | 当前field的值为单选输入型,类似于radio |
multiCheck | 当前field的值为多选输入型,类似于checkbox |
complex | 当前field的值为复合结构,表示数据的聚合 |
multiComplex | 当前field的值为复合结构,与complex有差别的在于multiComplex的field是可以有多份数据实例样本 |
rule 用于描述field的各类系统或者业务规则。
rule类型 | 类型说明 |
valueTypeRule | 用于描述field值需要满足数据类型,包括了text(文本型)/decimal(小数型)/integer(整数型)/date(日期型)/long(长整数型)/url(超链接)/textarea(多行文本)/html(支持html标记语法的文本) |
requiredRule | 是否必填,默认为false,true/false |
disableRule | 是否忽略此field,为true时,将不对rule进行check,同时他的value也将无效。默认为false,值范围包含true/false |
maxLengthRule | 最大长度 |
minLengthRule | 最小长度 |
maxValueRule | 最大值(数值类型时有效) |
minValueRule | 最小值(数值类型时有效) |
maxInputNumRule | 最多可选数(多选时有效) |
minInputNumRule | 至少要选数(多选时有效) |
maxTargetSizeRule | 最大目标文件大小 |
minTargetSizeRule | 最小目标文件大小 |
readOnlyRule | 只读,用户无法修改返回值,值范围为true/false |
regxRule | 正则表达式匹配 |
tipRule | Field中展示的tip信息,用于一些无法直接用语法描述或者过于复杂的规则,或者提示信息,需要给用户透出。 |
maxImageSizeRule | 最大图片大小,指的是分辨率,如800*800 |
minImageSizeRule | 最小图片大小 |
devTipRule | 一般用于给开发者提示,不需要展示给用户,开发者可以通过此Rule获取特定的信息,如 例子中的如何获取售后模板信息 |
symbol | 说明 |
is null | fieldId指向的字段的值为空 |
== | fieldId指向的字段的值等于value |
!= | fieldId指向的字段的值不等于value |
> | fieldId指向的字段的值大于value |
< | fieldId指向的字段的值小于value |
>= | fieldId指向的字段的值大于等于value |
<= | fieldId指向的字段的值小于等于value |
contains | fieldId指向的字段的值中包含有value |
not contains | fieldId指向的字段的值中不包含有value |
this field’s value in fieldOptions | fieldId指向的字段的值中在fieldId对应的value列表中 |
this field’s value not in fieldOptions | fieldId指向的字段的值中不在fieldId对应的value列表中 |
input | multiInput | singleCheck | multiCheck | complex | multiComplex | |
valueTypeRule | √ | √ | ||||
requiredRule | √ | √ | √ | √ | √ | √ |
disableRule | √ | √ | √ | √ | √ | √ |
maxLengthRule | √ | √ | ||||
minLengthRule | √ | √ | ||||
maxValueRule | √ | √ | ||||
minValueRule | √ | √ | ||||
maxInputNumRule | √ | √ | √ | |||
minInputNumRule | √ | √ | √ | |||
maxTargetSizeRule | √ | √ | √ | √ | ||
minTargetSizeRule | √ | √ | √ | √ | ||
readOnlyRule | √ | √ | √ | √ | √ | √ |
regxRule | √ | √ | ||||
tipRule | √ | √ | √ | √ | √ | √ |
maxImageSizeRule | √ | √ | √ | √ | ||
minImageSizeRule | √ | √ | √ | √ |
数据过大,请点击查看全量schema查看。
TipRule一般用于无法直接描述的复杂规则,isv需要将该规则在页面上透出给用户。以价格为例
<field id="price" name="商品价格" type="input"> <rules> <rule name="valueTypeRule" value="decimal"/> <rule name="requiredRule" value="true"/> <rule name="tipRule" value="一口价 应在 销售属性表中所填 最高与最低价格 范围区间内。"/> <rule name="minValueRule" value="0.00" exProperty="not include"/> <rule name="maxValueRule" value="100000000.00" exProperty="not include"/> <rule name="383278799_1" value="商品价格必须在销售属性表中所填最高与最低价格范围区间内"/> <rule name="tipRule" value="为避免一口价变动引发的违规,请谨慎输入价格。" url="http://rule.tmall.com/tdetail-1168.htm?tag=self"/> </rules> </field>
先Rule一般用于给开发者提示,不需要展示给用户,开发者可以通过此Rule获取特定的信息,如例子中的如何获取售后模板信息。以售后模板为例:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!