product
A product in the store.
Properties
Returns
true
if at least one of the variants of the product is available. Returnsfalse
if not.For a variant to be available, it needs to meet one of the following criteria:
- The
is greater than 0.
- The
is set to
continue
. - The
is
nil
. - The variant has an associated delivery profile with a valid shipping rate.
- The
- category
The taxonomy category for the product
- collectionsarray of collection
The collections that the product belongs to.
NoteCollections that aren't available on the Online Store sales channel aren't included.
The lowest compare at price of any variants of the product in the currency's subunit.
The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
The highest compare at price of any variants of the product in the currency's subunit.
The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
The lowest compare at price of any variants of the product in the currency's subunit. This is the same as
.
The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
Returns
true
if the variant compare at prices of the product vary. Returnsfalse
if not.The description of the product.
NoteThis is the same value as
product.description
.A timestamp for when the product was created.
TipUse the
date
filter to format the timestamp.The description of the product.
NoteThis is the same value as
product.content
.The first (featured) media attached to the product.
TipYou can use media filters to output media URLs and displays. To learn about how to include media in your theme, refer to Support product media.
The first available variant of the product.
For a variant to be available, it needs to meet one of the following criteria:
- The
is greater than 0.
- The
is set to
continue
. - The
is
nil
.
- The
Returns
true
if the product doesn't have any options. Returnsfalse
if not.The media attached to the product, sorted by the date it was added to the product.
TipYou can use media filters to output media URLs and displays. To learn about how to include media in your theme, refer to Support product media.
- metafields
The metafields applied to the product.
TipTo learn about how to create metafields, refer to Create and manage metafields or visit the Shopify Help Center.
The option names of the product.
ExampleOutput the optionsYou can use the
size
filter with dot notation to determine how many options a product has.{% if product.options.size > 0 -%}{% for option in product.options -%}- {{ option }}{%- endfor %}{%- endif %}{% if product.options.size > 0 -%} {% for option in product.options -%} - {{ option }} {%- endfor %} {%- endif %}
{ "product": { "options": [ "Size", "Strength" ] } }
Output
- Size- Strength- options_
by_ name Allows you to access a specific product option by its name.
ExampleOutput the values for a specific optionWhen accessing a specific option, the name is case-insensitive.
<label>Strength<select>{%- for value in product.options_by_name['strength'].values %}<option>{{ value }}</option>{%- endfor %}</select></label><label> Strength <select> {%- for value in product.options_by_name['strength'].values %} <option>{{ value }}</option> {%- endfor %} </select> </label>
{ "product": { "options_by_name": {} } }
Output
<label>Strength<select><option>Low</option><option>Medium</option><option>High</option></select></label>- options_
with_ values array of product_option The options on the product.
The lowest price of any variants of the product in the currency's subunit.
The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
The highest price of any variants of the product in the currency's subunit.
The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
The lowest price of any variants of the product in the currency's subunit.
NoteThis is the same value as
product.price
.The value is output in the customer's local (presentment) currency.
For currencies without subunits, such as JPY and KRW, tenths and hundredths of a unit are appended. For example, 1000 Japanese yen is output as 100000.
TipUse money filters to output a formatted price.
Returns
true
if the product's variant prices vary. Returnsfalse
if not.A timestamp for when the product was published.
TipUse the
date
filter to format the timestamp.Returns
true
if the product has at least one variant with quantity price breaks in the current customer context. Returnsfalse
if not.Returns
true
if all of the variants of the product require a selling plan. Returnsfalse
if not.- selected_
or_ first_ available_ selling_ plan_ allocation The currently selected, or first available, selling plan allocation.
The following logic is used to determine which selling plan allocation is returned:
Selling plan allocation Return criteria The currently selected allocation Returned if a variant and selling plan are selected.
The selected variant is determined by thevariant
URL parameter, and the selected selling plan is determined by theURL parameter.
The first allocation on the first available variant Returned if no allocation is currently selected. The first allocation on the first variant Returned if no allocation is currently selected, and there are no available variants. If the product doesn't have any selling plans, then
nil
is returned.The currently selected or first available variant of the product.
NoteThe selected variant is determined by the
variant
URL parameter. Theparameter is available on product pages only.
For a variant to be available, it needs to meet one of the following criteria:
- The
is greater than 0.
- The
is set to
continue
. - The
is
nil
.
- The
- selected_
selling_ plan The currently selected selling plan.
If no selling plan is selected, then
nil
is returned.NoteThe selected selling plan is determined by the
URL parameter.
- selected_
selling_ plan_ allocation The currently selected selling plan allocation for the currently selected variant.
If no variant and selling plan are selected, then
nil
is returned.NoteThe selected variant is determined by the
variant
URL parameter, and the selected selling plan is determined by theURL parameter.
The currently selected variant of the product.
If no variant is currently selected, then
nil
is returned.NoteThe selected variant is determined by the
variant
URL parameter. This URL parameter is available on product pages URLs only.- selling_
plan_ groups array of selling_plan_group The selling plan groups that the variants of the product are included in.
The tags of the product.
NoteThe tags are returned in alphabetical order.
The name of the custom template of the product.
The name doesn't include the
product.
prefix, or the file extension (.json
or.liquid
).If a custom template isn't assigned to the product, then
nil
is returned.The relative URL of the product.
If a product is recommended, then the URL contains tracking parameters:
/products/gorgeous-wooden-computer?pr_choice=default&pr_prod_strat=description&pr_rec_pid=13&pr_ref_pid=17&pr_seq=alternatingThe variants of the product.
NoteReturns a maximum of 250 variants when unpaginated. Tip: Use the paginate tag to choose how many variants to show per page, up to a limit of 50.
{
"available": true,
"category": {},
"collections": [],
"compare_at_price": "25.00",
"compare_at_price_max": "25.00",
"compare_at_price_min": "25.00",
"compare_at_price_varies": false,
"content": "<h3>Are you low on health? Well we've got the potion just for you!</h3>\n<p>Just need a top up? Almost dead? In between? No need to worry because we have a range of sizes and strengths!</p>",
"created_at": "2022-04-13 14:46:16 -0400",
"description": "<h3>Are you low on health? Well we've got the potion just for you!</h3>\n<p>Just need a top up? Almost dead? In between? No need to worry because we have a range of sizes and strengths!</p>",
"featured_image": {},
"featured_media": {},
"first_available_variant": {},
"gift_card?": false,
"handle": "health-potion",
"has_only_default_variant": false,
"id": 6786188247105,
"images": [],
"media": [],
"metafields": {},
"options": [
"Size",
"Strength"
],
"options_by_name": {},
"options_with_values": [],
"price": "10.00",
"price_max": "22.00",
"price_min": "10.00",
"price_varies": true,
"published_at": "2022-04-13 14:53:34 -0400",
"quantity_price_breaks_configured?": false,
"requires_selling_plan": false,
"selected_or_first_available_selling_plan_allocation": {},
"selected_or_first_available_variant": {},
"selected_selling_plan": null,
"selected_selling_plan_allocation": null,
"selected_variant": null,
"selling_plan_groups": [],
"tags": [
"healing"
],
"template_suffix": "",
"title": "Health potion",
"type": {},
"url": {},
"variants": [],
"variants_count": 9,
"vendor": "Polina's Potent Potions"
}