Jump to content

RESUELTO: Adición de producto en el carro de manera dinámica


JavierEsK

Recommended Posts

Buenos días a tod@s, os traigo un problema que me trae de cabeza, os pongo en situación:

 

Estoy tratando de realizar que, cuando un usuario marque un check en el carrito, se añada de manera dinámica un producto en concreto.

 

Lo que he conseguido:

- He realizado el check.

- He conseguido que cuando se marque o desmarque dicho check se añada o quite el producto del carrito.

- He conseguido que se actualicen los precios (precio productos, precio total, ....) en el carrito de manera dinámica.

 

Lo que no consigo hacer:

- Es que, cuando se añada el producto, este se vea manera dinámica, es decir, se haga el efecto de que el producto se añade.

 

Lo que he intentado:

- Si utilizo la función de prestashop de updateCart, para actualizar los productos como un ajax anidado al que ya tengo hecho, si, efectivamente, se ve el efecto de como se añade dicho producto, pero luego, los botones de incrementar, decrementar unidades de un producto del carrito, o de borrar un producto (los que salen al lado de los productos que el usuario a añadido), por algún motivo en cuanto pulses uno, se realiza un refresco de la web, o lo que vendría a ser lo mismo que pulsar F5.

 

¿Sabéis por que se realiza esa recarga de la web?, o ¿se os ocurre otro modo de realizar esta visualización de manera dinámica?

 

Utilizo prestashop 1.6.1.0, y el carrito es el onepagecheckout.

 

Muchas gracias a tod@s de antemano.

 

Un cordial saludo.

Edited by JavierEsK (see edit history)
Link to comment
Share on other sites

Finalmente he dado con la respuesta, no se si será la mejor, pero funciona y el resto del carrito no se ve afectado en nada.

Lo dejo por aquí por si ha alguien le sirve en algún momento.

He añadido una nueva línea en el controlador del carrito (displayAjax()), para que se guarde el resultado de la carga del tpl encodeada en json.

Luego, ya que lo que me fallaba era a nivel visual solamente, recorro el objeto que devuelve en mi llamada ajax (en cart-summary) y mediante jquery añado la nueva línea entre otras cosas  "copiando y pegando".

Probablemente también podría haber creado directamente la fila nueva, pero dadas las modificaciones que se han realizado en el carrito, me resulta más fácil y rápido así.

 

De todas formas si ha alguien se le ocurre algo mejor, siempre es bueno escuchar otras opiniones.

 

Un saludo.

Link to comment
Share on other sites

×
×
  • Create New...