Solucionar problemas
Error "Argument X passed OrderProductForViewing must be of the type string"
Si tras actualizar o migrar PrestaShop aparece este error al abrir un pedido, la excepción confirma que un argumento recibió null cuando esa versión del constructor esperaba otro tipo. No demuestra que todos los valores NULL de las tablas de pedidos sean incorrectos.
Type error: Argument X passed PrestaShop\PrestaShop\Core\Domain\Order\QueryResult\OrderProductForViewing::__construct() must be of the type string, null given, called in ...GetOrderForViewingHandler.php
El reporte histórico de PrestaShop reúne casos distintos y se cerró sin una solución universal. Las versiones actuales admiten NULL en varios campos, por lo que convertirlos todos a cadenas vacías o ceros puede alterar información válida.
Empieza por la excepción completa:
- Anota la clase, el número y nombre del argumento, la línea del handler y el pedido afectado.
- Comprueba la firma del constructor en el código de esa misma versión de PrestaShop. No uses la firma de otra rama.
- Revisa los módulos que modifican pedidos y confirma si el fallo también ocurre con ellos desactivados en un clon.
- Consulta únicamente el pedido o detalle señalado por la traza.
SELECT id_order_detail, id_order, product_reference FROM PREFIX_order_detail WHERE id_order = <ID_PEDIDO>;
Sustituye PREFIX_ por el prefijo real. Si el argumento identificado es otro, consulta su tabla y campo concretos; no ejecutes un bloque de correcciones preventivas.
En PrestaShop 8.2 se corrigió además un caso distinto donde la ubicación de un producto eliminado podía llegar como null con determinada caché. Si la traza coincide, actualiza a una versión que incluya la corrección oficial antes de modificar datos.
Si has demostrado una fila incoherente, crea una copia verificada, reproduce la corrección mínima en un clon y limita cualquier UPDATE al pedido afectado. Valida después el pedido, pago, transportista y registro de errores; si la evidencia no identifica un único campo, escala el caso en lugar de normalizar toda la base.
Preservar el historial del pedido
No rellenes referencias, nombres o importes con datos actuales del catálogo sin confirmar que corresponden al momento del pedido. Un producto puede haber cambiado o haberse eliminado desde la compra; el pedido conserva información histórica que no debe reconstruirse a ciegas.
Si la corrección procede de una actualización del núcleo o módulo, ensáyala con el pedido afectado y otros pedidos válidos. Comprueba además facturas, devoluciones y exportaciones; resolver la pantalla de detalle no demuestra que todas las relaciones hayan quedado correctas.
También te puede ayudar
- PrestaShopException: diagnosticar Invalid address Localiza la referencia exacta que provoca Invalid address y sanea solo carritos sin pedido, preserva...
- Error de zonas horarias de GLPI con MariaDB o MySQL Distingue entre datos de zonas horarias no cargados y el permiso que solo requieren versiones de GLP...
- PrestaShop, tamaño excesivo de la tabla layered_filter_block Mide y limpia la caché de Búsqueda por facetas, distingue su índice de precios y actualiza el módulo...
- Error SQLSTATE 2026 al instalar o actualizar PrestaShop Diagnostica la conexión SSL con MySQL que impide a Doctrine consultar la versión del servidor, sin c...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.