Jump to content

Generador de Combinaciones con Porcentaje (Casi Perfecto)


Jhony Ranger

Recommended Posts

Buenos días forer@s.

 

Llevo semanas deseando tener un incremento en porcentaje entre los atributos y dados los dilemas que hay en las "soluciones" que he investigado... existirán futuros problemas el día que se actualice a nuevas versiones del PS. Así que intentaré tocar lo mínimo posible el núcleo.

 

Gracias a este truco, rescatado del usuario "kitchendraw" desde el generador de combinaciones se puede añadir un porcentaje sobre el precio base utilizando valores de 0.01 a 0.99. El problema llega cuando uno de los atributos no lleva precio (el primero normalmente), y por ello, termina quedando el precio de esas combinaciones a 0. Alguien pudiera darme algún ejemplo de cómo añadir el precio base a esta fórmula sólo cuando uno de los atributos esté a 0 ???

 

Muchas gracias de antemano.

 

Archivo: /controllers/admin/AdminAttributeGeneratorController.php (Prestashop 1.5.6.X)

  {

   $miprecio = (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute)));

   if (($miprecio <= 1) && ($miprecio > 0))

   {

	$price = (($price * $miprecio) + $price);

   }

   else

   {

	$price += $miprecio;

   }

   $weight += (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact'.(int)$attribute)));

  }
Edited by Guille85 (see edit history)
Link to comment
Share on other sites

  • 4 months later...

Muy buenas Guille, es mi primer post asi que a ver si tenemos suerte.

Estoy en la misma problemática que tu y espero que nos sirva a los dos.

 

prueba esto y me dices. Si te va bien te preguntare si has hecho funcionar el resto de solucion de kitchendraw

*---------------------------------------------------------------------------

  {

   $miprecio = (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('price_impact_'.(int)$attribute)));

   if (($miprecio <= 1) && ($miprecio > 0))

   {
    if ($miprecio == 0)
    {
        $price += $miprecio;
    }
    else
    {
        $price = (($price * $miprecio) + $price);
    }

   }

   else

   {

    $price += $miprecio;

   }

   $weight += (float)preg_replace('/[^0-9.]/', '', str_replace(',', '.', Tools::getValue('weight_impact'.(int)$attribute)));

  }
 

Link to comment
Share on other sites

ummm.... dejalo ni caso.. creo que no va a funcionar..lo siento..

 

A mi si me funciona, lo que hay que hacer es no meterle un precio de base. Vamos,... que sea 0, y solo jugar con los precios en el generador de combinaciones. Es la única solución. En realidad se podría conseguir metiéndote mucho mas de lleno y con conocimientos matemáticos y de programación. Pero NO quiero tocar el core, ya que a la hora de actualizar el prestashop,... podría ser peor que intentar resolver este sudoku:

 

deb50efcfe911f74256a67fe2170baea_article

 

Saludos!

Edited by GuilleFX (see edit history)
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...