catalog/index.php

Listado de productos

Listado de productos

Este template es la vista por defecto para listar productos en una tienda

Objetos disponibles

Descripción

$_category

Categoría activa.

$_product

Productos.

$_total

Cantidad de productos.

$_subcategories

Subcategorías.

$_totalSubcategories

Cantidad de subcategorías.

$_paginator

Paginador.

$_category

Categorías destacadas.

$_campaign

Campañas asociadas a la categorías.

$_totalCampaigns

Cantidad de campañas.

$_manufacturers

Array de fabricantes presentes en la categoría.

$_manufacturerId

Filtro: id de fabricante.

$_manufacturerIds

Filtro: id de fabricantes (array).

$_manufacturerGroup

Filtro: grupo de fabricantes.

$_minPrice

Precio mínimo en la categoría.

$_maxPrice

Precio máximo en la categoría.

$_selectedMinPrice

Filtro: precio mínimo seleccionado.

$_selectedMaxPrice

Filtro: precio máximo seleccionado.

$_sale

Filtro: productos en oferta.

$_filters

Array de filtros de categoría disponibles.

$_appliedFilters

Filtro: array de filtros aplicados.

$_appliedAttributeFilters

Filtro: array de filtros de atributos aplicados.

$_featuresFilters

Array de filtros de características disponibles.

$_appliedFeaturesFilters

Filtro: array de filtros de características aplicados.

$_warehousesFilters

Array de filtros de bodegas.

$_appliedWarehousesFilters

Filtro: array de filtros de bodegas aplicados.

$_sort

Criterio de ordenamiento.

Este template sirve para mostrar el listado por defecto de productos. También es posible crear vistas especiales para listar productos de forma alternativa según su tipo, categoría, menú de origen, jerarquía o algún criterio personalizado. En ese caso puedes usar estos mismos objetos dentro de tu vista personalizada

Código de ejemplo

// listado simple
<?=$_category->breadcrumb()?>
<h1><?=$_category->get('name')?></h1>

<ul class="listing clearfix">
	<?php
		while($_product->getNext())
			require __DIR__.'/../inc/product.php';
	?>
</ul>

<?php require_once __DIR__.'/pagination.php'; ?>

Código de ejemplo para filtros

<aside>
	
	<div class="sort">
		<h2>Ordenar</h2>
		<ul>
			<li><a href="<?=$_category->getURL()?>?sort=price asc" <?=($_sort == 'price asc' ? 'class="selected"' : '')?>>Precio más bajo</a></li>
			<li><a href="<?=$_category->getURL()?>?sort=price desc" <?=($_sort == 'price desc' ? 'class="selected"' : '')?>>Precio más alto</a></li>
			<li><a href="<?=$_category->getURL()?>?sort=new" <?=($_sort == 'new' ? 'class="selected"' : '')?>>Productos más nuevos</a></li>
			<li><a href="<?=$_category->getURL()?>?sort=discount" <?=($_sort == 'discount' ? 'class="selected"' : '')?>>Mayor descuento</a></li>
		</ul>							
	</div>

	<h1><?=$_category->get('name')?></h1>

	<ul>
		<?php while($_subcategories->getNext()): ?>
		<li>
			<a href="<?=$_subcategories->getURL()?>">
				<?=$_subcategories->get('name')?>	
			</a>
		</li>
		<?php endwhile; ?>
	</ul>
	
	<?php foreach($_attributeFilters as $id => $data): ?>
	<h2><?=$data['name']?></h2>
	
	<ul class="filters">
		<?php foreach($data['values'] as $value): ?>
		<li><a href="<?=Attribute::filterLink($id, $value)?>" class="<?=(isset($_appliedAttributeFilters[$id]) && array_search($value, $_appliedAttributeFilters[$id]) !== false ? 'active' : '')?>"><?=$value?></a></li>
		<?php endforeach; ?>
	</ul>
	<?php endforeach; ?>
					
	<?php foreach($_featuresFilters as $id => $data): ?>
	<h2><?=$data['name']?></h2>
	
	<ul class="filters">
		<?php foreach($data['values'] as $value): ?>
		<li><a href="<?=Feature::filterLink($id, $value)?>" class="<?=(isset($_appliedFeaturesFilters[$id]) && array_search($value, $_appliedFeaturesFilters[$id]) !== false ? 'active' : '')?>"><?=$value?></a></li>
		<?php endforeach; ?>
	</ul>
	<?php endforeach; ?>
					
	<?php if(count($_manufacturers)): ?>
	<h2>Marcas</h2>
	<ul class="filters">
		<?php foreach($_manufacturers as $i => $m): ?>
		<li><a href="<?=Manufacturer::filterLink($m['object']->get('id'))?>" <?=(in_array($m['object']->get('id'), $_manufacturerIds) ? 'class="active"': '')?>><?=$m['object']->get('name')?></a></li>
		<?php endforeach; ?>
	</ul>
	<?php endif; ?>

</aside>

Last updated