On 5/27/2025 at 1:13 PM, MKZ Industries said:La última versión es la 1.6.0, disponible para descargar aquí: https://pagosonline.redsys.es/desarrolladores-inicio/documentacion-tipos-de-integracion/modulos-pago/
Acaba de salir sí. Yo tardaré tiempo en probarla, solo cuando revise el código los cambios que han hecho.
@apositivo prueba por favor la versión que te he dado, estoy casi seguro que el fallo que te está dando es el mismo que tuve yo que arreglar, a ver si así te cargan los pedidos antiguos. Hace dos meses migré como tú de 1.6.1.24 a 8.2.1. No hay que hacer ninguna traslación u homologación de los datos antiguos por temas de métodos de pago. No hay que tocar las tablas para este aspecto.
La prueba más sencilla es: ¿puedes ver los pedidos antiguos cuando ese módulo de Redsys 1.5.7 o 1.6 está desactivado? Si puedes el problema es el módulo, que debug te especifica donde está el error.
——————-
Detallo el parche que me temo que no han reparado en esa versión 1.6.0:
Parche para evitar error 500 en el backoffice al ver pedidos sin Redsys 1.5.7
📌 Síntoma del error
Al acceder a un pedido desde el backoffice, PrestaShop lanza este error:
Warning: Trying to access array offset on value of type null en modules/redsyspur/redsyspur.php (línea ~2499)
Esto ocurre porque el módulo intenta acceder a datos de Redsys aunque el pedido no haya sido pagado con un módulo oficial de Redsys, aunque usara también la plataforma Redsys o fuera muy antiguo, o fuera métodos de pago como contrareembolso.
✅ Solución
Editar el archivo modules/redsyspur/redsyspur.php, dentro del método:
public function hookDisplayAdminOrderSide(array $params)
Y reemplazar su contenido completo por lo siguiente, añadiendo un primer if:
public function hookDisplayAdminOrderSide(array $params) { $orderDetails = Redsys_Order::getOrderDetails($params['id_order']); if ( !is_array($orderDetails) || !isset( $orderDetails['redsys_order'], $orderDetails['confirmation_amount'], $orderDetails['refund_amount'], $orderDetails['shipping_paid'] ) ) { return ''; // No hay datos de Redsys, no mostramos nada } $orderId = $params['id_order']; $order = new Order($orderId); $redsysOrder = $orderDetails['redsys_order']; $amountPaid = ($orderDetails['confirmation_amount'] - $orderDetails['refund_amount']) / 100; $amountPaid = number_format($amountPaid, 2); $smartyVars = array(); $smartyVars['orderId'] = $orderId; $smartyVars['redsysOrder'] = $redsysOrder; $smartyVars['amountPaid'] = $amountPaid; $smartyVars['productsAmount'] = number_format($order->total_paid_real - $order->total_shipping, 2); $smartyVars['shippingAmount'] = number_format($order->total_shipping, 2); $smartyVars['reference'] = $order->reference; $smartyVars['shippingPaid'] = json_encode(($orderDetails['shipping_paid']) ? true : false); $this->context->smarty->assign($smartyVars); $content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . $this->name . '/views/templates/admin/refundpayment.tpl'); return $content; }
💡 ¿Qué hace este parche?
Evita errores fatales al comprobar si $orderDetails existe y tiene todos los campos necesarios antes de usarlos.
No interfiere con pedidos que sí usaron Redsys, donde el bloque se sigue mostrando como siempre.
Hace el módulo compatible con pedidos de otros métodos de pago o con pedidos migrados desde otras versiones.