Jump to content

Vales descuento no acumulables a precios específicos o reglas de precios de catalogo


Patronarte

Recommended Posts

Hola a tod@s!! 

 

Llevo un tiempo ya dándole vueltas a este tema y no encuentro una solución. El tema es que tengo varios productos con precios específicos o con reglas de catalogo aplicados muy agresivos. Aparte quiero ofrecer un vale de descuento, pero no quiero que este vale de descuento pueda aplicarse a productos con precio específico o reglas de precios de catálogo aplicados. Al crear un vale si que encuentro la opción de que no sea compatible con otros vales pero no con precios específicos o reglas de catálogo. He buscado módulos y tampoco he encontrado nada que solucione este tema.

 

¿Conocéis algún modulo o alguna forma de solucionar este tema? Utilizo la versión 1.6.1

 

Gracias

Link to comment
Share on other sites

Hola Patronarte, yo estuve buscando exactamente la misma solución que aquí detallas, y conseguí hacerlo.

 

En un momento te busco el archivo que tuve que modificar y edito el mensaje con la solución.

 

Un saludo.

 

----------------------------

 

 

En el archivo classes/CartRule.php debes añadir esto cerca de la línea 850. 

 
foreach ($package_products as $product)
if (Product::isDiscounted((int)$product['id_product'])) 
$order_total -= $use_tax ? $product['total_wt'] : $product['total'];

 

Te pongo un trozo de código antes y después para que lo veas más claro. Es lo que está entre las líneas de comentado donde pone "FIX PARA ARREGLAR etc etc".

 

Si tienes alguna pregunta o cualquier cosa, no dudes en decirlo. Ya me cuentas que tal te ha ido.

// Discount (%) on the whole order
			if ($this->reduction_percent && $this->reduction_product == 0)
			{
				// Do not give a reduction on free products!
				$order_total = $context->cart->getOrderTotal($use_tax, Cart::ONLY_PRODUCTS, $package_products);
				foreach ($context->cart->getCartRules(CartRule::FILTER_ACTION_GIFT) as $cart_rule)
					$order_total -= Tools::ps_round($cart_rule['obj']->getContextualValue($use_tax, $context, CartRule::FILTER_ACTION_GIFT, $package), _PS_PRICE_COMPUTE_PRECISION_);
					
					/* FIX PARA ARREGLAR DESCUENTOS SALES 
					* De este modo, nunca aplicará el descuento de cliente 
					* a un producto que esté rebajado mediante una regla de catálogo
					*/
					foreach ($package_products as $product)
						if (Product::isDiscounted((int)$product['id_product'])) 
						$order_total -= $use_tax ? $product['total_wt'] : $product['total'];
					/* -----------------------------------*/
					

				$reduction_value += $order_total * $this->reduction_percent / 100;
			}

			// Discount (%) on a specific product
			if ($this->reduction_percent && $this->reduction_product > 0)
			{
				foreach ($package_products as $product)
					if ($product['id_product'] == $this->reduction_product)
						$reduction_value += ($use_tax ? $product['total_wt'] : $product['total']) * $this->reduction_percent / 100;
			}
Edited by Tárraga (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...
  • 2 months later...

Y para hacerlo al contrario?? que teniendo una regla de catálogo, por ejemplo, un 10 en una categoría determinada... no puedan meter cupones de descuento activados??? Se que en la opción de compatibilizar reglas de compra en vales de descuento te da la opción de no acumular vales de descuento... pero no aparecen las reglas de catálogo.. quiero decir, que un cliente no pueda utilizar un vale descuento si el producto tiene ya aplicada una regla de catálogo... Perdón, es que me estoy volviendo loco buscando y no encuentro solución alguna

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...