Restringir método de pago por importe en Prestashop

* El documento ha sido actualizado para su funcionamiento en Prestashop 1.7 (al menos hasta la 1.7.2.4)

La idea, es que podamos ocultar un método de pago especifico en base al importe total del pedido.

En este ejemplo, vamos a indicar como podemos ocultar el método de pago con cheque en base a un importe mínimo o máximo.

Aunque vamos a trabajar con la clase original del módulo, recordar que lo optimo es hacer un override de la clase.

Si vamos a la clase del módulo (correspondiente al cheque), es decir, al fichero:

/modules/ps_checkpayment/ps_checkpayment.php

Dentro de la función del hook ->  hookPaymentOptions

Recogemos el valor del pedido:

$importePagado = $params['cart']->getOrderTotal();

Realizamos una condicional, indicando si el importe del pedido es menor de 50 dentro de X moneda no mostramos el módulo.

if ($params['cart']->id_currency  == 1 && $importePagado<50) {
           return;
       }

En este condicional estamos comprobando si el id de la moneda (moneda actual) es 1 y el importe pagado es menor de 50 no mostramos el módulo.

Si tenemos varias monedas debemos realizar las comprobaciones para las distintas monedas indicando el importe limite.

Código

Para Prestashop 1.6, es dentro de la función del hook public function hookPayment($params)

 

2 comentarios sobre “Restringir método de pago por importe en Prestashop”

Deja un comentario

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