Usar atributos de productos Guía para usar atributos (tallas - colores, etc) de productos
Uso de atributos
Paso 1
Obtener atributos de producto (en /inc/catalog/product.php)
Recorrer el objeto $_attribute y usar el método
$_product->getAvailableAttributeValues($attributeId) para obtener los valores para cada atributo:
Copy <?php while($_attribute->getNext()): ?>
<label>
<?=$_attribute->get('name')?>
<select name="attributes[<?=$_attribute->get('id')?>]" class="attribute" data-id="<?=$_attribute->get('id')?>">
<?php foreach($_product->getAvailableAttributeValues($_attribute->get('id')) as $value): ?>
<option value="<?=$value?>"><?=$value?></option>
<?php endforeach; ?>
</select>
</label>
<?php endwhile; ?>
Alternativamente, puede utilizarse el método getAvailableAttributeValuesWithColors para atributos de tipo color:
Copy <?php while($_attribute->getNext()): ?>
<label>
<?=$_attribute->get('name')?>
<select name="attributes[<?=$_attribute->get('id')?>]" class="attribute" data-id="<?=$_attribute->get('id')?>">
<?php foreach($_product->getAvailableAttributeValuesWithColors($_attribute->get('id')) as $data): ?>
<option value="<?=$data['value']?>"><?=$data['value']?> (Color: <?=$data['color']?>)</option>
<?php endforeach; ?>
</select>
</label>
<?php endwhile; ?>
Paso 2
Obtener ID de versión
Normalmente no es necesario obtener el ID de una versión para agregar un producto al carrito (el sistema lo obtiene automáticamente a partir de los atributos seleccionados), pero de ser necesario puede accederse al array versions de $_product:
Copy <?php foreach($_product->get('versions') as $version): ?>
<h1>Versión <?=$version->get('id')?></h1>
<?php foreach($version->get('attributes') as $attribute): ?>
<p>Atributo "<?=$attribute->get('attribute')->get('name')?>": <?=$attribute->get('value')?></p>
<?php endforeach; ?>
<?php endforeach; ?>
Paso 3
Enviar ID versión a métodos de $_product
En algunos casos puede obtenerse información de una versión a través del objeto $_product. Por ejemplo, el método price recibe un ID de versión como primer parámetro:
Copy <?php foreach($_product->get('versions') as $version): ?>
<h1>Versión <?=$version->get('id')?></h1>
<p>Precio: <?=$_product->price($version->get('id'))?></p>
<?php endforeach; ?>