OPS Posted June 15, 2012 Share Posted June 15, 2012 (edited) Buenas a todos En nuestra tienda tenemos productos que se venden a su precio y productos que están en oferta. La oferta que aplica es que por la compra de un producto se puede llevar otro por solo 1€, por lo tanto la oferta aplica al comprar sendos productos. Para que dichas ofertas no pasen desapercibidas a los clientes les hemos generado una ventana tipo popup de manera que cuando hagan clic en un producto asociado a la oferta le pregunte si quiere o no aprovechar la oferta. imagen-1 El cliente puede contestar que quiere la oferta, en cuyo caso se le carga un pack con los dos productos, o que quiere comprar el producto sin oferta. La implementación que hacemos del botón comprar solo producto es la misma que viene hecha por defecto en el product-list.tpl de prestashop y cuyo código replico a continuación: <div id="mi_producto"><a class="button ajax_add_to_cart_button exclusive" onClick="$.fancybox.close();" rel="ajax_id_product_{$product.id_product|intval}" title="{l s=' Añadi'}">{l s='Comprar solo producto'} </a></div> </div> Pues bien, cuando tenemos más de un producto en oferta en el mismo listado, es decir, en la misma página porque están en la misma categoría, este botón solo funciona para el primer producto del listado, es decir, que para el resto de productos carga siempre el producto correspondiente al primero de la lista. Para que se vea claro, en la siguiente pantalla tenéis dos productos: Menestra con el id de producto 3 Judias troceadas con el id de producto 10 Imagen-2 Al hacer clic sobre el botón “Añadir al a cesta” de la menestra nos salta el popup y si miramos el id de producto que va a cargar con el botón “Comprar solo el producto” veremos que efectivamente es el id 3. imagen-3 Si ahora vamos al siguiente producto, es decir, a la judias troceadas y damos al botón “Añadir a la cesta” veremos que nos vuelve a saltar el popup pero en este caso si miramos el id de producto que lleva asociado el botón “Comprar solo el producto” veremos que es el id 3 y no el 10 como debería. imagen-4 He comprobado que lo que ocurre es que siempre toma los valores del primer elemento del listado de productos y no se por qué hace eso. Podeis ver el funcionamiento en www.chapaypinturafranciscoleon.com/prestashop y concretamente en la sección verduras. ¿Alguien podría mirarlo y decirme a qué se puede deber? Gracias. Edited June 18, 2012 by OPS (see edit history) Link to comment Share on other sites More sharing options...
shacker Posted June 16, 2012 Share Posted June 16, 2012 version de presta y template? Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2012 Share Posted June 16, 2012 El popup, es un complemento extra que usted ha agregado a su tienda, el error le pasa solo con el popup? 1 Link to comment Share on other sites More sharing options...
OPS Posted June 18, 2012 Author Share Posted June 18, 2012 Estimados shaker y nadie Gracias por vuestras rápidas respuestas. La versión de prestashop es la 1.4.7 y la plantilla es la estandar con una módificación aplicada sobre el product-list.tpl para que genere un popup concretamente con el efecto fancybox. Nadie, efectivamente el error lo debe estar dando el popup ya que el código de los botones de añadir a la cesta es exactamente el mismo. ¿Podrían echarle un vistazo para ver si me pueden orientar sobre el error en concreto? www.chapaypinturafranciscoleon.com/prestashop y dentro podéis ir como os comentaba a la sección de verduras. si necesitáis alguna información adicional decidmelo o si queréis modifico el popup para que saque un único o lo que sea. Lo dicho, muchas gracias. Link to comment Share on other sites More sharing options...
OPS Posted June 18, 2012 Author Share Posted June 18, 2012 Revisando la biblioteca de fancybox, que es la herramienta utilizada para crear el poup, he visto algún comentario en la línea de que el efecto se aplica de manera diferente a elementos individuales y a elementos en listas o grupos. Concretamente hay una entrada en el apartado FAQ que es la siguiente: 7. FancyBox is not working on all images, only first one opens. What's wrong? If you are using ID as selector $("#selector").fancybox(); then switch to classes - $(".selector").fancybox(); Incialmente yo lo tenía configurado como item, es decir: <script type="text/javascript"> $(document).ready(function() { $("a#Mi_contenido").fancybox(); }); </script> <a ID="Mi_contenido" style="background-color: #669900; color:#FFFFFF; font-weight:bold; font-size:9px" href="#contenido" title="Oferta este producto por solo 1€ comprando 1 Kilo de {$product.location|substr:7}">Añadir a la cesta</a> <div style="display: none;"> <div id="contenido" style="width:800px;height:170px;overflow:auto; "> Por ello he probado a cambiarlo a clase, es decir a dejarlo como sigue: <script type="text/javascript"> $(document).ready(function() { $(".Mi_contenido").fancybox(); }); </script> <a class="Mi_contenido" style="background-color: #669900; color:#FFFFFF; font-weight:bold; font-size:9px" href="#contenido" title="Oferta este producto por solo 1€ comprando 1 Kilo de {$product.location|substr:7}">Añadir a la cesta</a> <div style="display: none;"> <div id="contenido" style="width:800px;height:170px;overflow:auto; "> Pero sigue sin funcionar, vamos el funcionamiento es exactamente el mismo que antes. También he probado con class y con <script type="text/javascript"> $(document).ready(function() { $("a.Mi_contenido").fancybox(); }); </script> y tampoco funciona. Os lo comento por si puede limitar en alguna medida el error. Gracias. Link to comment Share on other sites More sharing options...
OPS Posted June 18, 2012 Author Share Posted June 18, 2012 Buenas a todos Creo que hemos solventado el problema. En el código que incorporé en el lugar el botón standar de "Añadir a la cesta" del fichero product-list.tpl se diferenciaban dos casos, es decir, que dependiendo de una serie de condicionantes anteriores el popup que se abre puede variar. El problema estaba en que el identificador de la clase era el mismo en ambos casos. He encontrado una consulta realizada en internet de alguien que tenía el mismo problema y con la respuesta he podido solventarlo. Aquí está el enlace a esa página por si le sirve a alguien de ayuda. http://www.stack-es.com/stackoverflow/es/problem-with-fancybox-iframe-works-only-for-the-first-link-on-the-site--5563799.html voy a terminar de probarlo antes de darlo por resuelto. Muchas gracias. Link to comment Share on other sites More sharing options...
OPS Posted June 18, 2012 Author Share Posted June 18, 2012 Bueno compañeros, parece que todo funciona ahora correctamente. Mil gracias por todo. Resuelvo el post. Link to comment Share on other sites More sharing options...
nadie Posted June 18, 2012 Share Posted June 18, 2012 Bueno compañeros, parece que todo funciona ahora correctamente. Mil gracias por todo. Resuelvo el post. Si usted lo desea publica la solución de forma completa en esta sección: http://www.prestasho...ambian-la-vida/, esto ayudara a tener todo mejor organizado. Link to comment Share on other sites More sharing options...
shacker Posted June 18, 2012 Share Posted June 18, 2012 perfecto. Es muy util el aporte 1 Link to comment Share on other sites More sharing options...
nadie Posted June 18, 2012 Share Posted June 18, 2012 Se me olvido decirte que la comunidad te agradece tu aporte, como te dije si lo publicas en la sección que te comento, ayudara que otros usuarios, encuentren el contenido del foro mejor organizado. 1 Link to comment Share on other sites More sharing options...
OPS Posted June 19, 2012 Author Share Posted June 19, 2012 ok queda actualizado en el siguiente aporte http://www.prestashop.com/forums/topic/173967-aporte-abrir-pagina-dinamica-con-fancybox/page__p__854164#entry854164 Gracias. Link to comment Share on other sites More sharing options...
nadie Posted June 19, 2012 Share Posted June 19, 2012 ok queda actualizado en el siguiente aporte http://www.prestasho...164#entry854164 Gracias. Perfecto! Un Saludo Link to comment Share on other sites More sharing options...
Recommended Posts