Jump to content

Posible solución a "añado al carrito y no actualiza, debo apretar F5"


gusman126

Recommended Posts

Bueno parece que por fin se ha encontrado una solución a este problema

Hoy me ha venido un cliente con este problema, y como siempre se hace todo lo leído y probado

  • Que si desactivar AJAX -> a veces funciona
  • Que desactivar google analytics -> SE llenan los cookies y da error
  • Que si actualizar, error en la plantilla, etc...

Y nada sigue fallando...

Bueno pues se me ha ocurrido leer el fichero ps_shoppingcart.js del modulo de ps_shoppingcart

Ese código de ese fichero por alguna razón NO lo lee y no lo carga, por lo tanto el código que añade el producto, actualiza el carrito y muestra el popup de producto añadido NO funciona

Que es lo que se debe hacer.

Pues nos vamos a la plantilla, a la carpeta de js y en el custom.js añadimos el código del fichero del modulo que no funciona

Solucionado por fin funciona, por que ocurre? ni idea, es un problema del modulo? raro tenia el mismo que classic, la plantilla no carga el jquery correctamente, donde toca, la versión o cualquier otra cosa, y hace que falle. solucionado y a otra cosa.

Recordad, eliminar y regenerar cache

El código es este y el fichero en mi caso /httpdocs/themes/xxxxx/assets/js/custom.js :

$(document).ready(function () {
  prestashop.blockcart = prestashop.blockcart || {};

  var showModal = prestashop.blockcart.showModal || function (modal) {
    var $body = $('body');
    $body.append(modal);
    $body.one('click', '#blockcart-modal', function (event) {
      if (event.target.id === 'blockcart-modal') {
        $(event.target).remove();
      }
    });
  };

  $(document).ready(function () {
    prestashop.on(
      'updateCart',
      function (event) {
        var refreshURL = $('.blockcart').data('refresh-url');
        var requestData = {};

        if (event && event.reason) {
          requestData = {
            id_product_attribute: event.reason.idProductAttribute,
            id_product: event.reason.idProduct,
            action: event.reason.linkAction
          };
        }

        $.post(refreshURL, requestData).then(function (resp) {
          $('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
          if (resp.modal) {
            showModal(resp.modal);
          }
        }).fail(function (resp) {
          prestashop.emit('handleError', {eventType: 'updateShoppingCart', resp: resp});
        });
      }
    );
  });
});

 

Edited by gusman126 (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 1 year later...
hace 10 minutos, juanrojas dijo:

me funciona parcialmente porque por ejemplo añado al carrito, me muestra que añade, pero lo que pasa acontinuacion es que desaparece el icono del carrito tengo que dar f5 para que vuelva a aperecer

Debe ser algun codigo js que esta haciendo algo al detectar el añadir al carrito, busca en el codigo js ..

prestashop.on("updateCart"

Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...