Нестабильная работа minishop2.

Всем привет!
svetxl.ru/torsheryi
1. Множество пользователей жалуются на то, что товары добавляются «через раз». Если нажать на кнопку «добавить в корзину», обработчик срабатывает, появляется диалоговое окно, что товар в корзине и все хорошо. Переходишь в корзину, а там пусто. И это происходит с постоянной регулярностью;
2. Также, при попытке удалить товар из корзины, он исчезает не всегда;
3. Иногда при добавлении товара в корзину (со страницы товара), их добавляется сразу два (при точном нажатии всего 1 раз);
4. Время от времени, если добавить несколько товаров (больше 6 за сессию), в корзине оказывается всего 5 товаров или 4. Куда пропадают остальные – непонятно.

Мне кажется, проблема в сессиях. Все сниппеты вызываются некешированным, кроме mFilter для вывода товаров, но это никак не влияет. Ошибок вообще нету, не знаю куда копать.

Спасибо!
Данил Шуверов
28 июня 2019, 12:02
modx.pro
1
1 091
+1

Комментарии: 12

Антон Тарасов
28 июня 2019, 22:04
0
Я думал это у меня одного чудеса!

Проблемы с количеством товаров в мини-корзине, на самой странице корзины, на иных страницах. Как часто бывает грешил на себя, перепроверил настройки сессий, почитал, что мог, искал проблему с парсерами, кешем и т.п.

Да, определенно что-то с сессиями, но что… Три дня назад обновлены minishop и pdoTools, больше ничего не менялось.
MODX 2.6.5, PHP 7.1.14.
    Андрей
    30 июня 2019, 01:49
    0
    Если не против, напишу и я о проблеме здесь. Думал можно на github написать, но там отключены Issues. Только что установил последнюю версию MS2, выставил в настройках источник файлов MS2, но при создании товара все равно Filesystem. У всех так?

    Насчет корзины. На старой версии 2.2 я так и не поборол проблему с добавлением товара. Через Ajax отправлял данные на кастомный сниппет, и стандартным кодом из документации добавлял товар. В консоли выводил состояние корзины, видно что все ок. Захожу в корзину, там пусто. И так через раз-два.
      Александр Мельник
      30 июня 2019, 09:54
      0
      Таже беда с выбором filesystem
      Описывал здесь.
      minishop2 игнорирует системную настройку выбора источника файлов
      modx.pro/help/18127
        Николай
        30 июня 2019, 11:33
        0
        Источник файлов хранится в БД в поле properties в виде json-массива (таблица modx_site_content), и заносится туда при создании товара. Если после создания товара вы измените источинк в системных настройках то в properties от этого ничего не изменится, т.к. при изменении системных настроек никаких скриптов для этого не запускается. Если нужно это сделать, то только через API MODX, пробежаться по всем товарам, достать json из properties, и поменять значение на нужное. Поле properties хранит данные не только minishop2, но и других компонентов, поэтому главное не затереть другие настройки.
          Александр Мельник
          30 июня 2019, 16:19
          0
          Мне кажется вы не поняли суть вопроса. Ну или я не понял ваш ответ.
          Проблема в том, что несмотря на то, что в системных настройках указано что по умолчанию для товаров брать источник файлов MS2, все равно при создании нового товара стоит по умолчанию источник filesystem.
          Речь не идет об открытии ранее созданного товара у которого почему-то могла сохраниться в базе запись о неверном источнике файлов.
            Николай
            01 июля 2019, 16:02
            0
            Ещё как вариант проверить консоль, может js-скрипт какой не правильно работает в админке. Можно прям в исходном коде в админке вбить в поиске:

            "source":

            Посмотреть какая цифра подтягивается. Собственно источник файлов подменяется кастомным скриптом минишопа. Либо скрипт не отрабатывает, либо на этапе формирования конфига что-то не так. У меня всё как надо всегда было.
      Николай
      30 июня 2019, 11:42
      0
      По поводу глюков, бывает, что хостинг подвисает, и тупо не отрабатывает как надо php-скрипты, либо они не отрабатывают из-за каких-то ошибок. Нужно смотреть логи MODX, или логи ошибок сервера, проверять на предмет ошибок 500. Также проверять нет ли ошибок JS в консоли браузера.
        Антон Тарасов
        30 июня 2019, 12:01
        0
        Конечно, это первое, что нужно смотреть, но к сожалению, в данном случае помогает мало — ошибок нет, проблема есть.
        Антон Тарасов
        30 июня 2019, 14:10
        0
        @Данил Шуверов у меня проблема найдена и исправлена. Обратите внимание на корректность выставления заголовка Last-Modified.
          Данил Шуверов
          Данил Шуверов
          01 июля 2019, 14:50
          0
          В Вашем случае была проблема из-за LastModified, у меня он не подключен. Сейчас разбирался, заметил что первые 2-3 действия на странице, связанные с минишопом, могут не пройти. После все нормально. Например в каталоге все товары, добавленные после третьего, с вероятностью 100% попадут в корзину. Так же и удаление, и изменение количества. Есть еще варианты или предложения?
            Aborrol
            01 июля 2019, 16:40
            0
            Видимо какой-то скрипт блокирует скрипты минишопа. Отключите все другие скрипты и проверьте, также попробуйте анализировать загрузку сайта на предмет что ещё может блокировать, это можно сделать например во вкладке network в chrome devtools
              Данил Шуверов
              Данил Шуверов
              03 июля 2019, 16:22
              0
              Нет, ничего не блокирует. Сервер все запросы получает, и отвечает на них. Костыль придумал, он помог. Когда на любую страницу заходит пользователь, отправляю js-ом 5 несуществующих товаров, получаю ошибки, но после все успешно без косяков работает. Возможно это из-за того что 60к+ товаров и много что хранится в сессии, не знаю. По человечески разобраться не смог(
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12