Shopify · Schema
Shopify Collection
A product collection in a Shopify store. Collections group products together for merchandising and navigation. Custom collections have manually curated products while smart collections use rules to automatically include products.
CommerceEcommercePaymentsRetailShopping CartT1
Properties
| Name | Type | Description |
|---|---|---|
| id | integer | Unique numeric identifier for the collection |
| title | string | The name of the collection |
| handle | string | A URL-friendly unique string automatically generated from the title |
| body_html | stringnull | The description of the collection in HTML format |
| published_at | stringnull | When the collection was published |
| sort_order | string | The sort order for products in the collection |
| template_suffix | stringnull | The Liquid template suffix for the collection page |
| published_scope | string | Whether the collection is published to the POS channel |
| updated_at | string | When the collection was last modified |
| image | objectnull | The collection image |
| rules | array | The rules for smart collections that automatically include products |
| disjunctive | boolean | Whether products need to match all rules (false) or any rule (true) |
| admin_graphql_api_id | string | The GraphQL Admin API identifier |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://shopify.dev/schemas/collection.json",
"title": "Shopify Collection",
"description": "A product collection in a Shopify store. Collections group products together for merchandising and navigation. Custom collections have manually curated products while smart collections use rules to automatically include products.",
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Unique numeric identifier for the collection"
},
"title": {
"type": "string",
"description": "The name of the collection"
},
"handle": {
"type": "string",
"description": "A URL-friendly unique string automatically generated from the title"
},
"body_html": {
"type": ["string", "null"],
"description": "The description of the collection in HTML format"
},
"published_at": {
"type": ["string", "null"],
"format": "date-time",
"description": "When the collection was published"
},
"sort_order": {
"type": "string",
"description": "The sort order for products in the collection",
"enum": [
"alpha-asc",
"alpha-desc",
"best-selling",
"created",
"created-desc",
"manual",
"price-asc",
"price-desc"
]
},
"template_suffix": {
"type": ["string", "null"],
"description": "The Liquid template suffix for the collection page"
},
"published_scope": {
"type": "string",
"description": "Whether the collection is published to the POS channel"
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "When the collection was last modified"
},
"image": {
"type": ["object", "null"],
"description": "The collection image",
"properties": {
"src": {
"type": "string",
"format": "uri",
"description": "The image URL"
},
"alt": {
"type": ["string", "null"],
"description": "Alt text for the image"
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
},
"rules": {
"type": "array",
"description": "The rules for smart collections that automatically include products",
"items": {
"type": "object",
"properties": {
"column": {
"type": "string",
"description": "The property to match against",
"enum": ["title", "type", "vendor", "variant_price", "tag", "variant_compare_at_price", "variant_weight", "variant_inventory", "variant_title"]
},
"relation": {
"type": "string",
"description": "The comparison operator",
"enum": ["equals", "not_equals", "starts_with", "ends_with", "contains", "not_contains", "greater_than", "less_than"]
},
"condition": {
"type": "string",
"description": "The value to compare against"
}
}
}
},
"disjunctive": {
"type": "boolean",
"description": "Whether products need to match all rules (false) or any rule (true)"
},
"admin_graphql_api_id": {
"type": "string",
"description": "The GraphQL Admin API identifier"
}
},
"required": ["id", "title"]
}