Saltar al contenido principal

Product Templates

CampoValor
Handleradmin/handlers/product_template.go
Ruta base/admin/catalog/products/:id/template-panel
Modeloproduct_template_overrides
EstadoImplementado

Descripción

El módulo de plantillas de producto permite configurar la apariencia visual de la ficha de producto. Hereda la configuración global del tema publicado y permite overrides por producto individual. Espejo de ReviewSettingsHandler.


Endpoints

MétodoRutaAcción
GET/admin/catalog/products/:id/template-panelPanel HTMX de apariencia
POST/admin/catalog/products/:id/template-overrideSet override de campo
DELETE/admin/catalog/products/:id/template-overrideRemover override

Campos

Fields (Configuración de Plantilla)

CampoTipoDescripción
gallery_layoutenumgrid, stacked, carousel
gallery_aspect_ratioenumsquare, portrait, landscape
show_thumbnailsboolMostrar miniaturas
show_skuboolMostrar SKU
show_vendorboolMostrar marca/vendedor
show_quantity_selectorboolSelector de cantidad
show_add_to_cartboolBotón agregar al carrito
show_descriptionboolMostrar descripción
show_reviewsboolMostrar reseñas
show_related_productsboolMostrar productos relacionados
sticky_add_to_cartboolBotón sticky en mobile
template_suffixstringTemplate alternativo

EffectiveFields

CampoTipoDescripción
fieldsFieldsCampos efectivos (global + override)
overriddenmap[string]boolQué campos están sobreescritos
template_suffixstringTemplate suffix del producto

Herencia

Tema Publicado (global)
└── product_template section
├── gallery_layout: "grid"
├── show_sku: true
└── ...

Producto Individual (override)
└── gallery_layout: "carousel" ← override
└── (show_sku no está → hereda global)

Orden de resolución:

  1. Buscar en theme_settings (publicado) → sección product_template
  2. Si no existe, buscar en theme_settings_draft
  3. Si tampoco, usar domain.Default()
  4. Aplicar overrides del producto individual

Override

Para setear un override:

POST /admin/catalog/products/:id/template-override
Form: field=gallery_layout&value=carousel

Para remover:

DELETE /admin/catalog/products/:id/template-override
Form: field=gallery_layout

Notas

  • El panel se carga como HTMX partial (product-template-panel)
  • Los overrides se muestran visualmente (borde/glow) para distinguir del global
  • El template_suffix permite usar templates alternativos (ej: "minimal", "full-width")
  • La configuración global viene del tema, no de settings independientes