buddychrist Posted November 24, 2010 Share Posted November 24, 2010 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 unidadesBotella B 1 unidadMiniatura A 1 unidadMiniatura B 6 unidadesMiniatura C 1 unidadTotal: 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 More sharing options...
buddychrist Posted November 29, 2010 Author Share Posted November 29, 2010 ¿Alguna idea? Sigo sin saber cómo resolverlo. Link to comment Share on other sites More sharing options...
lightdown Posted December 23, 2010 Share Posted December 23, 2010 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 ayudaUn saludo Link to comment Share on other sites More sharing options...
buddychrist Posted December 23, 2010 Author Share Posted December 23, 2010 Muchas gracias. Me has ayudado mucho.Un saludo y Feliz Navidad. Link to comment Share on other sites More sharing options...
Recommended Posts