Selector de visualización de impuestos: configuración y ayuda

Inicio rápido

  1. Instala el ZIP en Módulos > "Module Manager" y haz clic en "Configure".
  2. En Configuración general, deja "Enable Tax Switcher" en Sí y selecciona "Widget Style".
  3. Elige "Default Display", revisa "Cookie Expiry (days)" y "Show Price Suffix", y guarda.
  4. Abre la tienda y confirma que un hook de navegación compatible muestre el selector.
  5. Cambia de modo y confirma que los precios de los productos cambien y que se guarde una cookie mpr_tax_display para una selección distinta de la predeterminada.
  6. Navega a otro producto, prueba el carrito y el proceso de compra, vuelve al modo predeterminado y confirma que la cookie de preferencia se elimine.

Requiere PrestaShop 1.6 o posterior y PHP 7.1 o posterior.

Manual de configuración

Instala y abre la configuración

Sube el ZIP en Módulos > "Module Manager" > "Upload a module". Instálalo y haz clic en "Configure". Usa la pantalla Configuración > "Configuration" del módulo, con el título Configuración general.

Requiere PrestaShop 1.6 o posterior y PHP 7.1 o posterior.

En multitienda, selecciona el contexto que quieres configurar. Los ajustes se resuelven en el orden tienda, grupo de tiendas y ámbito global.

Configura los ajustes de Configuración general

Ajuste Valor predeterminado Función y cuándo cambiarlo
"Enable Tax Switcher" Sí Activa el control en la tienda y la selección de visualización de precios para cada petición. Establece No para detener ambos.
"Widget Style" "Toggle switch" Elige "Toggle switch", "Button pair" o "Dropdown". Los valores guardados son toggle, buttons y dropdown.
"Default Display" "Follow customer group (default)" Usa el método nativo de visualización del grupo predeterminado del cliente. Elige "Tax included" o "Tax excluded" para fijar un modo predeterminado.
"Cookie Expiry (days)" 90 Recuerda una selección distinta de la predeterminada durante este número de días. Los valores inferiores a 1 usan 90 en el script del front-office.
"Show Price Suffix" Sí Añade el sufijo fiscal del idioma activo a los nodos de precio visibles compatibles: al mostrarlos inicialmente, tras actualizar los precios y al cambiar de modo. Selecciona No para omitir los sufijos del módulo.

Haz clic en Guardar. Este formulario no tiene un selector de posición independiente.

Para un grupo de clientes que normalmente deba ver precios sin impuestos, configura su método de visualización de precios en PrestaShop y deja "Default Display" en "Follow customer group (default)". Los valores nativos son 0 para impuestos incluidos y 1 para impuestos excluidos.

Revisa las etiquetas y los sufijos predeterminados

El módulo guarda las claves multilingües LABEL_INCL, LABEL_EXCL, SUFFIX_INCL y SUFFIX_EXCL. No son cuatro campos editables en el formulario actual de ajustes generales.

La instalación inicializa las etiquetas por idioma. Los valores ingleses son Incl. VAT, Excl. VAT, incl. VAT y excl. VAT. El alemán usa inkl. MwSt. y zzgl. MwSt.. El francés usa TTC y HT. El polaco usa brutto y netto. El italiano usa IVA incl. y IVA escl.. El español usa con IVA y sin IVA. Los demás códigos de idioma usan los valores ingleses de respaldo durante la instalación.

Si necesitas un texto personalizado, adapta la plantilla del widget del tema o realiza un cambio controlado de configuración. No busques campos de etiquetas que este formulario no ofrece. Las etiquetas compactas del selector y el texto de ayuda también usan las traducciones del módulo.

Coloca el selector en tu tema

En PrestaShop 1.7 y versiones posteriores, el widget puede mostrarse en displayNav1 o displayNav2. Se muestra una sola vez, en la primera llamada aplicable. En PrestaShop 1.6 también puede usar displayTop.

Si falta el hook en una cabecera personalizada, añade la llamada nativa adecuada en la posición deseada:

{hook h='displayNav2'}

Para una cabecera de PrestaShop 1.6:

{hook h='displayTop'}

El módulo no se muestra mediante displayTop en 1.7 y versiones posteriores. Si ya se ha ejecutado otro hook de navegación compatible, la protección para mostrarlo una sola vez puede impedir una segunda copia en la nueva posición. Comprueba el orden real de los hooks al moverlo.

Para personalizar la estructura HTML, copia la plantilla del módulo en tu tema y edita la copia:

/themes/your_theme/modules/mprtaxdisplayswitcher/views/templates/hook/switcher.tpl

El estilo de interruptor incluye un control de ayuda. El comportamiento del tooltip usa la integración de tooltips Bootstrap disponible en el tema.

Entiende el cambio de visualización de precios

El script del front-office guarda la preferencia directamente en la cookie pública mpr_tax_display antes de actualizar los precios. En esta revisión no llama a un endpoint AJAX de cambio de modo.

Una selección distinta de la predeterminada guarda:

mpr_tax_display=0
mpr_tax_display=1

Volver al modo predeterminado configurado elimina la cookie. La cookie usa la ruta /, SameSite Lax y Secure en HTTPS. Una petición posterior lee la preferencia antes de preparar la visualización de precios. Cambia el método de visualización del grupo guardado en caché para esa petición sin actualizar el registro almacenado del grupo.

El módulo proporciona datos de precio ocultos mediante displayProductPriceBlock solo para llamadas al hook con type="weight". Prepara los precios de venta y habituales en ambos modos y les da formato en la moneda activa. Por ejemplo:

<span class="mpr-tax-prices"
      style="display:none"
      data-si="120.00"
      data-se="100.00"
      data-ri="150.00"
      data-re="125.00"
      data-d="1"></span>

Estos atributos contienen cadenas con formato en el resultado real. JavaScript usa una estructura HTML compatible de productos y listados para sustituir los precios visibles.

El cambio es instantáneo cuando todos los precios visibles detectados tienen datos .mpr-tax-prices correspondientes. Si faltan datos, un precio no se puede asociar o la cobertura es incompleta, el script guarda la preferencia y recarga la página para que el servidor muestre el modo elegido. Las páginas del carrito y del proceso de compra se recargan incluso cuando las recomendaciones de productos contienen datos de precio.

El módulo controla la presentación de precios. Las reglas fiscales, los precios de productos guardados, la obligación tributaria real y la contabilidad de pedidos siguen usando la configuración fiscal y del proceso de compra de la tienda. Para datos de visualización cuyos valores nativos con y sin impuestos sean iguales con los impuestos activados, el módulo puede calcular un precio de visualización con impuestos de respaldo a partir del tipo impositivo del país predeterminado. Prueba este caso por separado en tiendas cuyo comportamiento dependa de la dirección del cliente y del IVA.

Verifica la tienda

Abre una página de la tienda sin caché y sin una preferencia guardada. Confirma que use "Default Display". Cambia de modo e inspecciona tanto el precio visible como mpr_tax_display en el almacenamiento del navegador.

Navega inmediatamente a otro producto. Confirma que el modo elegido persista. Vuelve al modo predeterminado configurado y confirma que la cookie desaparezca.

Prueba un listado de productos, un producto simple, un producto con combinaciones y los precios habituales y de venta con descuentos. Cambia la moneda y repite. Prueba el carrito y el proceso de compra por separado, comparando la visualización con los totales reales y las líneas de impuestos. Inspecciona los diseños personalizados donde falten los elementos span de precio ocultos o solo se actualicen algunos nodos.

Para comprobar en modo de solo lectura los datos nativos de visualización de grupos, usa tu prefijo de tabla e ID de idioma reales:

SELECT g.id_group, gl.name, g.price_display_method
FROM ps_group AS g
INNER JOIN ps_group_lang AS gl ON gl.id_group = g.id_group
WHERE gl.id_lang = 1;

Ajusta los estilos y resuelve problemas

Usa las clases y variables CSS del módulo en la hoja de estilos de tu tema. Por ejemplo:

:root {
  --mpr-primary: #1f7a5c;
  --mpr-border: #d6d6d6;
  --mpr-text: #222;
  --mpr-text-muted: #777;
}
.mprtaxswitch-host { margin-left: 12px; }
.mprtaxswitch__btn { text-transform: uppercase; }
.mprtaxswitch-tooltip .tooltip-inner { max-width: 320px; }

Si falta el control, comprueba "Enable Tax Switcher", los hooks del tema, la visualización una sola vez y la carga de recursos del front-office. Usa la pantalla "Integrity" del módulo para comprobar la infraestructura.

Si los precios no cambian, inspecciona .mpr-tax-prices y la llamada del tema a displayProductPriceBlock con el tipo weight. Comprueba los errores de script del navegador y si la estructura HTML coincide con los contenedores de precio del script.

Si una recarga restaura el modo equivocado, inspecciona los permisos de cookies, su ámbito y la caché de página. Prueba sin una respuesta HTML en caché. Si faltan sufijos, comprueba "Show Price Suffix", los valores de los sufijos, los errores de script del navegador y el marcado de precios del tema.

La preferencia se guarda en la cookie del navegador. No existe una URL de cambio independiente en /module/mprtaxdisplayswitcher/switch ni en /ajax.

Desactiva o desinstala

Establece "Enable Tax Switcher" en No para detener el widget y la sustitución conservando los ajustes. Desinstala mediante "Module Manager" para eliminar el menú y la configuración del módulo.

La desinstalación deja las cookies de preferencia existentes en los navegadores de los visitantes. Puedes borrar mpr_tax_display en el navegador al comprobar el comportamiento predeterminado. Elimina por separado las personalizaciones de las plantillas del tema.

Preguntas

1

¿Puedo usar el selector con una caché de página completa?

El selector guarda una elección distinta de la predeterminada en la cookie pública mpr_tax_display y la lee cuando PHP prepara los precios. Las reglas de tu caché de página deben tener en cuenta esa preferencia al servir precios generados en el servidor. Las actualizaciones instantáneas con JavaScript dependen de un marcado de precios compatible, así que comprueba ambos modos en las páginas de producto, carrito y pago almacenadas en caché con tu propia configuración.

Problemas conocidos

9

Las etiquetas de impuestos perdían su traducción

ResueltoActualizado:
Corregido en: 1.1.8
Cambiar la visualización de impuestos podía sustituir incorrectamente las etiquetas de precios traducidas proporcionadas por el tema.

La elección de impuestos se perdía en la página siguiente

ResueltoActualizado:
Corregido en: 1.1.8
Navegar justo después de cambiar la visualización de impuestos podía abrir la página siguiente con la elección anterior.

Los ajustes de impuestos se mezclaban entre tiendas

ResueltoActualizado:
Corregido en: 1.1.8
Los ajustes de visualización de impuestos y los textos traducidos no siempre respetaban la tienda seleccionada y los ajustes heredados.

El selector no funcionaba en PHP 7.1

ResueltoActualizado:
Corregido en: 1.1.8
El selector de impuestos podía no ejecutarse en PHP 7.1.

Las traducciones del selector seguían en inglés

ResueltoActualizado:
Corregido en: 1.1.8
El texto traducido de la administración del selector de impuestos podía seguir en inglés.

El selector de impuestos desplazaba la página

ResueltoActualizado:
Corregido en: 1.1.0
Usar el selector de impuestos de la cabecera podía cambiar inesperadamente la posición de desplazamiento de la página.

El selector fallaba en versiones recientes de PHP

ResueltoActualizado:
Corregido en: 1.1.0
El selector de impuestos podía fallar al leer los ajustes necesarios en PHP 8.1 o posterior.

Los precios mostrados no siempre se actualizaban

ResueltoActualizado:
Corregido en: 1.0.11
Cambiar el modo de impuestos podía dejar precios desactualizados o no actualizar los precios en algunos temas.

Refuerzo de la seguridad

ResueltoActualizado:
Corregido en: 1.0.11
Refuerzo de la seguridad.

Solicitudes de funcionalidades

5

Implementado

Elección de visualización de impuestos

Implementado
Permite a los visitantes elegir si los precios de la tienda se muestran con o sin impuestos.

Cambio inmediato de precios

Implementado
Actualiza los precios compatibles al instante cuando el visitante cambia la opción de visualización de impuestos.

Actualizaciones con un clic

Implementado
Actualiza el módulo desde su página de administración.

Textos multilingües del selector

Implementado
Usa los textos del selector y de la administración en francés, alemán, español, italiano y polaco.

Etiqueta estable del selector

Implementado
Muestra el estado actual de visualización de impuestos en una etiqueta de ancho fijo para evitar desplazamientos del diseño.

Registro de cambios

v1.1.02026-07-26

  • AddedPS 9 / Hummingbird theme compatibility
  • Addedsticky header placement option alongside existing inline positions
  • Improvedtoggle state persistence — remembers preference across sessions via cookie
  • Fixedprice not updating on quick-add-to-cart when switcher toggled on listing page
Versiones anteriores

v1.0.112026-07-03

  • Addedcomplete FR/DE/ES/IT/PL translations
  • ImprovedCache tax display switcher state
  • FixedRender tax switcher without core override
  • FixedHarden tax switcher front endpoints
  • FixedReplace Tools::displayPrice with PriceFormatter compat wrapper

v1.2.02026-04-20

  • AddedLicense management tab with key management and renewal options
  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedcomplete FR/DE/ES/IT/PL translations

v1.0.02025-02-14

  • Initialrelease: tax-inclusive / tax-exclusive price toggle for PrestaShop
  • InitialB2B/B2C default mode configuration per customer group
  • InitialPer-visitor override — toggle state stored in session
  • InitialCompatible with PS 1.7.x and PS 8.x

Demo

Prueba el módulo completo antes de comprar

Compra la licencia más tarde y conserva tus ajustes.

  • Tu demo de 30 días Pruébalo en tu propia tienda durante 30 días desde la primera instalación.
  • Tienda demo lista Explora una tienda demo lista en tu navegador.
  • Sin registro Sin cuenta, correo ni dominio de tienda.
Iniciar tienda demo

Al descargar, aceptas las condiciones de la demo y la política de privacidad.

Al abrir esta demo, acepta los términos de la demo y la política de privacidad.

Cargando...
Volver arriba