42 lines
2.2 KiB
JSON
42 lines
2.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "schema:ProductGroup",
|
|
"title": "ProductGroup",
|
|
"description": "A ProductGroup represents a group of [[Product]]s that vary only in certain well-described ways, such as by [[size]], [[color]], [[material]] etc.\n\nWhile a ProductGroup itself is not directly offered for sale, the various varying products that it represents can be. The ProductGroup serves as a prototype or template, standing in for all of the products who have an [[isVariantOf]] relationship to it. As such, properties (including additional types) can be applied to the ProductGroup to represent characteristics shared by each of the (possibly very many) variants. Properties that reference a ProductGroup are not included in this mechanism; neither are the following specific properties [[variesBy]], [[hasVariant]], [[url]]. ",
|
|
"type": "object",
|
|
"allOf": [
|
|
{
|
|
"description": "Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.",
|
|
"$ref": "schema:Product"
|
|
}
|
|
],
|
|
"properties": {
|
|
"hasVariant": {
|
|
"description": "Indicates a [[Product]] that is a member of this [[ProductGroup]] (or [[ProductModel]]).",
|
|
"oneOf": [
|
|
{ "$ref": "schema:Product" },
|
|
{ "type": "array", "items": { "$ref": "schema:Product" } }
|
|
]
|
|
},
|
|
"productGroupID": {
|
|
"description": "Indicates a textual identifier for a ProductGroup.",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" } }
|
|
]
|
|
},
|
|
"variesBy": {
|
|
"description": "Indicates the property or properties by which the variants in a [[ProductGroup]] vary, e.g. their size, color etc. Schema.org properties can be referenced by their short name e.g. \"color\"; terms defined elsewhere can be referenced with their URIs.",
|
|
"oneOf": [
|
|
{ "anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }] },
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [{ "type": "string" }, { "$ref": "schema:DefinedTerm" }]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|