No aplicar regla de carrito si un producto pertenece a una categoría x

En este pequeño tutorial, mostraremos como crear una regla de carrito que solo se aplique si los productos  del carrito NO pertenecen a una determinada categoría. Por ejemplo, deseamos tenes un descuento del 10% para todo el catalogo, pero no deseamos que ese descuento se aplique si los productos comprados pertenecen a la categoría HOT SALE (ID 10).

Primero creamos la regla de descuento como lo hacemos normalmente, y luego modificaremos el archivo CartRule.php.

El fichero que se encarga de validar los cupones es el  classes/CartRule.php, dentro del mismo, hay una función llamada "checkValidity".

Lo que haremos es añadir al principio de dicha función nuestro código, pero para ello podemos crear un archivo llamado CartRule.php dentro de la carpeta overrides/classes/ y crear el override, o directamente modificar el archivo original en classes/CartRule.php (si actualizamos PrestaShop se pierde el cambio y hay que hacerlo de nuevo). Hay cientos de tutoriales para hacer overrides, por lo que nos centraremos en la función en si solamente.

Lo unico que debemos cambiar, es el código de la categoría que evita que se cumpla la regla para aplicar el Voucher. En este caso es la 10


Carro 0 Carrito de compras

sin productos

¡Envío gratis! Envío
$0.00 Total

Revisa