Píldoras PrestaShop de febrero de 2026: SPF, Docker y descuentos
Las ideas sueltas de febrero de 2026 en @PrestashopEsp: cómo devolver una venta con factura simplificada, por qué solo puede haber un registro SPF, Docker para tiendas antiguas, cambiar precios de transportistas y los límites de las reglas de carrito.
Febrero de 2026 dejó dudas de facturación, de DNS y de servidores, varios trucos de checkout y un diagnóstico curioso sobre carritos que se guardan de más. Lo que no dio para ficha, aquí.
Devolución de una venta con factura simplificada
Un compañero que entrega siempre factura simplificada a cliente genérico preguntaba qué hacer cuando le devuelven un envío. La respuesta de otros dos miembros: una factura rectificativa a cliente genérico contra la simplificada original, anulando el importe e indicando qué ticket se rectifica y el motivo.
Varios servicios de correo, un solo registro SPF
Un compañero preguntaba si, para autorizar varios servicios de envío, añadía los include en la misma línea o creaba un registro SPF por servicio. Va todo en un único registro: v=spf1 include:servicio1 include:servicio2 ~all. Si un dominio tiene dos registros SPF, la comprobación falla y tus correos pierden credibilidad. Ojo también con el límite de 10 consultas DNS que admite SPF.
Una tienda antigua en un servidor nuevo: Docker
Un compañero quería cambiar de servidor, pero el nuevo traía una versión de libxml que no le iba a su PrestaShop antiguo. La recomendación: Docker. Con un contenedor llevas la versión de PHP y las librerías que la tienda necesita, sin tocar el resto del servidor. Otro miembro compartió un docker-compose de ejemplo con la imagen oficial de PrestaShop y MariaDB, con los volúmenes para módulos, temas y overrides.
Cambiar el precio de un transportista: edítalo, no lo recrees
Un compañero dudaba si crear de cero un transportista para cambiarle los precios, aunque tuviera que volver a conectarlo con su módulo de envíos. Contó que la vez que lo hizo, pedidos antiguos de ese transportista aparecieron después descuadrados. Mejor editar los rangos: si el transportista ya tiene pedidos, PrestaShop guarda internamente una versión nueva al modificarlo, para conservar los datos de los pedidos anteriores, y mantiene su referencia, que es la que siguen los módulos bien hechos.
Descuento en todo menos en unos productos
Un compañero compartió un módulo para excluir productos de un descuento por marca o categoría, y Rekire confirmó que es una petición habitual: recordaba un desguace con 160.000 productos que quería oferta en todo menos en motores. Con las reglas de carrito nativas solo puedes decir a qué productos se aplica, no a cuáles no, y con catálogos grandes es inviable. Gustavo añadió otra carencia: si el pedido es menor que el cupón, el resto no se puede usar para pagar el envío.
Un carrito que se guarda tres veces por petición
Gustavo analizó con ayuda de la IA una tienda lenta en el checkout y encontró una «tormenta» de guardados del carrito. Por un lado, el propio núcleo actualizaba el carrito al iniciar la página porque los datos de la cookie (cliente, moneda, idioma) no coincidían con los del carrito. Por otro, un módulo de checkout lo guardaba hasta tres veces seguidas al gestionar direcciones y envío por separado. Cada guardado dispara actionCartSave, y con muchos módulos de marketing enganchados ahí, la tienda se atasca.
Un módulo de 1.7 que falla en 8.2: mira los hooks
Un desarrollador tenía que entregar un módulo de 1.7 adaptado a 8.2 y algo fallaba. Gustavo le dio el método: activa la depuración, abre la consola del navegador en la pestaña Red, repite los pasos y mira qué llamada da error. Encontró la causa: un hook que existía en 1.7 y no en 8.2. Lo resolvió detectando la versión al instalar y registrando el hook que corresponde en cada una.
¿PrestaShop o WordPress para empezar?
Una persona que venía de WordPress preguntaba por dónde empezar con PrestaShop. Gustavo le contestó con un repaso honesto: es todo lo contrario a WordPress; casi todo se paga (y eso es bueno), da más problemas (y eso es malo) y está mejor preparado para vender. Su consejo de fondo: especialízate en uno de los dos; si intentas abarcar varios, no acabarás sabiendo bien ninguno.
Mostrar «Gratis» en el transportista cuando una regla lo deja a cero
Un compañero tenía reglas que dejaban el envío gratis, pero el texto «Gratis» solo salía después de recargar la página. Lo resolvió en la plantilla de transportistas de su tema: detectar las reglas de descuento activas antes del bucle de transportistas y forzar la etiqueta:
<span class="carrier-price{if $is_free_carrier} carrier-price-free{/if}">
{if $is_free_carrier}Gratis{else}{$carrier.price}{/if}
</span>La variable $is_free_carrier no la trae el tema: es la que calculas tú antes del bucle. Si tu tienda tiene varios idiomas, pon el texto con una cadena traducible en vez de «Gratis» a fuego, y pruébalo antes en una copia de la tienda.
Esto salió en @PrestashopEsp, la mayor comunidad PrestaShop de España en Telegram. Ver la conversación