jose.alonso Posted September 12, 2016 Share Posted September 12, 2016 (edited) Hola amigos! Me gustaría saber como se pueden añadir excepciones "cart rule" a una categoría en concreto, como por ejemplo "Outlet" Actualmente tengo el siguiente código: $cart_rule = new CartRule(); $cart_rule->id_customer = (int)$this->context->cart->id_customer; $cart_rule->name = array(Configuration::get('PS_LANG_DEFAULT') => $email); $cart_rule->quantity = 1; $cart_rule->quantity_per_user = 1; $cart_rule->code = $random; $cart_rule->date_from = date('Y-m-d H:i:s', time()); $cart_rule->date_to = date('Y-m-d H:i:s', time() + 24 * 36000); $cart_rule->active = 1; $cart_rule->reduction_percent = PORCENTAJE; $cart_rule->add(); } Gracias y un saludo. Edited September 12, 2016 by jose.alonso (see edit history) Link to comment Share on other sites More sharing options...
jose.alonso Posted September 12, 2016 Author Share Posted September 12, 2016 (edited) Al final he encontrado la solución por mi cuenta y la comparto con todos ustedes, por si a alguien la necesita algún día. Dentro de /classes/CartRule.php y antes de la línea en la que aparece el siguiente código: $nb_products = Cart::getNbProducts($context->cart->id); Colocar lo siguiente: if(!isset($products)) $products = $context->cart->getProducts(); if($products) { foreach ($products as $prod) { $prod_categories = Product::getProductCategories($prod['id_product']); if(in_array(110, $prod_categories)) /****El 110 hace referencia a la categoría que no quiero que se aplique el descuento****/ return (!$display_error) ? false : Tools::displayError('Uno o más productos de su carrito no son compatibles con este descuento'); } } Como resultado final quedaría así: if(!isset($products)) $products = $context->cart->getProducts(); if($products) { foreach ($products as $prod) { $prod_categories = Product::getProductCategories($prod['id_product']); if(in_array(110, $prod_categories)) /****El 110 hace referencia a la categoría que no quiero que se aplique el descuento****/ return (!$display_error) ? false : Tools::displayError('Uno o más productos de su carrito no son compatibles con este descuento'); } } $nb_products = Cart::getNbProducts($context->cart->id); Edited September 12, 2016 by jose.alonso (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now