Вход • Регистрация

Чем дальше в лес, тем больше дров

  • 18 декабря 2016 г.
  • Все слышали пословицу "Чем дальше в лес, тем больше дров"? :)
    Эта история приключилась и со мной, служба поддержки отказалась мне помочь, сказав лишь "На общий взгляд Ваш код не противоречит CMS."
    При малом тестировании сайта обнаружил проблему, товары не всегда кладутся в корзину, покопался и нашел в чем причина.
    Оказалось что из-за этого кода:
    Код
    $.ajax({
    url: window.location.href,
    type: 'POST',
    dataType: 'json',
    data:{
    module: 'shop',
    action: 'shop_load_rel',
    id_shop_product: id_shop_product
    },
    success: function(response){
    var data_rel = prepare(response.data);
    if(data_rel != ''){
    $('.block_shop_list_cart_right').css({'position':'absolute','opacity':'0'});
    $('.wrap_block_shop_list_cart').append('<div class="block_shop_list_cart_rel"><h2>Сопутствующие товары</h2>' + data_rel + '</div>');
    }
    }
    });
    //Этот код вызывает функцию в файле shop, чтобы получить список сопутствующих товаров, если они есть то заменяет блок акций, если нет, то акции остаются.


    Происходит конфликт, если (if(data_rel != ''){) вернул не пустое значение, тобишь сработало условие, то начинаются проблемы, если оно не сработало, то все ок.
    Но даже если происходит конфликт, товар может положится в корзину, но с шансом 1 из 3.

    Вот такая вот проблема)) Куда копать не знаю, прошу вашей помощи.
    • 19 декабря 2016 г.
    • У Вас что не вопрос, то "угадайка". Поясню, приведенный код не содержит ошибки. Но сам по себе это код не работает. А работает во взаимной увязке со всем алгоритмом. Поэтому то, что Вы привели - не достаточно для ответа.

      Учитывая изложенное, с высокой степенью уверенности могу лишь предположить, что Ваша функция shop_load_rel возвращает неполную html-разметку товара, необходимую для функции buy.

      Успехов.
      • 19 декабря 2016 г.
      • Необходимая html разметка для функции buy изначально вся есть, но работает она или нет это зависит от случая и только если функция shop_load_rel вернула не пустой результат, а иначе функция buy работает всегда 100%.

        Я думаю что проблема в том, что обе функции обращаются к одному и тому же файлу в одно время, хоть и звучит это глупо))
        Я попробую на скрипт повесить задержку и посмотрю результат)) Если все будет ок, то в эту тему не вернусь)
        • 19 декабря 2016 г. , редакция: 19 декабря 2016 г.
        • Повторюсь! Что и в каком виде возращает функция shop_load_rel? Откуда мне знать, что Вы там в ней наколбасили.
          По всей видимости функция shop_load_rel возвращает товар, который в последующем не подхватывается скриптом, отвечающим за размещение товара в корзине. Соответственно такой исход возможен из-за некорректной разметки в тегах товара.
          • 19 декабря 2016 г.
          • Виталий, то что он возвращает написано у меня в коде:
            //Этот код вызывает функцию в файле shop, чтобы получить список сопутствующих товаров, если они есть то заменяет блок акций, если нет, то акции остаются.

            На тех товарах что он вернул они отлично кладутся в корзину, то что банально нужно скрипты подключить я в курсе, и я сказал что товар то кладется то не кладется.
            Короче, дело не в тех товарах которые возвращает скрипт, в том конкретно где эти товары есть, т.е. если у нас на товаре 1 есть сопутствующие товары, то товар 1 в корзину не кладется, а иногда кладется, а если в товара 2 нету сопутствующих товаров, то товар 2 в корзину кладется без зариканий.
  • 19 декабря 2016 г.
  • Все, проблему сам решил с помощью зедержки выполнения функции.
    Оказалось как я и подумал, в один момент вызывается 2 функции в одном файле и там по непонятной причине происходит иногда конфликт.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум