Cambiar el estado de pedido por defecto del módulo pago en efectivo Prestashop

Cambiar el estado de pedido por defecto del módulo pago en efectivo Prestashop

Se trata de un problema que se nos ha presentado hace unos días, cuando un cliente quería cambiar el estado de pedido por defecto que tiene el módulo de “Pago en efectivo (Solo en Tienda Física)”.

El módulo no permite ningún tipo de configuración por lo que la única opción es irnos a sus archivos a retocar la función ValidateOrder.

Lo primero que debemos hacer es irnos en trastienda a “Parámetros de la Tienda” -> “Configuración de Pedidos” y presionamos en “Estados de pedido” para saber la ID del estado de pedido que nos interesa que esté por defecto cuando un cliente realice una compra utilizando esta opción de pago.

Sabiendo ya la ID nos toca entrar a las tripas del módulo en cuestión para hacer los cambios.

Entramos por FTP a la carpeta “modules” -> “ps_cashondelivery” -> “controllers” -> “front” y accedemos al archivo validation.php

Una vez dentro debemos buscar esta linea: $this->module->validateOrder(

Ya tenemos la función que establece el estado de pedido, os la marcamos en verde:

$this->module->validateOrder(
(int) $this->context->cart->id,
(int) Configuration::getGlobalValue(Ps_Cashondelivery::CONFIG_OS_CASH_ON_DELIVERY),
(float) $this->context->cart->getOrderTotal(true, Cart::BOTH),
$this->module->displayName,
null,
[],
(int) $this->context->currency->id,
false,
$customer->secure_key
);

Ya solo nos basta con borrar esa linea y poner el número ID del estado de pedido que queremos poner seguido de una coma, en mi caso es el ID 1:

$this->module->validateOrder(
(int) $this->context->cart->id,
1,
(float) $this->context->cart->getOrderTotal(true, Cart::BOTH),
$this->module->displayName,
null,
[],
(int) $this->context->currency->id,
false,
$customer->secure_key
);

Guardamos los cambios y LISTO!!! al hacer un pedido con esa opción de pago el estado de pedido inicial es el que queremos.


Abrir chat