Cestas de la compra con cupones de descuento caducados

Hace unos días descubrimos un pequeño bug en las últimas versiones de Prestashop. El bug es que Prestashop permite tener en la cesta de la compra vales de descuento ya caducados. El caso es el siguiente:

Un cliente añade hoy a su cesta de la compra un cupón de descuento que caduca mañana, sin embargo no realiza la compra hasta pasados dos días, por lo tanto, no podría disfrutar del vale descuento. Pero Prestashop lo permite al tener el cupón añadido con anterioridad a la cesta de la compra. Es decir, no realiza una segunda verificación de los cupones descuentos añadidos a la cesta.

Para solucionar este problema hemos hecho un override sobre el controlador: Controllers/Front/OrderController.php concretamente en su función: initContent()

public function initContent()
    {
        $cupones = $this->context->cart->getCartRules();
        foreach ($cupones as $key => $value) {
            $cr = new CartRule($value['id_cart_rule']);
            if (!$cr->checkValidity($this->context, true, false)) {
                $this->context->cart->removeCartRule($value['id_cart_rule']);
            }
        }
        return parent::initContent();
    }

Lo que hace la función es simplemente recorrer los vales descuento o CartRule asociadas al carro de la compra o cart y quitar los que ya no son validos antes de continuar con la ejecución de la función en la clase padre.

Con esto y más ¡tu tienda online siempre preparada!

¿Necesitas ayuda más avanzada para solucionar tus problemas?

Contáctanos o echa un vistazo a nuestros servicios, entre los cuales podrás encontrar varios planes de mantenimiento de Prestahop.

Nuestros servicios

Impulsa la venta online y haz crecer tu negocio en poco tiempo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *