Jump to content
Eusebio100

[Aporte] Compra Minima con Iva incluido -Prestashop 1.6.1.20

Recommended Posts

Hola, 

Después de darle algunas vueltas, he encontrado una solución fácil para que la compra minima sea con iva incluido, y que de momento me funciona muy bien, la pongo por si puede ser útil.

En controller/front/OrderController.php buscar lo siguiente sobre la línea 63 aprox:

        // Check minimal amount
        $currency = Currency::getCurrency((int)$this->context->cart->id_currency);

        $orderTotal = $this->context->cart->getOrderTotal();
        $minimal_purchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency);
        if ($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) < $minimal_purchase && $this->step > 0) {
            $_GET['step'] = $this->step = 0;
            $this->errors[] = sprintf(
                Tools::displayError('A minimum purchase total of %1s (tax excl.) is required to validate your order, current purchase total is %2s (tax excl.).'),
                Tools::displayPrice($minimal_purchase, $currency), Tools::displayPrice($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS), $currency)
            );
        }

Sustituir por:

        // Check minimal amount
        $currency = Currency::getCurrency((int)$this->context->cart->id_currency);        
		$orderTotal = $this->context->cart->getOrderTotal(true, Cart::ONLY_PRODUCTS);
        $minimal_purchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency);
        if ($orderTotal < $minimal_purchase && $this->step > 0) {
            $_GET['step'] = $this->step = 0;
            $this->errors[] = sprintf(
                Tools::displayError('El importe minimo por pedido son %1s (envío no incluido). Le faltan %2s en su cesta para alcanzar el minimo.'),
				Tools::displayPrice($minimal_purchase, $currency), Tools::displayPrice(($minimal_purchase - $orderTotal), $currency)
            );
        }

Es para prestashop 1.6.1.20, no lo he probado en otras versiones.

NOTA: Hay que modificar igualmente la función initContent en el archivo classes/controller/ModuleFrontController.php y para el caso del pago en una sola página (one page checkout), hay que hacer la misma modificación en el archivo controllers/front/OrderOpcController.php (sobre la línea 588 en ps 1.6.1.20).

Edito nuevamente: Gracias a la explicación del forero joseantgv sobre clases heredadas en los controladores, he conseguido hacer override de los archivos anteriores, que es el método más correcto.

Adjunto zip con los archivos modificados para subir directamente a la carpeta override respetando la ruta tal y como están en el zip; recordad que hay que borrar el archivo class_index para que los cambios tengan efecto, y recordad también que el importe de compra minima que figura en preferencias/pedidos ahora es con iva incluido.

override.zip

Edited by Eusebio100 (see edit history)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More