Smart Favicon: configuración y ayuda
Inicio rápido
- Instala el ZIP de Smart Favicon desde "Modules > Module Manager > Upload a module" y selecciona una tienda concreta.
- Abre "Favicon > Configuration" y deja activado "Enable Smart Favicon".
- Sube "Light-mode favicon" y, si quieres, "Dark-mode favicon"; pulsa "Save" y comprueba las vistas previas de los iconos.
- Revisa "Show count badge on the favicon", "Count calculation", "Cart items" y "Maximum displayed count".
- Configura "Attention nudge when the tab is in the background" y "Nudge messages"; activa "Prefix the tab title with the count" solo si lo deseas.
- Para una fuente PNG/WebP, revisa "Generate the full icon set" y "Emit a web manifest"; deja desactivada la sobrescritura de la raíz global salvo que esta tienda deba ser su propietaria.
- En un navegador normal, añade, modifica y elimina artículos del carrito, cambia el esquema de color, sal de la pestaña y vuelve, y confirma el comportamiento del distintivo, el título y el icono.
Requiere PrestaShop 1.6.0.4 o posterior y PHP 7.1 o posterior.
La generación de conjuntos de iconos ráster requiere GD con el decodificador PNG/WebP correspondiente; la limpieza de SVG usa DOM.
Manual de configuración
Instalar Smart Favicon
Requisitos
Requiere PrestaShop 1.6.0.4 o posterior y PHP 7.1 o posterior.
Las funciones del navegador dependen de JavaScript y de los hooks estándar de cabecera y medios del tema activo.
Sube el ZIP de la versión desde "Modules > Module Manager > Upload a module" e instálalo. Abre "Favicon > Configuration", o pulsa "Configure" en el "Module Manager". En multitienda, selecciona una tienda concreta antes de editar los ajustes normales.
"Enable Smart Favicon" está activado inicialmente. El distintivo del contador y el recordatorio en segundo plano también están activados. "Prefix the tab title with the count" está desactivado inicialmente. Sin un icono subido, el módulo puede usar el favicon existente de la tienda para el distintivo.
Subir iconos claros y oscuros
Archivos de iconos
Configura "Light-mode favicon" y "Dark-mode favicon". Puedes subir ICO, PNG, SVG o WebP. Usa un PNG cuadrado de al menos 32 por 32 píxeles para un icono básico. Usa una fuente rasterizada mayor cuando quieras generar iconos de aplicación más grandes.
Las subidas están limitadas a 1 MB. Las imágenes PNG/WebP no deben superar los 1.024 píxeles en ninguna dimensión. Los SVG necesitan un viewBox o anchura y altura explícitas; el saneador reconstruye el SVG aceptado antes de almacenarlo. Los archivos no compatibles o inseguros se rechazan.
Pulsa "Save" y comprueba "Current light icon" y "Current dark icon". Los archivos subidos se guardan en img/mprfavicon/ con nombres nuevos para evitar reutilizar la URL anterior almacenada en caché. El servidor web debe tener permiso de escritura en el directorio.
Usa "Remove light icon on save" o "Remove dark icon on save" para eliminar una variante. Estos interruptores están desactivados inicialmente.
Comportamiento del esquema de color
Los navegadores que admiten consultas de medios para favicon seleccionan los enlaces claro/oscuro mediante prefers-color-scheme. El módulo también sigue los cambios del esquema de color del sistema. Un esquema sin su propio archivo subido recurre al favicon nativo de la tienda. Si no se ha subido ninguna variante, el módulo no añade enlaces de sustitución por esquema; el distintivo activo aún puede producir un icono gestionado.
Generar iconos de navegador y aplicación
| Ajuste | Valor predeterminado | Qué hacer |
|---|---|---|
| "Generate the full icon set" | Activado | Sube una fuente PNG o WebP. Este generador no puede remuestrear ICO ni SVG. |
| "Emit a web manifest" | Activado | Déjalo activado para el manifiesto mínimo de este módulo. Desactívalo si tu tema o módulo PWA ya proporciona uno. |
| "Write the generated favicon.ico to the global root" | Desactivado | Actívalo solo si esta tienda debe gestionar el /favicon.ico compartido de la instalación. |
El generador usa la primera fuente rasterizada que puede decodificar, comprobando la clara antes que la oscura. Crea PNG de 16, 32, 48, 180, 192, 256 y 512 píxeles y un ICO con varios tamaños. La tienda puede emitir enlaces a iconos de 16/32/48, un icono Apple touch y los iconos 192/512 del manifiesto. El módulo sirve el manifiesto con el tipo de contenido requerido para un manifiesto web.
La generación de imágenes necesita GD con el decodificador PNG/WebP correspondiente. Si el back office indica que hace falta una fuente rasterizada, sube un PNG o WebP y vuelve a guardar.
Icono de la raíz global en multitienda
La instalación tiene un solo favicon.ico en la raíz. Puede afectar a todas las tiendas que compartan esa raíz. La tienda que activa la sobrescritura se convierte en su propietaria. Otra tienda no puede sustituir ni restaurar el archivo de la propietaria desde sus propios ajustes.
El módulo guarda una copia de seguridad del original antes de sustituirlo. La propietaria puede desactivar el interruptor y guardar para solicitar la restauración. En "All shops", "Release global favicon.ico ownership" libera la propiedad compartida e intenta la restauración. Los ajustes normales por tienda se editan en el contexto de una tienda concreta.
Si alguien ha cambiado el icono de la raíz fuera del módulo, la recuperación conserva ese archivo más reciente. Si falla la copia de seguridad, la gestión de propiedad, el bloqueo o la restauración, el módulo conserva el estado de recuperación e informa del problema. No borres la copia de seguridad para eliminar un error.
Los servicios de búsqueda deciden qué icono muestran y cuándo lo actualizan.
Configurar el icono del back office
"Custom back-office favicon" está activado inicialmente. Sube "Back-office favicon" para un icono de administración dedicado, o déjalo vacío para reutilizar el icono claro. Si no existe ninguno de los dos, el icono de administración nativo sigue disponible.
Comprueba "Current admin icon" después de guardar. Usa "Remove admin icon on save" para eliminar el archivo dedicado. El icono del back office no muestra un distintivo del carrito de la tienda.
Configurar el distintivo del contador y las fuentes
| Ajuste | Valor predeterminado | Efecto |
|---|---|---|
| "Show count badge on the favicon" | Activado | Dibuja el contador positivo seleccionado en un canvas de 64 píxeles. El distintivo desaparece al llegar a cero. |
| "Badge background" | #dc3545 |
Color de la burbuja. |
| "Badge text" | #ffffff |
Color del contador. |
| "Badge corner" | "Top right" | Elige cualquiera de las cuatro esquinas. |
| "Maximum displayed count" | 9 | Con el valor predeterminado, los conteos superiores muestran 9+. Establece 0 para no limitar. Los valores aceptados van de 0 a 999. |
| "Count calculation" | "Sum of all enabled sources" | Elige la suma o "A single priority source". |
| "Priority source" | "Cart items" | Solo se usa en el modo de fuente prioritaria única. |
| "Cart items" | Activado | Activa la fuente integrada del contador del carrito. |
Otros módulos pueden añadir interruptores de fuentes. Desactiva las fuentes que no quieras contar. El distintivo, el prefijo del contador y el recordatorio predeterminado usan el conteo combinado seleccionado, por lo que otra fuente activada puede mantenerlos activos con el carrito vacío.
En PrestaShop 1.7/8/9, el código del navegador escucha los eventos del carrito. En PrestaShop 1.6 observa el contador de carrito antiguo y envuelve los métodos ajaxCart compatibles. Prueba las adiciones, eliminaciones y cambios de cantidad con tu tema.
Configurar el título de la pestaña
Prefijo del contador
Activa "Prefix the tab title with the count" cuando quieras mostrar el contador en el título. "Title format" empieza como ({count}) {title}. Conserva {title} en el formato para mantener el título de la página. Un formato vacío o sin {title} recurre al predeterminado.
Recordatorio en segundo plano
"Attention nudge when the tab is in the background" está activado inicialmente. Rellena "Nudge messages" para cada idioma de la tienda, con un mensaje por línea. Los mensajes ingleses incluidos son “🛒 Still thinking it over?” y “Your items are waiting”; se usan las traducciones incluidas cuando están disponibles.
"Rotation interval" empieza en 4 segundos y está limitado a entre 2 y 60 segundos. El recordatorio predeterminado funciona mientras la pestaña no tiene el foco y el contador seleccionado es positivo. Al volver a la pestaña se detiene el recordatorio y se restaura el título normal, incluido el prefijo del contador actual si está activado.
Los cambios de título se realizan en JavaScript después de cargar la página. El título renderizado por el servidor no cambia. El código omite los bots detectados y los navegadores que indican navigator.webdriver, así que prueba con una sesión normal del navegador además de las herramientas automatizadas.
Campañas de interacción opcionales
Abre "Favicon > Engagement campaigns" para añadir reglas de interacción personalizadas. Los ajustes básicos de distintivo, esquema y título no requieren una campaña.
Establece "Name", elige un "Trigger" y selecciona "Match mode" como "All conditions" o "Any condition". Usa las listas de condiciones y acciones disponibles en el constructor. Establece "Minimum re-entry delay on this page" en milisegundos; empieza en 0 y se reinicia al navegar. "Priority" empieza en 0 y los valores superiores prevalecen en los canales de acciones exclusivos. Su rango aceptado va de -1000 a 1000. Las campañas nuevas empiezan desactivadas; activa "Enabled" después de revisar la regla y pulsa "Save".
Las campañas pertenecen a la tienda seleccionada. Prueba el activador y comprueba los solapamientos con las acciones predeterminadas del título y del favicon. Desactiva una campaña desde la lista cuando quieras conservar su configuración sin ejecutarla.
Fuentes del distintivo para desarrolladores
Registrar una fuente activada
Registra tu módulo proveedor en actionRegisterFaviconBadge y devuelve un descriptor:
public function hookActionRegisterFaviconBadge($params)
{
return [
'id' => 'tickets',
'label' => $this->l('Unread replies'),
'script' => 'modules/yourmodule/views/js/source.js',
];
}
Los ID de las fuentes usan letras minúsculas, dígitos, _ o -, hasta 40 caracteres. No uses el ID reservado cart. La ruta del script es opcional y debe ser relativa a la raíz de la tienda. El módulo crea un interruptor para la fuente declarada; las fuentes añadidas empiezan activadas.
Registra el contador correspondiente en el script:
window.mprFavicon.registerSource('tickets', function () {
return 3; // A number or a Promise resolving to a number.
});
window.mprFavicon.update();
Llama a update() cuando cambie el valor subyacente. La lista de fuentes activadas del servidor es la autoridad. Registrar por sí sola una fuente JavaScript arbitraria no la añade a esa lista ni evita la desactivación de una fuente por el comerciante. El mismo ID de fuente debe estar declarado, activado y registrado en tiempo de ejecución.
Verificar y resolver problemas
Primera comprobación
- Guarda tus iconos y revisa sus vistas previas en el back office.
- Abre la tienda en un navegador normal, añade un producto y comprueba el distintivo.
- Cambia la cantidad, elimina el producto y confirma que el distintivo desaparece.
- Cambia el modo claro/oscuro del sistema y comprueba el icono base.
- Con un contador positivo, sal de la pestaña, comprueba el recordatorio y vuelve para confirmar que se restaura el título.
- Si están activados, prueba por separado el prefijo del contador, el icono de administración, los enlaces generados y el manifiesto.
Problemas habituales
- Un icono subido parece no haber cambiado. Fuerza la recarga y vuelve a abrir la pestaña. Los navegadores almacenan los favicons en caché independientemente del contenido de las páginas.
- El distintivo no se actualiza en PrestaShop 1.6. Comprueba que el tema tenga un contador de bloque de carrito compatible o integración con
ajaxCart. - Se ignora una fuente personalizada. Comprueba su descriptor PHP, el interruptor del comerciante, el ID de fuente y el registro en tiempo de ejecución.
- No aparece el conjunto de iconos. Comprueba la fuente rasterizada, la compatibilidad con GD y los permisos de escritura del directorio
img/mprfavicon/. ICO/SVG siguen siendo utilizables como iconos fuente, pero no pueden producir el conjunto generado. - No se puede cambiar el icono de la raíz. Lee el mensaje de propiedad, cambia a la tienda propietaria y comprueba los permisos del sistema de archivos. Usa la acción de liberación de "All shops" cuando quieras liberar la propiedad global.
- No ocurre nada durante la automatización. El código omite intencionadamente WebDriver y los agentes de usuario de bots detectados. Verifica el resultado manualmente.
- Falta infraestructura. Abre "Favicon > Integrity".
Desinstalar
Desactiva la sobrescritura de la raíz desde su tienda propietaria y confirma la recuperación antes de eliminar el módulo si quieres comprobar la restauración explícitamente. La desinstalación también intenta recuperar la raíz y elimina la configuración y los archivos favicon normales cuando esa transición se completa correctamente.
Si la recuperación no puede terminar, la desinstalación conserva la configuración y las copias de seguridad necesarias para volver a intentarlo y registra el problema. Se conserva cualquier archivo sustituido externamente. Comprueba /favicon.ico y cualquier error de recuperación indicado después de desinstalar; no des por hecho que todas las operaciones del sistema de archivos hayan tenido éxito.
Preguntas
Aún no hay preguntas sobre este módulo
Pregunta lo que quieras sobre instalación, compatibilidad o configuración. Las respuestas aparecen aquí.
Problemas conocidos
13
El indicador del carrito usaba el icono de tema incorrecto
Favicon principal bloqueado tras eliminar una tienda
Campañas de interacción guardadas podían no ejecutarse
Ubicaciones eliminadas reaparecían automáticamente
Guardar y permanecer no guardaba los ajustes
La desinstalación podía descartar datos de recuperación del favicon
Copias de seguridad del favicon podían quedar inaccesibles
Eliminar una tienda podía bloquear cambios del favicon principal
El menú de ajustes abría una página inexistente
Comprobaciones compartidas de instalación omitían el módulo
El módulo no se cargaba en PrestaShop 1.7
Sustituir el favicon podía perder el icono anterior
Archivos de iconos en conflicto entre tiendas
Solicitudes de funcionalidades
9
Implementado
Favicons para temas claros y oscuros
Indicadores del carrito en tiempo real
Mensajes para llamar la atención en la pestaña
Iconos para dispositivos y búsquedas
Sustitución del favicon principal
Favicon del back office
Pantallas de soporte y mantenimiento
Desactivación de mensajes de atención por idioma
Creador de campañas de interacción
Registro de cambios
v1.1.12025-08-04
- Hardening: multistore-safe favicon.ico override with merchant-file protection and verified backup/restore.
- Per-shop icon-set files and a grace period for cached manifests.
- PHP 7.1 WebP compatibility and scheme-qualified sized icon links (192 px link, 256 px ICO entry).
- Automatic icon-set generation right after upgrading.
Versiones anteriores
v1.1.02025-07-17
- Search-engine icon set generated from one PNG/WebP upload: 16/32/48 px link icons, 180 px Apple touch icon, 192/512 px web-app icons and a web manifest served with the correct content type.
- Multi-size favicon.ico with an optional shop-root override — the file Bing, DuckDuckGo, Yahoo and search-result icon fetchers read — including one-time backup and automatic restore on disable or uninstall.
- Custom back-office favicon (dedicated upload or light-icon fallback) so multiple open shop admins are distinguishable.
- Back-office warnings when the icon set needs a raster source or the shop root is not writable.
v1.0.02025-06-12
- Initialfree Smart Favicon release for PrestaShop 1.6-9.
- InitialLight and dark favicon served per visitor color scheme (declarative media-query links plus a live JavaScript fallback).
- InitialLive cart count badge drawn onto the favicon with configurable corner, colors and 9+ cap; hidden at zero.
- InitialTab-title count prefix and polite blur-time nudge messages per language, restoring the exact original title on focus.
- InitialPluggable badge-source registry: JavaScript API plus the actionRegisterFaviconBadge hook with per-source toggles and sum/priority modes.
- InitialSEO-safe by design: server-rendered title untouched, JavaScript-only after load, bots excluded.
Demo
Prueba el módulo completo
- Tienda demo lista Explora una tienda demo lista en tu navegador.
- Sin registro Sin cuenta, correo ni dominio de tienda.
Al abrir esta demo, acepta los términos de la demo y la política de privacidad.