Volver a Proyectos Listado de Artículos

Multiplicar por N unidades, cada vez que añades un producto al carrito

Luis Ruiz

Escrito por Luis Ruiz Actualizado el

En ocasiones necesitamos añadir N unidades de un producto determinado, cada vez que damos a añadir al carrito.

En ocasiones necesitamos que algunos productos se compren por ejemplo de 5 en 5. Creo que la mejor solución y más sencilla es realizar los siguientes paso:

  • Lo primero es irnos al Admin/Catálogo/Características y añadimos una nueva característica llamada por ejemplo Multiplo.
  • Luego crearemos los valores que necesitemos a la característica creada, por ejemplo 5
  • Nos vamos las características del producto que vayamos a utilizar para este menester, asignamos el valor 5 a múltiplo y guardamos

Ahora vamos a modificar product.tpl para mostrar un combo si la característica múltiplo tiene algún valor.

Al inicio de product.tpl buscamos la característica Múltiplo del producto y declaramos la variable múltiplo con su valor.

{foreach from=$features item=feature}
  {if $feature.name=='Multiplo'}
    {assign var=multiplo value=$feature.value}
  {/if}
{/foreach}

Buscamos donde se encuentra el input de la cantidad (id=quantity_wanted) y sustituimos:

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

Por:

{if $multiplo!=''}
  <select id="quantity_wanted" name="qty">{section name=foo start=$multiplo loop=100 step=$multiplo} {assign var=box_qty value=$smarty.section.foo.index}
    <option selected="selected" value="{$box_qty}">{$box_qty}</option>{$smarty.section.foo.index} {/section}
  </select>
{else}
  <input id="quantity_wanted" class="text" maxlength="3" name="qty" size="2" type="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" />
{/if}

Con estas líneas conseguimos que solo se muestre el combo con el multiplicador en los productos que tengan la característica definida para ese fin. Y mediante la función section definimos el bucle.

Ah!! y recordar que también puedes modificar el número de productos en los ficheros del tema shopping-cart.tpl y shopping-cart-product-line.tpl, en los enlaces con las clase cart_quantity_up y cart_quantity_down.

Bueno, creo que esta es la mejor opción, si alguien se anima o tiene otra, ya sabe que aquí tiene un espacio…