Hola @angelseller y gracias a @guillermostore13 y @alba_auto por sus aportaciones.
El problema con tu enfoque, @angelseller, es que Cart::updateQty es un método crucial y su valor de retorno false no se propaga de forma que el CartController pueda generar un mensaje de error legible para el usuario. Para PrestaShop 1.7.5.0, la forma correcta de manejar esto en un override es lanzar una PrestaShopException cuando se supera el límite. El controlador del carrito la capturará y mostrará el mensaje en el front-end.
Aquí te propongo una modificación a tu override, asumiendo que quieres un límite máximo global o por producto que podrías almacenar en la configuración o en un campo extra del producto. Para simplificar, lo haré con un valor fijo, pero la idea es extensible:
// override/classes/Cart.php
class Cart extends CartCore
{
public function updateQty($quantity, $id_product, $id_product_attribute = null, $id_customization = false, $op = 'up', $id_address_delivery = 0, Shop $shop = null, $auto_add_cart = true)
{
// Puedes obtener esto de Configuration::get('PS_MAX_PRODUCT_QTY') o de un campo de producto
$max_allowed_qty = 15;
// Calcular la nueva cantidad después de la operación
$current_qty = (int)$this->getProductQuantity($id_product, $id_product_attribute);
$new_qty = ($op == 'up') ? $current_qty + $quantity : $current_qty - $quantity;
Después de aplicar este override y borrar la caché (Performance > Clear cache), si un cliente intenta superar las 15 unidades de un producto, debería ver un mensaje de error en el carrito. Recuerda que los overrides requieren mantenimiento y pueden generar conflictos en futuras actualizaciones. Para una solución más robusta y sin preocupaciones de compatibilidad, especialmente si necesitas gestionar límites por producto, grupo de clientes o transportista, te recomiendo considerar un módulo dedicado como el que puedes encontrar para automatizar cantidad máxima de producto en la tienda.