Override
En PrestaShop, un override es una forma de modificar o extender el comportamiento de una clase o controlador del core sin editar directamente los archivos originales del sistema. Es una técnica útil para personalizar funcionalidades sin romper la posibilidad de actualizar PrestaShop (aunque con matices).
Es una reescritura de una clase o controlador nativo, hecha en una carpeta especial (/override/) que PrestaShop carga al iniciar.
Ejemplos comunes de override:
- Agregar un nuevo campo a la clase Product.
- Cambiar cómo se calcula un precio o un stock.
- Modificar el comportamiento del back office (por ejemplo, AdminProductsController).
¿Cómo crear un override de clase?
Ejemplo: Agregar un nuevo campo codigo_interno a Product
📍 Crear un archivo en:
/override/classes/Product.php
<?php
class Product extends ProductCore
{
public $codigo_interno;
public static $definition = array(
'table' => 'product',
'primary' => 'id_product',
'fields' => array_merge(ProductCore::$definition['fields'], [
'codigo_interno' => ['type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 255],
]),
);
}
Carpetas y Archivos
Carpeta raíz:
admin: Contiene todos los archivos y scripts necesarios para el panel de administración de PrestaShop.
app: Incluye la configuración de la aplicación y otros archivos importantes para el funcionamiento del sitio.
classes: Contiene las clases PHP que definen el comportamiento y la lógica de negocio de PrestaShop.
config: Archivos de configuración del sistema.
controllers: Controladores para las diferentes secciones del sitio (front-end y back-end).
Imagenes
img: Imágenes utilizadas en el sitio, como logotipos y otros gráficos.
En PrestaShop, las imágenes de los productos se almacenan en la carpeta img/p dentro de la estructura de archivos del sitio. Aquí tienes una descripción más detallada:
Ubicación de las imágenes de productos:
Ruta: img/p/
Estructura de almacenamiento:
Subcarpetas por ID: Dentro de img/p/, encontrarás subcarpetas organizadas por ID numérico. Cada subcarpeta corresponde a un ID de producto específico y contiene las imágenes asociadas a ese producto.
Nombres de archivo: Las imágenes suelen estar nombradas con el formato id_image.jpg o id_image-large.jpg, donde id_image es un identificador único para cada imagen.
Ejemplo de ruta:
Para un producto con ID 123, las imágenes podrían estar en:
Carpeta de imágenes: img/p/1/
Imagen de producto: img/p/1/123.jpg
Imagen miniatura: img/p/1/123-home.jpg
install: Archivos y scripts utilizados para la instalación de PrestaShop.
localization: Archivos de localización y traducción para diferentes idiomas y regiones.
modules: Módulos adicionales que extienden la funcionalidad de PrestaShop.
override: Archivos que permiten modificar el comportamiento de las clases y controladores predeterminados sin modificar el núcleo.
themes: Plantillas y temas para el diseño del front-end del sitio.
translations: Archivos de traducción para el sistema en diferentes idiomas.
upload: Archivos subidos por los usuarios o el administrador.
var: Datos de caché, logs y otros archivos temporales generados por el sistema.
vendor: Librerías y dependencias de terceros que PrestaShop utiliza.
modules: Módulos adicionales que extienden la funcionalidad de PrestaShop.
Archivos importantes en la raíz:
index.php: Archivo de entrada para todas las solicitudes al sitio web.
robots.txt: Archivo para controlar el acceso de los motores de búsqueda a tu sitio.
config/settings.inc.php: Archivo de configuración principal que incluye detalles de la conexión a la base de datos y otras configuraciones esenciales.
Archivos de plantillas
En PrestaShop, los archivos de plantillas (archivos .tpl) son esenciales para personalizar la apariencia visual de tu tienda en línea. Aquí tienes una lista de algunos de los archivos .tpl más importantes que encontrarás en un tema típico de PrestaShop:
- header.tpl: Este archivo controla la parte superior de la página, incluida la barra de navegación, el logo y otros elementos de la cabecera.
- footer.tpl: Controla la parte inferior de la página, incluidos los enlaces del pie de página y cualquier contenido adicional que quieras agregar.
- index.tpl: Se utiliza para mostrar el contenido de la página de inicio de tu tienda.
- product.tpl: Controla la apariencia de la página de detalles del producto.
- category.tpl: Define cómo se mostrarán los productos en una categoría específica.
- cart.tpl: Controla la apariencia del carrito de compras.
- checkout.tpl: Define cómo se mostrarán las páginas de checkout y pago.
- authentication.tpl: Controla las páginas de registro y acceso de los clientes.
- order-confirmation.tpl: Define cómo se mostrará la página de confirmación de pedido después de que un cliente realice una compra.
- search.tpl: Controla la apariencia de los resultados de búsqueda.
- product-list.tpl: Define cómo se mostrarán las listas de productos, como las páginas de resultados de búsqueda y las páginas de categorías.
- contact-form.tpl: Controla la apariencia del formulario de contacto.
- cms.tpl: Define cómo se mostrarán las páginas CMS, como términos y condiciones, políticas de privacidad, etc.
- authentication.tpl: Controla las páginas de registro y acceso de los clientes.
- my-account.tpl: Controla la apariencia de la página de cuenta del cliente.
Knowband – Multi Vendor Marketplace
https://addons.prestashop.com/es/creacion-marketplace/21669-knowband-multi-vendor-marketplace.html