Product
A product. Required fields are guaranteed by the server (the server's contract spec checks them); optional ones may be absent.
Type: object
| Field | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
handle | string | ||||||||||
id | string | number | ||||||||||
title | string | ||||||||||
vendor | string | ||||||||||
type | string | ||||||||||
min_price optional | number | null | Absent (or null) when zero. | |||||||||
compare_at_min_price optional | number | null | ||||||||||
on_sale | boolean | number | Boolean or 0/1. | |||||||||
total_stock | number | ||||||||||
created_date | string | ||||||||||
tags | string[] | ||||||||||
image | string | ||||||||||
images | string[] | ||||||||||
variants | Variant[] | ||||||||||
prices | { [key]: PresentmentPrice } | Prices per presentment currency code. Fields
| |||||||||
related optional | string | RelatedProduct[] | Related products: a JSON string of RelatedProduct[] (or the array itself). | |||||||||
imploded optional | Product[] | Products imploded into this one (same shape). | |||||||||
meta optional | object | Fields
| |||||||||
[key: string] | any | Any further keys. |
Example (illustrative)
{
"handle": "linen-shirt",
"id": 7712345678901,
"title": "Linen shirt",
"vendor": "Mercury Apparel",
"type": "Shirts",
"min_price": 89,
"compare_at_min_price": 89,
"on_sale": false,
"total_stock": 12,
"created_date": "2026-11-01T00:00:00.000Z",
"tags": [
"summer"
],
"image": "https://cdn.shopify.com/s/files/1/0000/0001/files/linen-shirt.jpg",
"images": [
"https://cdn.shopify.com/s/files/1/0000/0001/files/linen-shirt.jpg"
],
"variants": [
{
"id": 7712345678901,
"title": "Linen shirt",
"price": 89,
"compare_at_price": 89,
"inventory": 12,
"option1": "string",
"option2": "string",
"option3": "string"
}
],
"prices": {
"AUD": {
"price": 89,
"compare_at_price": 89
}
},
"related": [
{
"handle": "linen-shirt"
}
],
"imploded": [
{
"handle": "linen-shirt",
"id": 7712345678901,
"title": "Linen shirt",
"vendor": "Mercury Apparel",
"type": "Shirts",
"min_price": 89,
"compare_at_min_price": 89,
"on_sale": false,
"total_stock": 12,
"created_date": "2026-11-01T00:00:00.000Z",
"tags": [
"summer"
],
"image": "https://cdn.shopify.com/s/files/1/0000/0001/files/linen-shirt.jpg",
"images": [
"https://cdn.shopify.com/s/files/1/0000/0001/files/linen-shirt.jpg"
],
"variants": [
{
"id": 7712345678901,
"title": "Linen shirt",
"price": 89
}
],
"prices": {
"AUD": {
"price": 89
}
},
"related": [
{
"handle": "linen-shirt"
}
],
"imploded": [
{}
],
"meta": {
"key": null
}
}
],
"meta": {
"badges": [
{
"content": "string",
"background": "#1f6feb",
"colour": "#1f6feb",
"positiony": "string",
"positionx": "string"
}
]
}
}Used by
Declared in api-types/src/kit-contract/v1/search-api.ts.