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:

<?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:

<?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:

<?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:

<?php foreach($_product->get('versions') as $version): ?>
    <h1>Versión <?=$version->get('id')?></h1>
    <p>Precio: <?=$_product->price($version->get('id'))?></p>
<?php endforeach; ?>

Last updated