Jump to content

Edit History

gusman126

gusman126

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});
        });
      }
    );
  });
});

 

gusman126

gusman126

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.

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});
        });
      }
    );
  });
});

 

×
×
  • Create New...