Наверное то, о чём я хочу рассказать для многих не будет новостью, но я столкнулся с подобным впервые и решил поделиться. Надеюсь эта заметка кому-то сохранит нервные клетки.
Пришла ко мне совершенно обычная задача, которую я делал десятки раз - адаптировать некий модуль под шаблон. А если быть точнее, то адаптация уже имелась (к более старой версии шаблона), нужно было разобраться почему не работает на актуальной версии и поправить.
Первый тревожный звоночек был после того обнаружилось что обновления модификаций не применяются. Заметил я это не сразу, и очень удивился, когда увидел во фронте код вообще какой-то старой версии адаптируемого модуля, хотя в папке модификаций всё было нормально.
Дальше классика жанра - обновить модификации еще пару раз, очистить кеш из админки, проверить редактор шаблонов, поискать всем известные модули "ускорители" и тд и тп. Все эти манипуляции ничего не дали.
Пошел в папку /storage/cache/ и обнаружил там странную папку /home/ которая не типична ни для опенкарта, ни для модулей "оптимизаторов" которые мне знакомы. Это был второй тревожный звоночек.
"Пхаха, наверное это новая фича - оптимизация на стороне хостинга" посмеявшись подумал я, снёс весь кеш руками, всё заработало.
Всё было нормально, работу доделал и сдал.
Через день клиент возвращается с очень странными симптомами. "Вот в этом товаре не работает это", "а вот в этом это", "а вот там в каталоге это", "а в быстром просмотре вот этого товара это".
Убедившись что это и правда так я слегка прих**л.
Заметил что в некоторых редких ситуациях при определённых действиях js код выпадал в Uncaught TypeError, но не в модуле с которым работал, а в разных местах.
Я снова прошерстил установленные модули, модификаторы, посмотрел системные модификаторы, пробежался по файлам и проверил не редактировали ли некоторые системные файлы. Но сайт выглядел достаточно адекватным (что в нашем мире встречается редко).
Изучив более детально я понял что всё-таки есть "нечто" которое делает плохие вещи, очень плохие вещи.
Например я обнаружил что инлайн скрипты минифицируются, а некоторые вообще исчезают, в том числе системные опенкартовские!
И происходит это в разных ситуациях по разному, в одних товарах есть скрипт нужного мне модуля, а в других его просто нет, хотя в кеше модификаций всё есть и никаких условий "отображать только если" - там нет. Я просто опешил от такой наглости и идиотизма.
Грешным делом я стал ругаться на новую версию шаблона, хоть работал с ним раньше, и претензий не имел. Но ни в настройках, ни в демо шаблона я не увидел пунктов "сверхоптимизации быстродействия", все оптимизации были адекватными, в html коде демо-версии ничего из инлайна не минифицировалось и не вырезалось.
В общем текста на эмоциях написал больше чем планировал, надо закругляться.
Выбил я у клиента доступ к панели управления хоста. Хостом оказался таймвеб. Перерыл панель вдоль и поперёк и нашел это чудо:
Таймвеб, вы серьёзно?! Вы ЭТО еще и продаёте?