Objetos /
product
Un producto con sus variantes, imágenes, opciones y metacampos.
Dónde está
Global en la página de producto (templates/product.json). También en collection.products, search.results y en los settings de tipo product y product_list.
Propiedades
| Propiedad | Tipo | Qué es |
|---|---|---|
product.id | texto | Identificador. |
product.title | texto | Nombre. |
product.handle | texto | Handle (la parte final de la URL). |
product.url | texto | /products/<handle>. |
product.description | HTML | Descripción con formato. |
product.content | HTML | Alias de description. |
product.vendor | texto | Marca. |
product.type | texto | Tipo de producto. |
product.tags | array de textos | Etiquetas. |
product.available | booleano | Si alguna variante tiene stock. |
product.price | número (unidades menores) | Precio más bajo entre las variantes. |
product.price_min | número (unidades menores) | Precio más bajo. |
product.price_max | número (unidades menores) | Precio más alto. |
product.price_varies | booleano | Si las variantes tienen precios distintos. |
product.compare_at_price | número (unidades menores) o nil | Precio de lista (tachado) de la variante elegida. |
product.compare_at_price_max | número (unidades menores) o nil | Precio de lista más alto. |
product.featured_image | image o nil | Primera imagen. |
product.images | array de image | Imágenes, en orden. |
product.media | array de media | Las imágenes como medios (media_type: "image", position, preview_image). |
product.options | array de textos | Nombres de las opciones (Talle, Color). |
product.options_with_values | array | Cada opción con name, position, values y selected_value. |
product.has_only_default_variant | booleano | Si el producto no tiene opciones (una sola variante). |
product.variants | array de variant | Variantes. |
product.selected_variant | variant o nil | La variante de ?variant= en la URL, si hay. |
product.selected_or_first_available_variant | variant o nil | La elegida, o la primera con stock, o la primera. |
product.first_available_variant | variant o nil | La primera con stock. |
product.metafields | objeto | Metacampos: product.metafields.<namespace>.<key>. |
Ejemplo
<h1>{{ product.title }}</h1>
{% assign v = product.selected_or_first_available_variant %}
<p>
{{ v.price | money }}
{% if v.compare_at_price > v.price %}<s>{{ v.compare_at_price | money }}</s>{% endif %}
</p>
{% form 'product', product %}
<input type="hidden" name="id" value="{{ v.id }}">
<button {% unless v.available %}disabled{% endunless %}>Agregar al carrito</button>
{% endform %}