Cómo mostrar el precio con IVA del país del visitante en PrestaShop

Configure los tipos de IVA de la UE, muestre el precio con el IVA del país detectado por GeoIP o elegido en el selector y exporte las ventas por tipo: el recorrido completo en PrestaShop, límites incluidos.

Comment afficher le prix TTC du pays du visiteur dans PrestaShop

Un cliente español abre la ficha de un producto y ve un precio calculado con el IVA francés. El tipo de su país solo aparece cuando escribe una dirección, a veces con el artículo ya en el carrito. Es la pregunta de los comercios que venden en varios países de la UE: ¿cómo mostrar el precio con IVA del país del visitante desde la primera página sin romper las reglas fiscales de cada producto? Esta guía recorre el módulo OSS IVA UE, pestaña por pestaña, y muestra lo que deja en manos de su asesor.

¿Puede PrestaShop gestionar por sí solo el IVA de los países de la UE y el OSS?

No del todo: PrestaShop aplica el IVA de la dirección del carrito; el módulo aplica el tipo del país detectado o elegido desde la ficha de producto y prepara la exportación por tipo para el OSS.

Está pensado primero para tiendas que cumplen tres condiciones.

  • Vende a particulares en al menos dos países de la UE y muestra los precios con IVA incluido.
  • Quiere que el visitante vea el tipo de su país desde la ficha, sin esperar al carrito.
  • Prepara las ventas por tipo para el régimen OSS, con un CSV que revisar.

No hace falta en tres casos. Una tienda que vende en un solo país apenas lo aprovecha. Tampoco las ventas B2B por inversión del sujeto pasivo, porque el módulo no comprueba números de IVA. Una tienda que busca seguimiento del umbral OSS o pruebas de IVA durante diez años no encontrará ninguna de las dos en esta versión.

La ficha del módulo resume las funciones y la documentación detalla cada pestaña.

¿Cómo configurar los tipos de IVA de los países de la UE en PrestaShop?

Abra Configurar y luego la pestaña Impuestos: el asistente prepara los tipos de los países donde vende, muestra los datos de referencia de tipos de IVA de cada país y no crea nada antes de su confirmación.

El asistente trabaja en tres pasos. Primero elige grupos de reglas fiscales ya asignados a sus productos, o prepara grupos nuevos. El segundo paso muestra, país por país, los tipos de referencia (estándar, reducido, reducido 2, muy reducido) y el estado de configuración (Configurado, Parcial, No configurado). El tercer paso enumera los impuestos a crear, las reglas a crear, los elementos omitidos y los errores, y después aplica los cambios tras pulsar «Ejecutar»; mientras no confirme, la vista previa no crea ninguna regla.

Quedan dos puntos por revisar a mano. Los productos nunca se reasignan a otro grupo de forma automática: un artículo con tipo reducido conserva su grupo, y el tipo reducido depende de su categoría y del territorio. Los grupos compartidos entre tiendas, las reglas regionales y las reglas combinadas se revisan en los ajustes nativos de PrestaShop, no en la vista previa del módulo.

¿Cómo mostrar el precio con IVA del visitante, con o sin dirección?

El módulo resuelve el país en este orden: la dirección fiscal del carrito, la elección guardada en la cookie, la detección GeoIP y el país por defecto de la pestaña General.

La pestaña General activa la vista previa de precios con IVA y define el país por defecto y los grupos de clientes elegibles. Los países ofrecidos en el selector se eligen en la pestaña Países. La pestaña Visualización coloca el selector en un hook estándar (displayNav1, displayNav2, displayTop) o en un hook personalizado (displayWeprestaOSS por defecto); se incluyen cinco plantillas y una vista previa en tiempo real sigue sus ajustes.

La detección GeoIP se configura en la pestaña Avanzado. Introduzca el identificador de su cuenta MaxMind y una clave autorizada para descargar GeoLite2 Country, lance la descarga y compruebe el estado de la base. PHP necesita cURL, Phar y zlib; una clave vacía conserva la clave guardada. En una dirección IP local, la detección no puede funcionar.

En cuanto el carrito tiene una dirección fiscal válida, esa dirección manda y los gastos se recalculan, según el ajuste de entrega o facturación de PrestaShop. Un cliente conectado puede elegir una de sus direcciones y confirmarla para la entrega; el módulo nunca crea una dirección ficticia. El precio estimado aparece también en la ventana de confirmación al añadir al carrito.

La duración de la cookie se ajusta en la pestaña Avanzado, en días; el valor 0 guarda la elección solo para la sesión.

¿Cómo comprobar que la geolocalización y los precios son correctos?

Un país aparece en el selector solo si se cumplen tres condiciones: está activo en la pestaña Países, sus impuestos están configurados en la pestaña Impuestos y está activo en PrestaShop (Internacional → Localización → Países).

Empiece por el estado de la base GeoIP en la pestaña Avanzado: debe indicar que la base está disponible. Use después el selector de país de la tienda para mostrarla como un visitante de cada país objetivo y compare el precio de un producto con tipo estándar y otro con tipo reducido. Termine con el carrito, con una dirección de entrega real y luego con una dirección de facturación distinta si la acepta.

Si un precio no cambia, vacíe la caché de PrestaShop y compruebe que el producto pertenece a un grupo de reglas fiscales del país correspondiente. Si falta un país, revise las tres condiciones anteriores. Una caché de página o un CDN debe distinguir el país y la sesión del visitante; si no, puede servir a todos la página de un solo país.

¿Cómo exportar las ventas y los abonos por tipo para la declaración OSS?

Abra la pestaña Exportación de IVA, elija un periodo, pulse «Vista previa» y luego «Descargar CSV»: los importes se separan por tienda, divisa, país, tipo y componente, transporte incluido.

Las ventas siguen la fecha del pedido; los abonos siguen su fecha de emisión, incluso cuando afectan a una venta anterior. Los importes y los tipos históricos se conservan: cambiar una regla fiscal no reescribe las líneas ya registradas. Las líneas que hay que revisar quedan marcadas en la vista previa y en el archivo.

Un reembolso introducido sin abono no se puede deducir de forma automática. Para los vencimientos de clientes profesionales, mire mejor Pago a plazo B2B, que gestiona límite de crédito y recordatorios.

¿Qué pasa si caduca mi licencia o el servidor no responde?

Una suscripción renovada ya no se corta en la fecha antigua, y un incidente pasajero del servidor de licencia deja 7 días de tolerancia desde el primer fallo; sin licencia válida, en cambio, el módulo se desactiva.

La licencia se activa desde la página Configurar, con la Clave de licencia y el Secreto de licencia de la cuenta de wepresta.shop, y el botón Activar la licencia. El panel muestra después el tipo, el dominio, la caducidad y los días restantes; el botón Desactivar retira la licencia de esta tienda. La comprobación se hace como máximo una vez por hora, y cada 5 minutos en esa página mientras la licencia no está activa: PrestaShop solo contacta con el servidor cuando toca una comprobación, no en cada visita.

La página Configurar sin licencia válida: el formulario de activación, el aviso de caducidad y el recordatorio de que los ajustes y las reglas fiscales se conservan.
La página Configurar sin licencia válida: el formulario de activación, el aviso de caducidad y el recordatorio de que los ajustes y las reglas fiscales se conservan.

Pasado ese plazo, el módulo se desactiva: el selector, el mensaje de IVA y los precios con el IVA del país del visitante desaparecen, y PrestaShop muestra sus precios habituales. Sus ajustes y reglas fiscales siguen en su sitio. El gestor de módulos se niega a reactivar el módulo y remite a la página Configurar, que lo reactiva en cuanto la licencia es válida, sin volver a escribir la clave tras una renovación.

Tras la activación, el panel muestra la licencia activa, el dominio, la fecha de caducidad y los días restantes; «Abrir los ajustes del módulo» lleva a las pestañas.
Tras la activación, el panel muestra la licencia activa, el dominio, la fecha de caducidad y los días restantes; «Abrir los ajustes del módulo» lleva a las pestañas.

La versión 2.0.2 corrigió tres defectos: una suscripción renovada que seguía cortada en la fecha antigua, una respuesta pasajera del servidor que retiraba la licencia y, en PrestaShop 8, un error 500 en el back office tras la desactivación. El formulario, el panel y los mensajes existen en francés, inglés, español, italiano y polaco. El módulo es compatible con PrestaShop 1.7.8, 8.0+ y 9.0+, con PHP 7.4 mínimo; en PHP 7.1 a 7.3, muestra un mensaje «PHP 7.4 minimum» en lugar de un error fatal.

Tras «Desactivar»: la licencia se retira, el módulo queda desactivado y vuelve el formulario, mientras los ajustes y las reglas fiscales se conservan.
Tras «Desactivar»: la licencia se retira, el módulo queda desactivado y vuelve el formulario, mientras los ajustes y las reglas fiscales se conservan.

¿La exportación de IVA sustituye a una declaración OSS?

No: suma las ventas y los abonos registrados en su tienda y produce un CSV para revisar, no una declaración ni una decisión sobre su sujeción al régimen.

El módulo no sigue el umbral OSS, no conserva pruebas de IVA durante diez años y no actualiza la base GeoIP por su cuenta. No comprueba números de IVA intracomunitarios ni convierte un precio B2B en inversión del sujeto pasivo. Estos límites son deliberados: una cifra aproximada sobre una obligación legal sería más peligrosa que un campo vacío.

Los tipos, las reglas y su sujeción dependen de su situación y de su país de establecimiento. El módulo calcula y presenta; no decide por usted. Haga revisar la configuración y la exportación por su asesor antes de declarar.

Para las demás obligaciones europeas que afectan a la ficha de producto, mire el pasaporte digital del producto y el seguimiento de la deforestación UE (EUDR).

Preguntas frecuentes

¿Puedo mostrar precios distintos según la dirección IP del visitante?
Sí, con la detección GeoIP: una vez activado GeoIP y autorizado el país en el selector, el módulo lee la dirección IP en la base local de MaxMind y aplica el país detectado a los precios mostrados. Mientras el carrito no tenga dirección fiscal, ese precio sigue siendo una estimación, visible también en la ventana de añadir al carrito. En cuanto existe una dirección válida, manda ella y los gastos se recalculan.
¿Hay que actualizar la base GeoIP de MaxMind, y con qué frecuencia?
El módulo no fija un calendario: la base se descarga desde la pestaña Avanzado, con el identificador de su cuenta MaxMind y una clave autorizada para GeoLite2 Country. Descargue una base nueva cuando quiera; si la operación falla, se sigue usando la anterior. Compruebe el estado tras cada actualización. En una dirección IP local, la detección no funciona.
¿Qué pasa si el servidor de licencia no está disponible un momento?
La licencia sigue siendo válida. Un error pasajero, un límite de peticiones o un mantenimiento cuenta como fallo de comprobación, y el módulo concede 7 días de tolerancia desde el primer fallo. Pasado ese plazo sin respuesta válida, el módulo se desactiva como sin licencia. Una respuesta válida borra el contador.
Mi suscripción se ha renovado: ¿se corta el módulo en la fecha antigua?
No. Cuando la fecha guardada en la tienda ya pasó, el módulo consulta el servidor de licencia y guarda la nueva fecha. Si el módulo se desactivó mientras tanto, abra la página Configurar: comprueba la licencia y lo reactiva en cuanto es válida, sin volver a escribir la clave ni el secreto.
¿Debo registrarme en el régimen OSS en cuanto vendo a otro país de la UE?
El régimen OSS no es solo un contador: depende del tipo de ventas, del umbral común y de su país de establecimiento. El módulo no calcula ese umbral ni decide su sujeción. Haga revisar su situación por su asesor y use después la exportación de IVA para preparar los importes por país y por tipo.

Productos de este artículo

Encuentre el módulo que su tienda necesita

Ver los módulos