Jump to content

Cantidad mínima de venta


raulmon

Recommended Posts

Hola

En nuestro catálogo de productos existen artículos que no se venden individualmente, es decir, si compras tornillos no puedes comprar menos de 100 unidades.
¿Sabeis si existe alguna forma de establecer una cantidad mínima de venta a los productos? ¿ y que además sea importable vía .csv?

Gracias

Link to comment
Share on other sites

Hola Milton, gracias por tu respuesta.

Esa es una opción que en principio habíamos descartado debido al tamaño de nuestra base de datos, tenemos un catálogo con 7000 productos y cada semana hay que actualizarlo vía .csv. Por ahora es la única solución que hemos encontrado, pero no nos parece totalmente viable porque cada vez que reimportemos el catálogo tendríamos que hacer una cuantas operaciones con excel (multiplicar el precio por la cantidad minima de venta, añadir esa cantidad en el nombre del artículo y dividir el stock entre ese valor)
Otro problema de este método es que se trata de establecer una cantidad mínima de venta, no significa que haya que comprar en paquetes de este número de unidades, es decir, que no se pueda comprar menos de 100 tornillos no significa que no se pueda comprar 150.

Desde ayer he estado investigando y creo que la solución que busco pasa por importar la cantidad minima de venta como si fuese un atributo del artículo, y decirle a prestashop que este valor actúe como la cantidad mínima del artículo, pero todavía no se como hacerlo.

Link to comment
Share on other sites

  • 5 weeks later...
  • 3 months later...

Lo que se me ocurre es:
1.- cuando agregamos un articulo agregar un valor (x) numerico que sera el mínimo de compra de ese producto.
2.- cuando se muestra el detalle del articulo
----* Si el valor (x) esta vacio muestre un campo de escritura como hasta ahora
----* Si el valor (x) tiene un valor por ejemplo 3, en vez de mostrar un campo de escritura mostrara una lista/menu donde el primer numero/valor sera 3 (puede ser correlativos a ese numero o multiplos en caso de querer vender paquetes)

Tal vez diran porque no meter en un paquete y ya, pero a los clientes les gusta ver el precio por unidad, de esa forma no habria confusiones y podemos manejar mínimos en cada producto.

Link to comment
Share on other sites

  • 2 months later...

Hola Angelus y Beginner, quisiera saber por favor si han podido resolver este problema pues yo también estoy interesado en colocar unas cantidades mínimas de pedido.
Será que en la versión 1.3 RC se incluyó esta modificación?
Gracias por tus aportes.

Link to comment
Share on other sites

  • 2 weeks later...

yo quiero ingresar lo siguiente:


por ejemplo en la web de http://ditsonline.com cuando tu escojes cualquier producto este se multiplica por 10


es decir ............... yo compro un cable y en la cesta se agregan 10 cables ...................... y es lo que yo quiero hacer para mi WEB



alguien me puede guiar como hacer esto ???? o en que parte del backoffice ?????



Un saludo y gracias por responder

Link to comment
Share on other sites

Hola, tengo un módulo que voy a revisar ya que modifica ciertas partes del core de prestashop para que se pueda establecer por artículo desde el backend unidades mínimas a comprar.. lo revisaré esta noche y mañana lo subo.. un saludo TECNILOCO.

Link to comment
Share on other sites

  • 4 weeks later...

Esta modificación está muy bien pero lo que hace es poner multiplos del valor multiplier en función del mínimo multiplo superior a la cantidad introducida en el campo cantidad. Esto sirve precisamente para la gente que quiere vender en paquetes de x productos pero no para los que quieren vender un "mínimo" de producto como ocurre muchas veces con los mayoristas, es decir, hace falta alguna modificación que diga lo siguiente:

Valor mínimo de compra = X
Si cantidad pedido < X entonces X si no cantidad pedido

¿Alguien sabe como modificar esta modificación (valga la rebuznancia) para que haga esto?.
Saludos.

Link to comment
Share on other sites

En el fichero /themes/tu_plantilla/product.tpl debes modificar el mensaje que se muestra al usuario y en /themes/tu_plantilla/js/tools.js debes modificar la función setQuantity para que calcule según la fórmula que quieras aplicar.

/themes/tu_plantilla/product.tpl (También lo puedes modificar en traducciones del BO)

var multiplierMessage = '{l s='Please note this product requires a minimum amount per order and increment of'} {$product->multiplier} {l s='Changing quantity to'} ';



/themes/tu_plantilla/js/tools.js

// MQC - multiplier calculation
function setQuantity(value,message){
   //var multiplier = 1;
   check = multiplier;
   if(check <= value) 
       return value;
   else {
       alert(message+': '+check);
       return check;
   }

}

Link to comment
Share on other sites

Se me ocurre utilizando bucle for pero no se como seria en smarty

Si quiero que un producto se venda como minimo 3 o en packs de 3, hago lo siguiente:

$min = 3;

for (  $i=1; $i <= 10; $i++)
{
   print $i*$min."
";
}



con eso puedo generar un combo dandome una lista de multiplos de 3 como máximo 30, esto en php pero no se como hacerlo en smarty

Link to comment
Share on other sites

Yo por ahora encontre esta solución:

            <!-- quantity wanted -->

quantity == 0) || $virtual} style="display:none;"{/if}>
{l s='Quantity :'}
               <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />


cambio por esto en la linea 255 apróx del archivo product.tpl

            <!-- quantity wanted -->

quantity == 0) || $virtual} style="display:none;"{/if}>
               {if $product->ean13 == ''}
{l s='Quantity :'}
               <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />
               {else}
{l s='Quantity :'}

               {section name=foo start=$product->ean13 loop=10000 step=$product->ean13 max=12}
{$smarty.section.foo.index}
                 {$smarty.section.foo.index}
               {/section}


               {/if}



La cantidad minima o pack le pongo en el campo EAN13: cuando agrego/edito un producto.


pd: use ese campo porque yo en mi tienda no la utilizo.

Link to comment
Share on other sites

Yo por ahora encontre esta solución:
            <!-- quantity wanted -->

quantity == 0) || $virtual} style="display:none;"{/if}>
{l s='Quantity :'}
               <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />


cambio por esto en la linea 255 apróx del archivo product.tpl

            <!-- quantity wanted -->

quantity == 0) || $virtual} style="display:none;"{/if}>
               {if $product->ean13 == ''}
{l s='Quantity :'}
               <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />
               {else}
{l s='Quantity :'}

               {section name=foo start=$product->ean13 loop=10000 step=$product->ean13 max=12}
{$smarty.section.foo.index}
                 {$smarty.section.foo.index}
               {/section}


               {/if}



La cantidad minima o pack le pongo en el campo EAN13: cuando agrego/edito un producto.


pd: use ese campo porque yo en mi tienda no la utilizo.



No me di cuenta de que lo que utilizas es una lista de cantidades, en realidad es lo mismo que usa la solución ofrecida por tecniloco pero limitando el número de unidades que se pueden seleccionar.
Tampoco es lo que busco, busco solo que si la cantida elejida es menor que la mínima que se estipule para el producto, que se coloque la mínima estipulada, sino que se coloque la que el cliente ha elejido....
Voy a ver si puedo descifrar un poco la solución ofrecida por tecniloco y si lo consigo, lo coloco aquí.
Gracias por la aportación de todos modos.
Link to comment
Share on other sites

Sí, eso ya lo tenia planeado, o utilizar otro campo que no sea utilizado, pero lo que estaba buscando es la forma de crear un combo, y {section}{/section} era la solución.



No me di cuenta de que lo que utilizas es una lista de cantidades, en realidad es lo mismo que usa la solución ofrecida por tecniloco pero limitando el número de unidades que se pueden seleccionar.
Tampoco es lo que busco, busco solo que si la cantida elejida es menor que la mínima que se estipule para el producto, que se coloque la mínima estipulada, sino que se coloque la que el cliente ha elejido....
Voy a ver si puedo descifrar un poco la solución ofrecida por tecniloco y si lo consigo, lo coloco aquí.
Gracias por la aportación de todos modos.



Ah no se que es lo que tenias en mente, pero esto es lo que yo estaba buscando, para que los clientes puedan comprar en packs de 6, 12, 18, etc. porque algunos productos vienen en paquetes de esa cantidad, y lo que ofrecia tecniloco no me servia porque podria comprar 6,7,8,etc y otra vez estaba deshaciendo el paquete.
Link to comment
Share on other sites

...
Valor mínimo de compra = X
Si cantidad pedido < X entonces X si no cantidad pedido
...


No entiendo que es lo queres hacer vos, o mejor dicho que es lo queres obtener.


Cuando estas en la página de producto, hay un campo que preciasmente es para meter la cantidad que quieres comprar, ¿correcto?, bueno pues mi cliente quiere que quien entre en la página a comprar no pueda comprar menos de una cantidad dada.
Imaginemos que una persona que llega a la página le interesa comprar un producto (llamémosle X) bien, pues mi cliente quiere que no puedan comprar meno sde 10 unidades de X, pero si la persona que va a comprar el producto quiere 11 pues no pasa nada, se añaden 11 unidades del producto X a la cesta, pero si el cliente pone 4, automáticamente el sistema añade 10 que es la cantidad mínima que se ha fijado en el BO de presta.
Por esto digo que la solución de tecniloco es la que mas se acerca a lo que busco, pero hay que modificarla para que no añada multiplos del campo "multiplier" que se añade a la base de datos, sino que si la cantidad que se solicita por parte del comprador es menor que la que se pone en el campo "multiplier", la cantidad añadida sea precisamente la que dicta ese campo, si no, la cantidad elejida por el comprador....
Espero haberme explicado, de todas formas, esta tarde estoy sobre ello.
Gracias por el interés.
Link to comment
Share on other sites

Ahora entendí, podrias tambien usar los combos, pero configurando los variantes

{section name=foo start=$product->ean13 loop=10000 step=$product->ean13 max=12}



start=$product->ean13 (es el valor menor o la cantidad minima que queremos que compre)
step=1 (En este caso, las opciones incrementa de a 1)
max=12 (la cantidad de opciones que queremos darle)

{section name=foo start=$product->ean13 loop=10000 step=1 max=12}


Esto seria en tu caso

Link to comment
Share on other sites

si, si, pero voy a probar primero a ver si puedo hacerlo con la modificación de tecniloco, la tuya me parece correcta como dices, de hecho estoy seguro de que funciona bien porque la he probado ya con la primera que diste y como digo se que funciona, total solo le has cambiado el "step" para que suba d euno en uno con lo que debe de funcionar y bien, pero si lo hago como digo, lo que consigo es no "reutilizar" un campo que ya se usa para lo que se usa como es el EAN13, si el día de mañana alguien me pide esa funcionalidad pero además necesita el EAN13 pues ya no vale y estaría de nuevo buscando la solución.
En cuanto llegue a conclusiones las posteo aquí.

Link to comment
Share on other sites

Ya lo tengo resuelto.
Os cuento, he partido de la solución que ha ofrecido tecniloco en este post que recuerdo ¡¡¡NO ES UN MÓDULO CON LO QUE SEGUID LOS PASOS QUE EXPLICA TECNILOCO!!!.

Para conseguir lo que yo queria, además hay que modificar los ficheros que ya se han sustituido en concreto los siguientes:

cart.php
tools.js
shopping-cart.tpl
shopping-cart-product-line.tpl
----------------------------------------------------------------------------------------------------------------------------------
cart.php

hay que modifcar las lineas 84 y 85

$mtp = ceil(intval($qty)/$producToAdd->multiplier);
$qty = intval($mtp * $producToAdd->multiplier);



y dejar solo

&qty;



tool.js

Modificar la función function setQuantity(value,message)
y cambiar su código por este otro

function setQuantity(value,message){
   //var multiplier = 1;
   check = multiplier;
   if(check <= value) 
       return value;
   else {
       alert(message+': '+check);
       return check;
   }



shopping-cart.tpl
Eliminar las líneas 166 y 167






¿por que?, porque resulta que si, las modificaciones hacen todo lo que tienen que hacer cuando le damos al botón añadir al carrito pero resulta que si nos vamos al resumen del carrito, podemos modificar la cantidad de producto a nuestro antojo con los botones de aumentar y disminuir cantidad, si los quitamos, nos ahorramos el buscar que funciones intervienen en el calculo de la cantidad mínima.... y el resultado es el que queremos.

shopping-cart-product-line.tpl

Eliminamos las líneas 27 y 28 por la misma razón que antes...







Y bueno, eso es todo, parece poco, pero tened en cuenta que antes he tenido que hacer todo el proceso de cambio que explica tecniloco, con lo cual, al final de la corrida tampoco es demasiado pero no es poco.

RECORDAD, COPIAS DE TODO ANTES DE MODIFICAR NADA, QUE LUEGO PUEDE SER UN DESASTRE

Gracias a todos los que se han interesado por este tema.

Link to comment
Share on other sites

  • 4 months later...
  • 1 month later...
  • 1 month later...

Hola a todos, excelente aporte. Solo tengo una pequeña duda. Para la gente que usamos grandes cantidades de datos y necesitamos importar ficheros excel. En AdminImport no reconoce el campo multiplier. Estoy intentando modificarlo pero no aseguro nada. Si TECNILOCO y dahuegon saben como, se lo agradeceria.

Un Bratzo a todos.

Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...

Reabro este hilo porque no encuentro nada más cercano a lo que estoy tratando de hacer.

Necesito estipular una cantidad mínima de productos para que un pedido sea válido, pero lo complicado que me están pidiendo es que esa cantidad pueda incluir cualquier cantidad de varios productos. Me explico:

Venta de botellas de bebida

Ej: Cantidad mínima de botellas para que un pedido sea admitido: 8 botellas

El pedido se podría formar con, por ej:

Vodka - 1 botella
Whisky - 3 botellas
Ron - 1 botella
Ginebra - 2 botellas
Vino - 1 botella

Total - 8 botellas - Pedido admitido

Claro, esto debe dejar abierta la posibilidad de añadir al carrito productos en cantidades de 1, de modo que lo visto en este hilo no me sirve. La solución pasaría por modificar el carrito para que sea éste el que lance un mensaje y detenga el proceso de validación del pedido hasta que no se cumpla la condición...



No sé si me explico... :-P



Agradeceré enormemente cualquier ayuda, estoy un poco atascado con esto.


Gracias de antemano.

Link to comment
Share on other sites

  • 11 months later...

Hola

 

En nuestro catálogo de productos existen artículos que no se venden individualmente, es decir, si compras tornillos no puedes comprar menos de 100 unidades.

¿Sabeis si existe alguna forma de establecer una cantidad mínima de venta a los productos? ¿ y que además sea importable vía .csv?

 

Gracias

 

Hola amigo, no se que versión exactamente están usando de Prestashop o si ya sabían de esta opción y no es la que buscaban, pero he leído tus ejemplos de lo que pretendes hacer y creo que esta opción que te diré hace exactamente eso.

 

veras, en la pestaña de info del producto, te vas a donde dice cantidad minima, esa esta justo debajo de movimiento de stock, pues allí mismo puedes colocar la cantidad mínima de ese artículo que una persona puede comprar, y listo, el sistema no deja comprar menos del mínimo que coloques allí y así puedes hacer con cada producto de manera individual.

 

Esto para las versiones de prestashop 1.4.4 en adelante, versiones anteriores lo desconozco pero para estas si se que esta disponible y funciona perfectamente. si colocamos un minimo de 10 unidades el cliente podrá comprar 11 o 12 o las que deseé pero no menos de 10 unidades. Espero haber podido ayudaros

Link to comment
Share on other sites

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