Traducción de la guía realizada por el usuario Nemo de la Comunidad de Prestashop

Según nos indica Nemo, el tutorial es para Prestashop 1.6
Imaginemos que queremos que, en el carrito, no puedan existir más de 5 productos en total.
Recordamos, que lo mejor es hacer un override de los “Clases y Controladores” que se vayan a modificar.
En el fichero:
/controllers/front/CartController.php
Dentro de la función:
processChangeProductInCart
Debajo de la línea: (En Prestashop 1.6.1.12, sobre la línea 241)
$cart_products = $this->context->cart->getProducts();
Añadimos la siguiente
$total_cart_produtcs_count=0;
Ahora un poco más abajo, donde tenemos esta línea:
foreach ($cart_products as $cart_product) {
Añadimos:
$total_cart_produtcs_count+=$cart_product['cart_quantity'];
Almacenamos en la variable total_cart_produtcs_count el número total de productos que se van añadiendo al carrito.
Ahora justo antes de este comentario:
// Check product quantity availability
Añadimos:
$max_qty = 5; if(Tools::getValue('op', 'up')=='up' && $mode=='add') { if (count($cart_products) == $max_qty || $total_cart_produtcs_count + $this->qty > $max_qty) $this->errors[] = sprintf(Tools::displayError('El limite de productos en el carrito son %s'), $max_qty); }
- En la variable “max_qty” indicamos el límite máximo de productos que se pueden añadir al carrito.
- En el primero IF se chequea cuando se añade/actualiza productos al carrito.
- En el segundo IF contamos los productos añadidos al carrito y los comparamos con el límite que hemos establecido
- Si se cumplen los dos IF, imprimimos el mensaje de que se ha llegado al límite de productos que se pueden añadir al carrito.
Esta traducción, puede contener errores o quedar desactualizada en el momento en el que vayáis a ver este post, revisarla siempre con el tutorial de Nemo: