Jump to content

Se ha producido un error inesperado. [PrestaShopException código 42]


dyley

Recommended Posts

Hola!

Me encuentro en la misma situación. Desde que actualicé desde 8.0.4 a 8.1.0 desde autoupgrade 4.16.0 me ocurre este error.

Cuando recibo pedido, el pedido se crea sin estado, y cuando intentas cambiar el estado aparece el error: 

Captura.thumb.PNG.792f822c36431306a842d02b856f1a8b.PNG

Si cambia el estado aún apareciendo el error, pero no muestra registro de cambios de estado, ni genera la factura al realizar el pedido el cliente:

Captura3.PNG.610cc8b69b9fcc8f7cd86a76ce25bea4.PNG

Y no aparecen los datos del pago realizado. Al intentar ponerlos de manera manual sigue apareciendo el error, y en éste caso no añade los datos (En la factura aparece la forma de pago en blanco):

Captura2.PNG.3bfb2bc129119752212e3158d2574be3.PNG

 

Con pedidos creados antes de la actualización SI puedo cambiar el estado de los pedidos sin que aparezca ningún error, por lo que parece que en la nueva versión crea los pedidos de diferente manera o con algún bug.

Todos los módulos actualizados.

PHP: 8.1.20

Si voy detectando mas fallos ya iré actualizando.

Muchas gracias

 

EDIT: En modo debug no aparece ningún dato adicional al mostrado. Si genera algún log donde pueda aparecer, díganme y lo pego

Edited by aitorjp (see edit history)
Link to comment
Share on other sites

En mi caso, la tabla order_history tiene la misma estructura que la que me muestras y está registrando datos en esa tabla

 

EDIT: Tras realizar la consulta en phpmyadmin:

SELECT DISTINCT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'id_employee'
        AND TABLE_SCHEMA='nombreDeBaseDeDatosDondeBuscar'

 

Estas son las tablas en las que aparece el campo id_employee:

N**DB_customer_message

N**DB_supply_order_receipt_history

N**DB_employee_shop

N**DB_message_readed

N**DB_order_history

N**DB_log

N**DB_supply_order_history

N**DB_employee

N**DB_tab_module_preference

N**DB_warehouse

N**DB_message

N**DB_module_history

N**DB_employee_account

N**DB_stock_mvt

N**DB_module_preference

N**DB_employee_session

 

Quizás si puedes consultar si en una DB correcta de PS 8.1 aparece en alguna tabla mas, quizás localicemos donde está el fallo.

Edited by aitorjp (see edit history)
Link to comment
Share on other sites

a mi me dice 

Argument 2 passed to PrestaShop\PrestaShop\Core\Domain\Order\QueryResult\OrderMessageForViewing::__construct() must be of the type string, null given, called in /home/enriquetomas/public_html/dyley.com/src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php on line 714

[TypeError 0]

Link to comment
Share on other sites

Alguien con instalación correcta de PrestaShop 8.1 puede realizar la consulta en la BD?

On 7/11/2023 at 9:23 PM, aitorjp said:
SELECT DISTINCT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'id_employee'
        AND TABLE_SCHEMA='nombreDeBaseDeDatosDondeBuscar'

Así podemos localizar la tabla que no tiene el campo id_employee y agregarlo manualmente. Gracias

Link to comment
Share on other sites

On 7/13/2023 at 4:09 PM, ExpertoPrestaShop said:

image.png.e179f941874aabc213f780713dc71f78.png

Gracias ExpertoPrestaShop , ya localicé el problema en GitHub, pero he tenido día liado y no la escribí aquí.

El problema está en la tabla order_payment que no tiene el campo id_employee, al agregarlo manualmente ya deja de dar el error.

Dará error 23000, pero al poner los datos del pago de manera manual ya funcionará todo bien.

Me falta comprobar si al hacer un cliente un pedido, funciona todo automáticamente y bien como antes del upgrade. Mañana a ver qué tal.

Dejo enlace al GitHub por si dan alguna otra solución o dato extra:

https://github.com/PrestaShop/PrestaShop/issues/33238

 

EDIT: **SOLUCIONADO CON EDIT2** No funciona con los nuevos pedidos.

El pedido sigue generándose sin estado (Por lo que el cliente no recibe confirmación de pedido ni se genera la factura hasta que cambias manualmente el estado)
Y hay que seguir introduciendo datos del pago a mano para que no de error. Redsys no introduce los datos automáticamente, supongo que el módulo recibirá algún error y no continua la operación

 

EDIT2: He eliminado el campo de la tabla creado a mano ya que quizás no lo cree con la configuración adecuada y quizás por eso no funcionaba correctamente.

Ahora he creado el campo id_employee con la siguiente consulta SQL:

ALTER TABLE `ps_order_payment` ADD `id_employee` INT NULL AFTER `date_add`;

A esperar nuevo pedido desde Redsys, que creo que es el que me da mas problemas al crear pedido.

EDIT3: SOLUCIONADO.

Con la última consulta SQL ALTER TABLE, se ha solucionado todo y ya vuelven a funcionar los cambios de estado, el historial de estados y los datos del pago efectuado por módulo Redsys

Edited by aitorjp (see edit history)
  • Like 1
Link to comment
Share on other sites

la solución es Para las actualizaciones existentes, puede solucionar el problema de forma permanente ejecutando este SQL.

ALTER TABLE `ps_order_payment` ADD `id_employee` INT NULL AFTER `date_add`;

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hola compañeros, soy novato con el tema de la base de datos, he creado el campo id_employee pero la consulta se queda asi:

ALTER TABLE `prstshp_order_payment` ADD `id_employee` INT NULL DEFAULT NULL AFTER `date_add`;

Alguien me puede decir o subir una captura de que campos hay que marcar para que la consulta se cree correctamente.

Despues de crear el campo correctamente hay que hacer algo más como actualizar o refrescar las base de datos...

Gracias

Edited by Electric-Urban (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...