Skip to Content
WooCommerceShop catalogo

Shop Catalog Layout

El catalogo compacto principal no vive en woocommerce/archive-product.php del tema, sino en el override del modulo Woo setup.

Archivos clave:

  • setup/modules/woocommerce-setup/templates/woocommerce/archive-product.php
  • setup/modules/woocommerce-setup/module.php
  • setup/modules/woocommerce-setup/assets/js/woocommerce-card.js
  • setup/modules/woocommerce-setup/assets/css/woocommerce-setup.css

Qué controla archive-product.php

Este archivo compone la experiencia principal de tienda y de taxonomias Woo compactas.

Que resuelve:

  • breadcrumbs y notices
  • shell de sidebar y main content
  • drawer mobile de filtros
  • toolbar con ordenacion, filtros y densidad
  • chips de filtros activos
  • strip visual de categorias destacadas
  • grid de productos
  • paginacion y per_page
  • root para refresco AJAX

Ancla principal:

<div class="gp-shop-ajax-root" data-shop-ajax-root>

Eso es clave porque el runtime del catalogo refresca dentro de ese root.

La sidebar no es solo markup pasivo.

Capas:

  • desktop: panel lateral con toggle para colapsar
  • mobile: offcanvas con overlay
  • toolbar: boton de filtros, ordenacion, per_page y controles de vista

Varias features se gobiernan por settings:

  • woo.shop_sidebar_enabled
  • woo.shop_category_filter_enabled
  • woo.shop_price_filter_enabled
  • woo.shop_category_strip_enabled

Grid

El template trabaja con una grid controlada por variables y settings, no por auto-fit generico.

Helpers:

  • bs_wc_setup_shop_default_grid_columns()
  • bs_wc_setup_shop_mobile_columns()
  • bs_wc_setup_shop_per_page()

Rangos permitidos:

  • desktop columns: 1 a 5
  • mobile columns: 1 o 2
  • per_page: 9, 12, 18, 24

Filtros activos

archive-product.php construye un resumen legible de filtros activos a partir de:

  • bs_cat[]
  • attr_pa_*
  • attr_local_*
  • min_price y max_price

Eso sirve tanto para chips visibles como para contadores y copy de toolbar.

Category strip

Ademas del panel izquierdo, el template puede pintar una tira de categorias destacadas.

Comportamiento:

  • en shop general usa top-level categories
  • en una product_cat usa hijas de la categoria actual cuando existen
  • puede anadir acciones tipo Subir a padre o Ver toda la tienda

No es la misma cosa que taxonomy-product_cat.php; aqui sigue dentro del shell de catalogo compacto.

Query y contexto

El HTML de archive-product.php no decide solo la query, pero si consume y refleja varios GET params saneados:

  • bs_cat
  • attr_pa_*
  • attr_local_*
  • min_price
  • max_price
  • paged
  • per_page
  • balinot_view

La parte pesada de la query se remata en pre_get_posts dentro del modulo.

Paginacion y per_page

El template genera URLs respetando filtros actuales y reinyecta el contenido paginado dentro del root AJAX.

Por eso no conviene tocar enlaces de paginacion o selector por pagina como si fueran piezas estaticas.

Cards dentro del grid

El catalogo no pinta producto por producto a mano. Se apoya en la API compartida de cards del modulo y en el runtime JS correspondiente.

Regla practica

  • si cambia el shell del catalogo o la toolbar, toca archive-product.php
  • si cambia la query real, revisa pre_get_posts y helpers del modulo
  • si cambia la UX de la card, revisa templates de card y woocommerce-card.js
Last updated on