Jump to content

Error 500 cuando un pedido es gratis


Recommended Posts

Tengo un ecommerce en mi empresa con Prestashop 1.7.8, y nos ha salido un error del que no encuentro solución.

A un cliente le hemos dado un cupón con un importe exacto y envío gratuito. Cuando hace el pedido, al ser el carrito de menor importe que el cupón, se activa el "Pedido gratuito" en el pago. Cuando pulsa en el botón, sale un error 500.

image.png.c017788bef5f6089381c462ef2f00fa7.png

 

Lo he reproducido en modo debug, y tengo los siguientes errores:

 

[PrestaShopException]

La propiedad Order->total_paid_tax_excl no es válida
at line 1046 in file classes/ObjectModel.php

1041.             }
1042.
1043.             $message = $this->validateField($field, $this->$field);
1044.             if ($message !== true) {
1045.                 if ($die) {
1046.                     throw new PrestaShopException($message);
1047.                 }
1048.
1049.                 return $error_return ? $message : false;
1050.             }
1051.         }

ObjectModelCore->validateFields - [line 293 - classes/ObjectModel.php]
ObjectModelCore->getFields - [line 315 - classes/order/Order.php]
OrderCore->getFields - [line 578 - classes/ObjectModel.php]
ObjectModelCore->add - [line 320 - classes/order/Order.php] - [2 Arguments]
OrderCore->add - [line 1062 - classes/PaymentModule.php]
PaymentModuleCore->createOrderFromCart - [line 346 - classes/PaymentModule.php] - [17 Arguments]
PaymentModuleCore->validateOrder - [line 159 - controllers/front/OrderConfirmationController.php] - [9 Arguments]
OrderConfirmationControllerCore->checkFreeOrder - [line 49 - controllers/front/OrderConfirmationController.php]
OrderConfirmationControllerCore->init - [line 287 - classes/controller/Controller.php]
ControllerCore->run - [line 518 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 28 - index.php]

 

¿Sabéis qué puede estar fallando? Gracias!

Link to comment
Share on other sites

  • 2 weeks later...

El campo total_paid_tax_excl que es el que lanza el error tiene asociada la validación isPrice que nativamente admite 0. A menos que tengas algun override de dicha validación o de la definición de dicho campo en la clase Product, esto no te deberia pasar. Si vas a tener que inspeccionar el objeto $order completo para saber que valor tiene esta variable y porque no esta pasando la validación al guardar los datos en PS.

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...