Jump to content

¿Como podría asignar una cantidad minima de unidades necesaria para que un pedido sea válido aplicable a una categoría en particular?


buddychrist

Recommended Posts

Hola,

Estoy desarrollando una web de venta de licores. En Prestashop podemos asignar un importe mínimo necesario para procesar un pedido pero necesitar basar ese límite en el número de unidades comprado.

Me explico. Hay dos categorías principales "Licores" y "Miniaturas". Si bien en "Licores" un cliente puede comprar tantas botellas como quiera en el caso de la categoría "Miniaturas" la cosa cambia.

El cliente podrá seleccionar distintas miniaturas pero para que el pedido sea válido, deben ser múltiples de 8 (cajas de 8 unidades). Un ejemplo de un pedido válido sería:

Botella A 2 unidades
Botella B 1 unidad

Miniatura A 1 unidad
Miniatura B 6 unidades
Miniatura C 1 unidad

Total: 8 Miniaturas (múltiple de 8) + 3 Botellas grandes ---> El pedido es correcto.

Tengo controlado el tema de los múltiples de 8 incluyendo el siguiente código en order.php

/* Codigo Multiplos 8 */

$nbProds = $cart->nbProducts();
if ( ($nbProds > 0) AND ($nbProds%8 <>0) )
{
   $step = 0;
   $errors[] = Tools::displayError('El pedido mínimo para el caso de miniaturas es de 8 botellas.');
}

/* Fin codigo */



El problema es que se aplica a todas las categorías por lo que no podría pedir 8 miniaturas y 3 botellas grandes con este código.

¿Se os ocurre alguna forma de aplicar este filtro a una categoría concreta?
Gracias por adelantado!

Link to comment
Share on other sites

  • 4 weeks later...

Te indico cómo hacerlo:
Tienes que conocer el ID de la categoría que quieres aplicarle esta limitación de cantidades. Suponiendo que la categoría de vasos es la 3 y se tienen que comprar de 8 en 8:
Editamos el archivo order.php, y en la línea 472, a continuación de "include_once(dirname(__FILE__).'/header.php');" ponemos:

$query = "SELECT c.id_product, c.quantity, p.id_category FROM ps_cart_product c, ps_category_product p 
           WHERE c.id_cart='".$cart->id."' AND c.id_product = p.id_product";

$hayarticulos = false;
$articulos = 0;
$miconsulta = mysql_query($query);
for($i=0;$i    $ea = mysql_fetch_array($miconsulta);

   if ($ea['id_category'] == '3') {
       $hayarticulos = true;
       $articulos = $articulos + $ea['quantity'];
       }
}

if (($hayarticulos)&&(($articulos%8)<>0)) {
   echo '

       Ha añadido usted en su carrito productos de la categoría CATEGORIA. Estos productos se presentan en una caja que contiene 3 unidades, por ello ha de comprarlos  en cantidades de 3 en 3, para poder realizar su compra correctamente. Las cajas pueden contener articulos de esta categoria pero diferentes, pero cada caja debe contener 3 de estos artículos. 

   <style>
   p.cart_navigation a.exclusive {
       display:none;}
   </style>
   ';
   }


Con esto, cuando alguien añade cantidades de la categoría 3 que no son múltiplos de 8, desaparece el botón "seguir" del detalle del carrito.
Esto lo he programado en una tienda en la que no he puesto el carrito de la compra detallado a la derecha, así que el cliente cuando compra se va al detalle del carrito y en esa pantalla es donde deshabilito el botón y le muestro un mensaje.
Si vas a mantener el carrito a la derecha no sabría como hacerlo, pero puede que partiendo de esto puedas modificar el carrito de forma similar.

Espero ser de ayuda
Un saludo

Link to comment
Share on other sites

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