# Product

> The values of `product` inside `smootify-product` or `smootify-variant` or `box-item`.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/astro/reference/attributes/product  
Updated: 2026-10-21

## Where it can go

- **Inside any of:** [`smootify-product`](https://www.smootify.io/docs/astro/reference/elements/smootify-product), [`smootify-variant`](https://www.smootify.io/docs/astro/reference/elements/smootify-variant), [`box-item`](https://www.smootify.io/docs/astro/reference/elements/box-item).
- On text.

## Values

| Attribute and value | What it is | Notes |
|---|---|---|
| `product="title"` | Title | — |
| `product="vendor"` | Vendor | On a link, it goes to the vendor; on text, link |
| `product="description"` | Description | on rich, container |
| `product="url"` | Link | The title too, when empty; on link |
| `product="link"` | Link only | on link; inside smootify-product |
| `product="specific-image"` | Image by position | index counts from 0: 0 is the first image, and without it the second; on image, lightbox; set together with index=“1” |
| `product="first-collection"` | First collection | on text, link |
| `product="collections"` | Collections | One copy per collection; on text, link, container; inside smootify-product |
| `product="category"` | Category | inside smootify-product |
| `product="type"` | Type | inside smootify-product |
| `product="tags"` | Tags | One copy per tag; exclude takes a list; on text; inside smootify-product |
| `product="option-values"` | Option values | One copy per value of the option; on container, text, button, link; inside smootify-product; set together with data-option=“1” |
| `product="stock"` | Stock | Every variant together; inside smootify-product |
| `product="published-at"` | Published on | inside smootify-product |
| `product="created-at"` | Created on | inside smootify-product |
| `product="min-price"` | Lowest price | inside smootify-product |
| `product="min-available-price"` | Lowest available price | inside smootify-product |
| `product="max-price"` | Highest price | inside smootify-product |
| `product="min-compare-at-price"` | Lowest compare-at price | inside smootify-product |
| `product="max-compare-at-price"` | Highest compare-at price | inside smootify-product |
| `product="gallery"` | Gallery | Holds the gallery parts; on container; inside smootify-product |
| `include-media=""` | Videos and 3D in the gallery | Adds the product’s videos, YouTube and Vimeo videos and 3D models; without it the gallery shows images only; on container; inside smootify-product; with [product=“gallery”] |
| `variant-images=""` | Only the variant’s images, by position | Each image linked to a variant starts a group that runs until the next linked image; on container; inside smootify-product; with [product=“gallery”] |
| `variant-images="alt"` | Only the variant’s images, by alt text | Each image goes with the variants its alt text names after the last #; an image without a tag shows for every variant; on container; inside smootify-product; with [product=“gallery”] |
| `product="images"` | Images (deprecated: use Gallery) | One copy per image; on image, link, lightbox, container; inside smootify-product; deprecated: use [product=“gallery”] |
| `product="media"` | Media (deprecated: use Gallery) | One copy per image, video or model; on image, link, lightbox, container; inside smootify-product; deprecated: use [product=“gallery”] |
| `product="video"` | First video | on container, lightbox, video; inside smootify-product |
| `product="videos"` | Videos | One copy each; on container, lightbox, video; inside smootify-product |
| `product="external-video"` | First YouTube or Vimeo | on youtube, lightbox, container; inside smootify-product |
| `product="external-videos"` | YouTube and Vimeo videos | One copy each; on youtube, lightbox, container; inside smootify-product |
| `product="model"` | 3D model | on container; inside smootify-product; also read as models |
| `index="0 is the first"` | Image number, from 0 | on image; with [product=“specific-image”] |
| `exclude="tag,other tag"` | Leave out | A comma list; spaces around the values are ignored; on text, link, container; with [product=“tags”], [product=“collections”], [product=“first-collection”] |
| `data-option="1"` | Option number | on container, text, button, link; inside smootify-product; with [product=“option-values”] |
| `data-option-name="Color, Colour"` | Option name | The first of the names the product has; on container, text, button, link; inside smootify-product; with [product=“option-values”] |
