piribipipi Posted August 29, 2014 Share Posted August 29, 2014 En mi tienda existen bastantes productos con precio 0 (no se ha actualizado el precio), pero me interesa que aparezcan en cualquier busqueda. Lo que no quiero es que se puedan añadir al carrito... como puedo evitar eso??? Pense que añadiendo un valor minimo para el carrito seria suficiente, pero en el caso de que el carrito incluya un producto con valor ya esta opcion no sirve de nada :S Se solucionaria esto quitando el boton de añadir al carrito para todos los productos que no tienen precio??? O habria alguna forma en la que si podria añadirlo???? Tendria que buscar todos los modulos en las que aparezcan listados y botones de añadir y modificarlos... un poco peligroso porque tendria que tener cuidado de cambiar en todos los lugares!!! Que me recomendais?? Gracias!!! Link to comment Share on other sites More sharing options...
jesa Posted August 29, 2014 Share Posted August 29, 2014 En la ficha del producto tienes una opción para ponerlo disponible al pedido. Deshabilitando esta opción no debería dejarte añadirlo al carrito. Otra opción sería que si tienes control de stock le pongas que tiene stock 0 y con la opción de no permitir pedidos si no tiene stock. Link to comment Share on other sites More sharing options...
piribipipi Posted August 29, 2014 Author Share Posted August 29, 2014 El problema es que eso es un funcionamiento "manual". Es decir... no quiero que cada vez que marque un producto con stock 0 tener que ir a esa opcion de disponible para pedido y deshabilitarla... porque puede dar lugar a posibles olvidos que hagan que el producto se mantenga visible... Mi idea es que haga el mismo funcionamiento que esa opcion de disponible para pedido, pero que lo haga automaticamiente siempre que el precio sea 0... Link to comment Share on other sites More sharing options...
nadie Posted August 29, 2014 Share Posted August 29, 2014 El problema es que eso es un funcionamiento "manual". Es decir... no quiero que cada vez que marque un producto con stock 0 tener que ir a esa opcion de disponible para pedido y deshabilitarla... porque puede dar lugar a posibles olvidos que hagan que el producto se mantenga visible... Mi idea es que haga el mismo funcionamiento que esa opcion de disponible para pedido, pero que lo haga automaticamiente siempre que el precio sea 0... Si no quieres hacer un update por sql a la base de datos. (que se puede hacer masivo), siempre te puedes programar un trigger, que se ejecuta en la base de datos automaticamente cada vez que ocurre 'x' condicion. Link to comment Share on other sites More sharing options...
piribipipi Posted August 29, 2014 Author Share Posted August 29, 2014 Gracias por vuestra colaboracion. Lo del update masivo no hay problema con eso, pero seria algo que tendria que hacer "manualmente" o añadir un script en el cron que realice esa funcion. Lo del trigger ya se acerca un pcoo mas a lo que quiero, pero ya se me escapa un poco a mis conocimientos... que se programaria directamente sobre la base de datos? Link to comment Share on other sites More sharing options...
nadie Posted August 29, 2014 Share Posted August 29, 2014 (edited) En realidad, incluso puedes programarte un script, por jquery para quitar o ocultar el boton, ya que si ves, en el codigo de tu tienda, veras una variable que dice: var productPrice = XX.XXX; Gracias por vuestra colaboracion. Lo del update masivo no hay problema con eso, pero seria algo que tendria que hacer "manualmente" o añadir un script en el cron que realice esa funcion. Lo del trigger ya se acerca un pcoo mas a lo que quiero, pero ya se me escapa un poco a mis conocimientos... que se programaria directamente sobre la base de datos? El trigger, si tienes permisos, lo puedes guardar desde phpmyadmin, como por ejemplo se comenta aqui: http://txtplano.blogspot.com.es/2014/04/ejemplo-de-creacion-triggers-mysql.html Edited August 29, 2014 by nadie (see edit history) Link to comment Share on other sites More sharing options...
piribipipi Posted August 29, 2014 Author Share Posted August 29, 2014 lo del script jquery esta bien, pero no se que tan fiable seria (me refiero a que tendria que eliminar el contenido del div en donde se encuentre el boton d añadir al carrito siempre que productPrice=0), y esto tendria que ejecutarse en todas las paginas en las que se puedan añadir productos al carrito... Tengo miedo de que se me pase algun lugar y puedan añadir al carrito productos que no deberian... Voy a revisar eso de los triggers... lo ideal seria que cuando se actualiza el precio dl producto, si pasa a un valor >0, el trigger actualice el producto como Disponible para pedido, y que si el precio=0, marque el producto como no disponible para pedido. Ves factible esto?? Gracias!! Link to comment Share on other sites More sharing options...
piribipipi Posted August 29, 2014 Author Share Posted August 29, 2014 (edited) Estuve investigando el funcionamiento de los triggers y al final cree esta sentencia: CREATE TRIGGER product_price BEFORE UPDATE ON `ps_product` FOR EACH ROW BEGIN IF (NEW.price IS NULL OR NEW.price = '' OR NEW.price = 0) THEN SET NEW.available_for_order = 0; ELSE SET NEW.available_for_order = 1; END IF; END Cuando el precio de un producto se cambia a 0, el producto se marca como no disponible para la compra, y cuando el precio es >0, se marca como disponible. Hice unas pruebas y si actualiza el valor correctamente, pero el boton de añadir al carrito lo muestra tanto cuando esta disponible como no disponible.... Lo que estoy viendo es que el cambio a mi me lo esta haciendo en la tabla ps_product... pero posiblemente tendria que hacerse en la tabla ps_product_shop... pero ahi ya si que no se como habria que modificar el trigger para realizar eso :S Alguien me puede ayudar?? Gracias!!! Edited August 29, 2014 by piribipipi (see edit history) Link to comment Share on other sites More sharing options...
rafaelamargo Posted August 29, 2014 Share Posted August 29, 2014 Estuve investigando el funcionamiento de los triggers y al final cree esta sentencia: CREATE TRIGGER product_price BEFORE UPDATE ON `ps_product` FOR EACH ROW BEGIN IF (NEW.price IS NULL OR NEW.price = '' OR NEW.price = 0) THEN SET NEW.available_for_order = 0; ELSE SET NEW.available_for_order = 1; END IF; END Cuando el precio de un producto se cambia a 0, el producto se marca como no disponible para la compra, y cuando el precio es >0, se marca como disponible. Hice unas pruebas y si actualiza el valor correctamente, pero el boton de añadir al carrito lo muestra tanto cuando esta disponible como no disponible.... Lo que estoy viendo es que el cambio a mi me lo esta haciendo en la tabla ps_product... pero posiblemente tendria que hacerse en la tabla ps_product_shop... pero ahi ya si que no se como habria que modificar el trigger para realizar eso :S Alguien me puede ayudar?? Gracias!!! Hola, Me cuelo por esta zona. ¿El mismo (un duplicado) trigger, pero con la tabla ps_product_shop no puedes hacerlo? Link to comment Share on other sites More sharing options...
tamu secreto Posted August 29, 2014 Share Posted August 29, 2014 si siempre se envia un valor cero, creo que deberia modificar el archivo tpl product.tpl ubicado el directorio de su theme en ese archivo encontrara algo asi bajo el comentario <!-- add to cart form-->{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0}class="hidden"...... adicione la llamada del precio dentro de esa sentencia para que el boton se oculte. no recuerdo bien creo que era $product->specificPrice algo asi, entonces quedaria: {if $PS_CATALOG_MODE && !isset($groups) && ($product->specificPrice == 0 ) && $product->quantity > 0}class="hidden"...... en fin esa es la idea, pero no recuerdo si specificPrice era el del producto o el de la oferta... Yo lo haria asi saludos Link to comment Share on other sites More sharing options...
nadie Posted August 29, 2014 Share Posted August 29, 2014 Yo la idea que te he comentado, es para dejar la opción marcada en el panel de la tienda. (en tu caso deberas actualizar ps_product y ps_product_shop, rafael amargo te ha dicho duplicar el trigger) y con la plantilla por defecto, desaparece el boton de añadir al carrito. Tocar el tpl, como sugiere Tamu es otra opción, pero como dijistes al principio que no querias tocar ningun tpl, pues por eso no te comente nada. Link to comment Share on other sites More sharing options...
piribipipi Posted September 4, 2014 Author Share Posted September 4, 2014 Gracias por la colaboracion! Ahi estoy trabajando en eso Link to comment Share on other sites More sharing options...
Recommended Posts