Píldoras PrestaShop de enero de 2023: Ómnibus, Redsys y stock
Las ideas sueltas de enero de 2023 en la comunidad: cómo se calcula el precio anterior con Ómnibus, por qué Redsys limita importes, qué estados cuentan en las estadísticas y varios trucos de desarrollo de Gustavo.
Enero de 2023 en @PrestashopEsp: la directiva Ómnibus llegaba a las tiendas, Redsys daba guerra con límites y verificaciones, y salieron varios trucos de desarrollo. Lo que no dio para una ficha, aquí.
Ómnibus: el precio anterior es el más bajo de los últimos 30 días
Cuando anuncias una rebaja, el «precio anterior» que muestras tiene que ser el más bajo que hayas aplicado en, al menos, los 30 días anteriores a la rebaja. Como se explicó en el grupo, la obligación viene de la Directiva (UE) 2019/2161, conocida como Ómnibus, que añadió el artículo 6 bis a la Directiva 98/6/CE. El problema en PrestaShop es que, de serie, no guarda el historial de precios, así que no puede saber cuál fue ese mínimo. Para eso presentamos entonces nuestro módulo Ómnibus, que registra los cambios de precio y muestra el mínimo de 30 días en las ofertas.
Error de Doctrine tras cambiar de servidor: mira la versión de PHP
Un compañero migró de servidor y no podía entrar al back-office: Declaration of Doctrine\DBAL\Driver\PDOConnection::query() must be compatible with PDO::query(...). El servidor nuevo tenía PHP 8.0, y su PrestaShop 1.7 no es compatible con PHP 8. Antes de mudarte, consulta la tabla de compatibilidad de PHP de tu versión y elige en el hosting nuevo la que toca.
Un error 500 en el carrito: aísla el módulo y reinstálalo limpio
Otro compañero tenía un error 500 al tocar el carrito en una 1.7. Para encontrar al culpable renombró la carpeta del módulo de carrito: con modules/ps_shoppingcart renombrada, la tienda volvía a funcionar. Le recomendaron restaurar una copia de antes del problema o, si no la tenía, desinstalar el módulo y volver a instalarlo descargado del repositorio oficial de PrestaShop. Renombrar la carpeta es una forma rápida de confirmar qué módulo rompe la tienda; acuérdate de dejarla como estaba.
Redsys limita el importe por operación, y es normal
Un compañero descubrió que su TPV virtual de Redsys no aceptaba pagos de más de 3.000 euros, y su banco lo justificó como medida antifraude. En Rekire hemos visto límites por operación e incluso por facturación diaria, sobre todo en autónomos: el banco te clasifica por riesgo. Lo primero es pedir al banco que lo amplíe. Si no puede ser, mejor ocultar el pago con tarjeta por encima de ese importe con un módulo que esconderlo con CSS, y ofrecer transferencia en los pedidos grandes, que es como ya pagaban la mayoría de sus clientes de importes altos.
Estadísticas vacías: revisa qué estados validan el pedido
En una tienda no salían ventas ni en el resumen del inicio ni en Estadísticas, aunque había pedidos enviados. En el grupo se sospechó que era porque la tienda no generaba facturas, sin llegar a confirmarlo. Lo primero que conviene revisar: las estadísticas de PrestaShop solo cuentan los pedidos validados, y un pedido queda validado cuando pasa por un estado con la casilla «Considerar el pedido asociado como validado». Si usas estados propios o de un módulo de pago, revisa en Parámetros de la tienda → Configuración de pedidos → Estados que los estados de pago y de envío la tienen marcada.
Botones propios en la ficha de producto del back-office
Truco de Gustavo para desarrolladores: con el hook displayAdminProductsMainStepLeftColumnMiddle puedes añadir a la ficha de producto del back-office un TPL con botones que llamen a un servicio externo o abran otras secciones de PrestaShop. Funciona en la ficha de producto de la 1.7. Días después avisó de que en la nueva ficha de producto de la 8.0 ese hook no se ejecuta; con la ficha antigua activada, sí. En la 9.2 ya no lo usa ninguna pantalla. Si actualizas, comprueba qué hooks admite la página de producto de tu versión.
Texto alternativo: describe la foto, no repitas el nombre
Hablando de accesibilidad, Gustavo recordó lo básico: el texto alternativo de las imágenes es obligatorio, y un lector de pantalla que dice «imagen23232313.jpg» no ayuda a nadie. Tampoco ayuda lo que pone PrestaShop por defecto, el nombre del producto en todas las fotos. Escribe en cada imagen lo que se ve: el producto de frente, el detalle de la costura, el producto en uso. Y si añades vídeos o audios, que tengan transcripción.
Pagos pequeños sin verificación con Redsys, sabiendo lo que pierdes
Gustavo habló con Redsys sobre la autenticación reforzada: se puede pedir al banco que los pagos con tarjeta por debajo de cierto importe no pidan código ni confirmación. Menos pasos, menos carritos abandonados. Otro miembro recordó el precio: en esos pagos pierdes la protección y, si hay fraude, el banco no responde. Si lo pides, que sea para importes bajos. Se solicita en la oficina del banco.
No cambies el stock directamente en ps_stock_available
Un compañero preguntó si el stock se guarda en ps_stock_available. Sí, pero Gustavo le aconsejó no escribir ahí a mano: usa las clases de PrestaShop, que actualizan todo lo relacionado y avisan a los módulos que dependen del stock. Desde código, StockAvailable::setQuantity($idProduct, $idProductAttribute, $cantidad) deja la cantidad que le indiques, y StockAvailable::updateQuantity() suma o resta.
Cambio de IVA por categorías: el módulo gratuito de Gustavo
Cuando a principios de 2023 bajó el IVA de algunos alimentos, como el aceite, Gustavo recordó que tiene un módulo gratuito para cambiar de una vez la regla de impuestos de todos los productos de una categoría, sin ir ficha por ficha: actualizar impuestos por categorías. Sirve para cualquier cambio de tipo de IVA que afecte a una familia de productos.
Esto salió en @PrestashopEsp, la mayor comunidad PrestaShop de España en Telegram. Ver la conversación