Jump to content

Poner la cantidad como comboBox, en función de cada producto


Recommended Posts

Los productos que vendemos en la tienda, van en paquetes de 1000, 1500, 2000, 2500...

¿conoceis algún modulo que quite la opción de ir de 1 en 1 producto, y despliegue un combo para elegir entre varios parametros. La idea que cada producto tenga una serie de valores, asi que la cosa se complica...

Un saludete, y muchas gracias de antemano...

Link to comment
Share on other sites

Mira este hilo
http://www.prestashop.com/forums/viewthread/32111/#249752
Luego, en el fichero product.tpl de tu tema cambia la línea 261

                <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{$product->multiplier|intval}{/if}" size="2" maxlength="3" onupdate="this.value=setQuantity(this.value,'{l s='Minimum Qunatity and Increase there of Required'}')"/>            


por

            {if $product->multiplier > 1}

               {section name=box start=1 loop=10 step=1}
               {math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty}
{$box_qty}
               {/section}

           {else}
               <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />
           {/if}



Recuerda hacer copias de seguridad de los ficheros y BBDD que vas a tocar por si no sale el resultado que esperas poder echar atrás los cambios.

Un saludo

Link to comment
Share on other sites

Me he pegado la mañana con ello, y no ha habido forma...

En mi caso, casi por cada artículo, las combinaciones de cantidad serán distintas, y si pongo cantidad como atributo, pues encima de engorroso, se disparan el número de combinaciones, y se desploma el chiringuito...

Asi que nada, a ver si al final doy antes con ello, que "ello" conmigo... ainsss..

Link to comment
Share on other sites

Hola José Ramón, ¿has leido el hilo al que te enlazo?, la cantidad mínima no es un atributo de combinación, sino que se modifica la estructura de la BBDD para agregar un campo que contenga dicho valor, de forma que es liviano en cuanto a rendimiento y no queda nada engorroso, si sigues los pasos del otro hilo conseguirás en menos de diez minutos tener activado una compra mínima y por paquetes de x para cada artículo (por defecto 1), después le modificas lo que yo he agregado que es para que cuando dicho valor sea distinto de 1 aparezca el desplegable en vez de que el usuario elija de forma libre la cantidad.

Recuerda hacer copias de seguridad antes de modificar.

Un saludo

Link to comment
Share on other sites

Oye, que ya lo tengo funcionando... Muchísimas gracias ;-).

La historia es que ayer improvisé sobre la tienda (casi...) en producción, pero con miedo a liar alguna, y hoy he probado sobre un prestashop en blanco..., con los ficheros del hilo, y ha funcionado a la primera.

Para lo que necesito ya he hecho una adaptación al código tuyo:

{if $product->id_category_default == 1}
{section name=box start=1 loop=100 step=1}
{math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty}
{$box_qty}
{/section}
{elseif $product->id_category_default == 3}
{section name=box start=1 loop=10 step=2}
{math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty}
{$box_qty}
{/section}
{/if}

Asi hago un loop diferente por cada categoría..., claro que mas que loop, a mi me interesa, que aparezcan los parámetros para cantidad, en función de un array, que de normal haría con un for:

var cantidadesCategoria1:Array = new Array (1000, 2000, 3000, ....., 15000, 20000, 50000, 70000, 90000);
var cantidadesCategoria2:Array = new Array (50, 100, 150, ....., 200, 250, 300, 350, 400, 450,....);

for (var i:Number = 0;i++;i {math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty}
{$box_qty}

}

for (var j:Number = 0;j++;j {math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty}
{$box_qty}
}


El problema, es que no tengo ni idea de como haría esto en un tpl... De momento ya me he bajado un manual del smarty, asi que ya estoy en segunda base gracias a vos ;-).

Un saludo, y mil gracias una vez más, por tu ayuda.

Link to comment
Share on other sites

Échale un vistazo a http://www.smarty.net/manual/es/language.function.foreach.php y a http://www.smarty.net/manual/es/language.function.section.php, seguro que te sacan de algún apuro.

Según veo en el código que has puesto la cantidad la reflejas según categoría, no según producto, dedicándole algo de tiempo se podría colocar el pedido mínimo a nivel de categoría heredándolo el producto, de forma que una categoría se vende por defecto en lotes de una cantidad y un producto en concreto (aunque pertenezca a esa categoría) se puede vender a otra, pero eso ya es para otro hilo ;)

Link to comment
Share on other sites

  • 1 year later...

EstimadoS soy diseñadora y estoy iniciandome en Presta, estoy trabajando en la version 1.4.5.1, necesito ayuda para lograr lo siguiente: Añadir en "N unidades" por producto (por ej cantidad minima 2, luego cada vez que de +(añadir) o - (quitar) que vaya de 2 en 2), porque los productos vienen en packs de 2, 3 y mas, todos diferentes (cuando realizo el pedido, ademas de poder hacerlo en el carrito) que no se pueda vender en otras cantidades. Es eso posible? MUCHISIMAS GRACIAS!!!!

Link to comment
Share on other sites

  • 4 weeks later...

Buenas!

Estoy con el mismo problema... lo del signo más y menos sería perfecto..., aunque me conformaría con que me saliera un combo box con multiplos de las unidades. Es decir, que si el producto se vende en packs de 3. Un combo con 3,6,9,12,15,18.....

Intento hacer lo que hace Jose Ramón pero, al modificar product.tpl de la carpeta "Themes"->"Prestashop",

no veo que me haga ningun cambio en la web...

Yo también estoy en la version 1.4.5, y no es en la misma linia de código (261) que se dice aquí en el foro.

Con la nueva versión quizá no vaya.....

 

Espero que me podais ayudar!!! Muchas gracias!

Link to comment
Share on other sites

Weeeeis!

 

Yo continuo con mi batalla con los combobox... No entiendo como es el codigo del combobox en prestashop, el {section name=box start=1 loop=10 step=1} {math equation="x * y" x=$smarty.section.box.index y=$product->multiplier assign=box_qty} {$box_qty} {/section} , no se como programarlo, y para que me lo guarde en el campo correcto. No hay manera.

De momento he encontrado la manera de hacer una chapuzilla, pero que visualmente, queda claro que se está haciendo algo mal.

Como podeis ver abajo en la imagen. He retocado la plantilla de idioma para cambiar el texto en pantalla, para indicar que hay que poner multiplos. Y luego en el javascript js->productos.js. He cambiado

 

function checkMinimalQuantity(minimal_quantity)

{

if ($('#quantity_wanted').val() % minimal_quantity)

{

$('#quantity_wanted').css('border', '4px solid red');

$('#minimal_quantity_wanted_p').css('color', 'red');

}

else

{

$('#quantity_wanted').css('border', '1px solid #BDC2C9');

$('#minimal_quantity_wanted_p').css('color', '#374853');

}

}

Básicamente, he cambiado el signo < que había antes, por un %. para que mire si lo pedido y los sets son multiplos.

En el recuadrito de la izquierda veis lo que se puede ver si el número introducido es válido, si no pues lo de la derecha...

sepuedeborrar.jpg

El problema es que si introducen una cantidad más grande que el número mínimo, el sistema deja, por muy rojitas que salgan las letras en pantalla.

 

La verdad es que con esta modificación rápida hecha en un minuto, he conseguido salir un poco del paso. Como funcionamos a pago a posteriori, siempre podemos llamar al cliente y explicárselo si ha hecho algo mal. Pero la verdad es que me gustaría encontrar una solución que fuera "apañá" y no esta chapuzilla que he hecho...

 

Malditos combobox!!!! (y digo malditos, para que el admin no me eche del foro...)

 

Engaaaa! Hasta pronto!!!

Aleoudie

Link to comment
Share on other sites

  • 7 months later...

Hola Tengo una tienda Prestashop donde vendo material eléctrico

Me ocurre que por ejemplo cuando compro cable eléctrico viene empaquetado de fábrica en rollos de 200 mts. El precio que le de poner a la tienda es el precio de 1mts de cable. Necesito ponerlo así porque los electricistas quieren saber lo que les cuesta 1 mts de cable para compararte con la competencia y no les interesa saber lo que les cuesta .un rollo de 200 mts.

Necesito saber si es posible que la tienda haga lo siguiente: Cuando el cliente pulse sobre el producto en el momento de hacer el pedido , la celda udes se debe de rellenar automáticamente con la cantidad 200 uds ya que este producto se sirve de 200 en 200 udes.

He visto una tienda que lo hace ( no es prestashop). Aquí teneis un pantallazo de donde se detalla el producto y se indicacan que el producto está “Disponible en rollos de 200 mts”

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

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