Skip to Content
WooCommerceProduct card layouts

Product Card Layouts

Las cards Woo reutilizables no salen de un unico template fijo. El modulo Woo setup resuelve un layout y luego carga la partial correspondiente.

Archivos clave:

  • setup/modules/woocommerce-setup/module.php
  • setup/modules/woocommerce-setup/templates/woocommerce/partials/product-card.php
  • setup/modules/woocommerce-setup/templates/woocommerce/partials/product-card-clean.php
  • setup/modules/woocommerce-setup/templates/woocommerce/partials/product-card-photo.php
  • setup/modules/woocommerce-setup/templates/woocommerce/partials/product-card-swatch.php
  • setup/modules/woocommerce-setup/templates/woocommerce/partials/product-card-variable-modal.php

Router real

La API central es bs_wc_setup_get_product_card().

Que hace:

  • normaliza el layout con bs_wc_setup_normalize_product_card_layout()
  • construye los datos comunes con bs_wc_setup_get_product_card_template_data()
  • carga una partial segun el layout final

Layouts permitidos:

  • classic
  • clean
  • photo
  • swatch

Template map:

$template_map = [ 'classic' => 'partials/product-card.php', 'clean' => 'partials/product-card-clean.php', 'photo' => 'partials/product-card-photo.php', 'swatch' => 'partials/product-card-swatch.php', ];

Capa compartida

Antes de entrar en cada partial, el modulo ya resuelve una base comun:

  • product_id, type y permalink
  • precio y categorias
  • excerpt corto opcional
  • rating opcional
  • favorito activo o no
  • badge de oferta
  • badge de sin stock
  • galeria secundaria serializada en data-gallery-images
  • chips de talla
  • swatches de color
  • modal_id para variables

Eso significa que los layouts cambian markup y UX, pero no recalculan toda la inteligencia desde cero.

Layout classic

Es la card mas completa y mas cercana al catalogo reusable del sistema.

Que incluye:

  • media cuadrada con overlay
  • badges arriba
  • favorito en esquina
  • categoria, titulo, rating y precio
  • excerpt opcional
  • chips de talla y color
  • qty stepper para simples
  • CTA de elegir opciones para variables
  • modal de variaciones compartido

Es el layout mas rico para catalogo denso.

Layout clean

Reduce informacion y simplifica la accion.

Que cambia:

  • menos densidad visual
  • sin excerpt ni bloque de specs visible
  • CTA ancho y limpio
  • simple products sin qty selector, siempre quantity 1
  • variable products siguen abriendo el modal compartido

Es util cuando el proyecto quiere una card mas editorial y menos cargada.

Layout photo

Prioriza la imagen y la accion flotante.

Que cambia:

  • shell visual casi todo media
  • badges sobre imagen
  • CTA compacto superpuesto
  • cuerpo muy corto con titulo y precio
  • sin specs ni excerpt

Es el layout mas fotografico. Se usa mucho en related y superficies donde la imagen manda mas que el detalle.

Layout swatch

No hereda la semantica normal del catalogo; tiene una UX propia.

Que cambia:

  • clase gp-card—swatch y contexto gp-card—swatch-context-*
  • imagen viva ligada al color seleccionado
  • rango de tallas por color
  • precio visible reactivo por opcion
  • flechas de galeria manuales dentro de la media
  • hover actions propias
  • favoritos y CTA dentro del hover

El template construye swatch_items a partir de las variaciones reales y no solo de terminos sueltos. Cada opcion lleva:

  • label
  • hex
  • image
  • price_html
  • size_labels
  • is_in_stock

Classic, clean, photo y swatch pueden reutilizar la misma partial de modal:

  • product-card-variable-modal.php

La partial cambia el shell visual, pero la resolucion de atributos y add to cart variable converge en el mismo runtime del modulo.

Shortcodes

La misma API alimenta shortcodes de grid y de card unica:

  • balinot_woo_cards
  • balinot_woo_cards_classic
  • balinot_woo_cards_clean
  • balinot_woo_cards_photo
  • balinot_woo_cards_swatch
  • balinot_woo_card
  • balinot_woo_card_classic
  • balinot_woo_card_clean
  • balinot_woo_card_photo
  • balinot_woo_card_swatch

Regla practica

  • si cambia un dato comun de todas las cards, revisa bs_wc_setup_get_product_card_template_data()
  • si cambia solo una piel o la posicion de los bloques, entra en la partial del layout
  • si cambia la logica variable, no toques solo la partial: revisa tambien product-card-variable-modal.php y woocommerce-card.js
Last updated on