Jump to content

Descuentos del carrito - excluir productos con descuento


Recommended Posts

Hola,

Tengo un problema que en la última actualización de Prestashop parecía estar solucionado, pero al volver a actualizarlo, me ha vuelto a surgir. Actualmente trabajo con la versión 1.7.5.1

Cuando hago un Descuento en "Reglas del Carrito" en la pestaña de "Acciones" activo el apartado que pone "Excluir productos con Descuento". En la web, si pongo algún producto con descuento en el carrito y aplico el código, este no funciona. OK

El problema es que si en el carrito pongo un producto ya descontado y otro sin descuento, el código de descuento sí que se aplica y hace un descuento del Total (por lo que aplica el descuento al producto ya rebajado también).

¿Sabéis cómo puedo hacer que identifique cada producto individualmente? ¿Y aplique el código de descuento solo a los productos que no están previamente rebajados?

¡Muchas gracias!

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

Hola.

Tengo el mismo problema; he creado algunas reglas en el carrito para intentar generar descuentos pero los descuentos se aplican automáticamente también a los productos que están en oferta (con "precio específico") y la opción "Excluir productos con descuento" no hace ningún efecto.

A ver si alguien puede darnos un poco de luz ... :(

Link to comment
Share on other sites

Tenía el mismo problema y la solución que he podido encontrar es un poco artesanal pero me ha dado resultado para salir del paso.

- En condiciones, crear una restricción por producto y  seleccionar todos los productos excepto los que os dan el problema,  que son los que ya tienen su descuento.

- En acciones/aplicar descuento a,  seleccionar Producto(s) seleccionado(s)

  • Like 1
Link to comment
Share on other sites

  • 4 months later...
  • 3 weeks later...
  • 3 weeks later...

Hola. Yo tenía el mismo problema y aventurándome en mi Inglés de las películas de Alfredo Landa encontré este artículo que funciona perfectamente.....

Cambiáis el archivo que dice por el contenido que os da y asunto solucionado.... 

 

Espero que os funcione... yo uso prestashop 1.7

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

El error en 1.7.6.7 es que falta agregar paréntesis en la regla que evalua si un producto ya tiene descuento o no.

La solución es usar esta línea de código, en reemplazo del que viene por defecto en:

/src/Core/Cart/CartRuleCalculator.php

Buscar al rededor de la línea 166

// Discount (%) on the selection of products
        // MODIFIED BY RUBEN FELIX
        // Se agregaron parentesis en la linea 174 y 175 para aislar las consultas in_array, y en conjunto operarlas con las reglas de verificacion de otros descuentos 
        if ($cartRule->reduction_percent && $cartRule->reduction_product == -2) {
            $selected_products = $cartRule->checkProductRestrictionsFromCart($cart, true);
            if (is_array($selected_products)) {
                foreach ($this->cartRows as $cartRow) {
                    $product = $cartRow->getRowData();
                    if ((in_array($product['id_product'] . '-' . $product['id_product_attribute'], $selected_products)
                        || in_array($product['id_product'] . '-0', $selected_products))
                           && (($cartRule->reduction_exclude_special && !$product['reduction_applies'])
                               || !$cartRule->reduction_exclude_special)) {
                        $amount = $cartRow->applyPercentageDiscount($cartRule->reduction_percent);
                        $cartRuleData->addDiscountApplied($amount);
                    }
                }
            }
        }

 

Este es un ejemplo de como quedo en mi web.

La regla que cree pide que exista el producto "Azodyl" y otro producto "Renal". El descuento es 10% sobre estos productos, pero se debe excluir a "Azodyl" que el el que tendrá el descuento publicado.

Y como se ve, la regla funciona. Se generá un descuento llamado Pack Tratamiento Renal que de 34.20 PEN

(En el extracto también se está sumando otro descuento por "Canbo" de 10 PEN, siendo un total de 44.20 PEN de descuento en esta orden)

image.thumb.png.ae4dca8fde55720f74d32fb7bb3641ec.png

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
On 4/24/2020 at 6:28 PM, Goram said:

Tenía el mismo problema y la solución que he podido encontrar es un poco artesanal pero me ha dado resultado para salir del paso.

- En condiciones, crear una restricción por producto y  seleccionar todos los productos excepto los que os dan el problema,  que son los que ya tienen su descuento.

- En acciones/aplicar descuento a,  seleccionar Producto(s) seleccionado(s)

hombre... en una tienda con 10 o 20 artículos si se puede usar esa técnica
pero con una tienda de 2000 o 3000 artículos, como que no seria muy factible

  • Haha 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...