prestashop-template-overrides · git:20260604.8ae1905 · 2026-06-04 · sha256 2f31aa144e27191d
prestashop-template-overrides git:20260604.8ae1905A
Immutable. This exact content never changes and is served at /api/v1/blob/2f31aa144e27191d.
---
name: prestashop-template-overrides
description: Skill para sobrescribir templates del Back Office y Front Office de PrestaShop 8/9 desde modulos.
---
# PrestaShop Template Overrides Skill (PS 8 / PS 9)
Este skill explica como un modulo puede sobrescribir templates core de Symfony sin modificar archivos del core.
## 1. Guia Tecnica
### Sobrescribir Templates Symfony (Back Office)
PrestaShop 8/9 usa Symfony 4.4/6.4. La sintaxis de referencia de templates es:
```
@PrestaShop/Admin/path/to/template.html.twig
```
> **IMPORTANTE**: NO usar la sintaxis legacy `PrestaShopBundle:Admin:template.html.twig` (Symfony 2/3). Esta **NO funciona** en PS 8/9.
Para sobrescribir un template del core desde un modulo, colocar el archivo en:
```
modules/mymodule/views/PrestaShop/Admin/[path]/[template].html.twig
```
Ejemplo: Para sobrescribir la vista de clientes:
```
mymodule/views/PrestaShop/Admin/Sell/Customer/index.html.twig
```
### Extension de Templates
En lugar de reemplazar el archivo completo, extender el template core y sobrescribir solo bloques especificos.
```twig
{# views/PrestaShop/Admin/Sell/Customer/index.html.twig #}
{% extends '@PrestaShop/Admin/Sell/Customer/index.html.twig' %}
{% block content %}
<div class="alert alert-info">Hello from My Module!</div>
{{ parent() }}
{% endblock %}
```
### Front Office (Smarty y Twig)
Para sobrescribir templates de front-office desde un modulo:
**Tema Classic (Smarty)**:
```
modules/mymodule/views/templates/front/*.tpl
```
**Tema Hummingbird (Twig, PS 8.1+/PS 9)**:
```
modules/mymodule/views/templates/front/*.html.twig
```
## 2. Guia de Desarrollo
### Convenciones
- Verificar siempre la ruta exacta del bundle core. En PS 8/9, todo esta bajo `PrestaShopBundle`.
- La ruta en tu modulo debe reflejar EXACTAMENTE la ruta en el core.
### Hooks en lugar de Overrides
Siempre que sea posible, usar hooks (`displayDashboardTop`, `displayAdminProductsExtra`) en lugar de sobrescribir templates para asegurar maxima compatibilidad con otros modulos.
### Diferencias PS 8 vs PS 9
| Aspecto | PS 8 (Sf 4.4) | PS 9 (Sf 6.4) |
|---------|---------------|---------------|
| Sintaxis Twig | `@PrestaShop/Admin/...` | `@PrestaShop/Admin/...` |
| Front-office Classic | Smarty (.tpl) | Smarty (.tpl) |
| Front-office Hummingbird | Twig (PS 8.1+) | Twig (por defecto) |
## 3. Guia de Usuario
### Requisitos
- Limpiar la cache despues de añadir un template override en **Parametros Avanzados > Rendimiento**.
- Si el override no tiene efecto, verificar que el modulo esta instalado y activado.
## Reglas y Buenas Practicas
- **Cambios Atomicos**: Solo sobrescribir los bloques necesarios.
- **Actualizaciones**: La estructura de templates core puede cambiar entre versiones. Verificar overrides en cada actualizacion.
- **Seguridad**: No eliminar bloques esenciales del core (tokens de formulario, campos de seguridad).
- **Traducciones en Twig**: Usar `{{ 'My text'|trans({}, 'Modules.Mymodule.Admin') }}`.