Jump to content

Generar atributos con porcentaje y cantidad simultáneos.


J. R. Leon Somovilla

Recommended Posts

Me estoy volviendo loco (literalmente...) con este tema.

Tenemos un producto con multiples opciones, que nos obliga a meter tanto cantidades como porcentajes.

Caso real:

Generador de Combinaciones

Cantidad:
100 - 10 euros
200 - 20 euros
300 - 30 euros

Tributo:

tipo1 - Precio Inicial+2%
tipo2 - Precio Inicial+3%
tipo3 - Precio Inicial+4%

El generador solo permite valor enteros a modo suma, y aunque voy enredando mil archivos, no hay forma de que consigamos, que calcule el porcentaje y lo aplique en la combinación resultante.

¿Os ha tocado este tema a alguien?, ¿sabeis si existe algún módulo que lo haga?.

Un saludo, y mil gracias.

Jose Ramon León Somovilla

Link to comment
Share on other sites

Hola, encontraste la manera de añadir porcentaje en atributos? en este foro: http://www.prestashop.com/forums/viewthread/52441/configuring___using_prestashop/adding_atribute_as_a_percentage_increase he visto una posible solucion en las indicaciones que hay al final pero se pierde la opcion de incremento suma y me gustaria que se vea como en la foto que adjunto.

Gracias

33373_ytgMA2te405XDL7c6fAC_t

Link to comment
Share on other sites

  • 3 weeks later...

Hola he visto que estais buscando la manera de cambiar el impacto en el precio de los atributos a un porcentage.

Yo también me he leido el post del foro ingles y funciona muy bien siempre que existan atributos que tienen impact sobre el precio. Claro se pierde la opcion de incrementar mediante suma o resta.

Pero el problema que tengo yo es que ademas en los productos que no tienen ningun atributo o que tienen atributos sin impacto en el precio, el precio que se muestra en la ficha del producto o en la lista de productos es 0.00 por que como el impacto es 0 al multiplicarlo se queda en 0.00.

He intentado hacer algunas modificaciones para conseguir lo que proponia J.R. en el post del foro ingles, que cuando el valor de la modificación este entre 0 y 1 o -1 pero excluiendo el 0 aplique el porcentage y cuando sea distinto aplique suma.

Lo he intentado varias veces y creo que al final he conseguido que funcione.

Los cambios estan echos sobre las modificaciones ya propuestas en el foro ingles por Jobatkin

En classes/Product.php he cambiado

$price *= $attribute_price; 



por

       if (($attribute_price >= -1) && ($attribute_price < 0))
       $price *= $attribute_price;
       elseif (($attribute_price > 0) && ($attribute_price <= 1 ))
       $price *= $attribute_price;
       else
       $price += $attribute_price;






Y he cambiado en themes//js/product.js

var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) * productPriceWithoutReduction);



por

       if (attribut_price_tmp >= -1 && (attribut_price_tmp < 0))    
           var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) * productPriceWithoutReduction);
       else if (attribut_price_tmp > 0 && (attribut_price_tmp <= 1))
           var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) * productPriceWithoutReduction);
       else
           var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) + productPriceWithoutReduction);



Ahora si el valor introducio como impacto en el precio esta entre 0 (no incluido) y 1o-1(si incluidos) multiplica, si los valores son superiores a 1 o inferiores a -1 hace una suma o resta, también hace suma cuando el valor es 0 o no existe.

Lo he probado asi por encima y funciona bien de momento.

Si lo quereis probar i decirme si esta bien o no os lo agredzco.

Salu2!

Link to comment
Share on other sites

Hola, ayer propuse en el foro de la nueva version 1.4.3 si podian añadir la opcion multiplicar y me han borrado el mensaje :-) en fin habra que esperar a que le haga falta a alguien entendido en la materia y lo publique.

Saludos y feliz puente a tod@s

Link to comment
Share on other sites

Bueno he estado probando y me he dado cuenta de lo que no funciona correctamente es el generador de atributos en la ficha de producto del backoffice, al intentar cambiar la variación de precio por atributo desde el generador todos los valores se ponian a cero.

Al final también he tenido que hacer los siguientes camvios en AdminAttributeGenerator.php

He cambiado lo siguiente:

$price *= floatval($_POST['price_impact'][intval($attr)]);


por esto otro:

            if (($attribute_price >= -1) && ($attribute_price < 0))
           $price *= floatval($_POST['price_impact'][intval($attr)]);
           elseif (($attribute_price > 0) && ($attribute_price <= 1 ))
           $price *= floatval($_POST['price_impact'][intval($attr)]);
           else
           $price += floatval($_POST['price_impact'][intval($attr)]); 




Ahora si creo que funciona correctamente.

Todos estos cambios como he mencionado antes los he realizado sobro los que ya habia echo Jobatkin en este hilo del foro en ingles http://www.prestashop.com/forums/viewthread/52441/configuring___using_prestashop/adding_atribute_as_a_percentage_increase

Link to comment
Share on other sites

  • 1 year later...

Hola wills1234,

me he visto con la necesidad de multiplicar el por el valor de las combinaciones en lugar de sumarlo, y me ha funcionado tu solución salvo en esta parte :

 

if (attribut_price_tmp >= -1 && (attribut_price_tmp < 0))

var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) * productPriceWithoutReduction);

else if (attribut_price_tmp > 0 && (attribut_price_tmp <= 1))

var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) * productPriceWithoutReduction);

else

var productPriceWithoutReduction2 = (ps_round(attribut_price_tmp * currencyRate) + productPriceWithoutReduction);

utilizo la version 1.4.8.2 , me podrias decir se estan correctos estos cambios, he supuesto que a var productPriceWithoutReduction2 le sobra el 2 , pero por ejemplo attribut_price_tmp no se de donde sale.

 

Muchas gracias por tu ayuda y tus comentarios

Link to comment
Share on other sites

  • 2 weeks later...

Bueno ya que lo tenia solucionado, al trabajar con el grupo por defecto con "price display method: Tax excuded", me ha dejado de funcionar, he revisado las funciones y no he visto el porque se comporta de forma diferente, aunque estoy un poco pegado en php, a ver si me podeis ayudar.

 

Muchas gracias.

Link to comment
Share on other sites

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