Дайджест новостей за Август
31.08.2026
ТОП 5 популярных модулей
Обновленные модули
Расширенные условия и бонусы промоакций
05/08/2026 v.1.5.3
- [+] Добавлено ограничение на применение бонусных баллов через промоакции: теперь можно задать максимальный процент от стоимости заказа.
Полностраничный кеш + HTML Minify
11/08/2026 v.5.7.0
- [*] Optimized cache invalidation: page-to-product links moved to an indexed table — clearing by product no longer scans the entire registry
- [*] Optimized cache clearing in Redis: key traversal switched from KEYS to SCAN — clearing no longer blocks the server
- [+] New setting: clear the cache only when the listed product fields change (for example price,status,amount)
- [+] New setting: ignore stock changes that do not affect availability — the cache is kept while the quantity stays above zero
- [+] New setting: exclude pages from being rebuilt when a product changes — the home page and other product-dense pages are no longer cleared on every import
- [+] New setting: the separate cache for browsers with WebP support can now be turned off — half as many cached variants per URL
- [+] New feature: X-FPC-Status response header (HIT / MISS / BYPASS with the reason) and the fpc_debug parameter for a one-off check
- [!] Fixed cache clearing by category: the category ID was not stored in the registry, so category pages lived until the cache lifetime expired
- [!] Fixed the full cache clearing with Redis storage: only files were removed while the keys remained
- [!] Fixed the removal of foreign keys in Redis: clearing now affects only the add-on's own keys, sessions and core cache are left intact
- [!] Fixed an error that occurred when several visitors hit an uncached page at the same time
17/08/2026 v.5.7.1
- [!] Исправлен баг совместимости с Unitheme2
20/08/2026 v.5.8.0
- [*] Оптимизирован расчёт ключа кэша: вид отображения товаров вычисляется один раз за запрос, а не при каждом чтении и сохранении
- [!] Исправлено кэширование страниц с ошибкой: страница «Service unavailable» сохранялась вместе с кодом 500 и затем отдавалась из кэша всем последующим посетителям — оборванные и пустые ответы теперь тоже не сохраняются
- [!] Исправлены пустые списки товаров на страницах категорий и поиска: значение вида отображения, взятое для ключа кэша, замораживалось на весь запрос, из-за чего не выводились список товаров и сортировка
- [!] Исправлена потеря инвалидации при несостоявшемся сохранении: запись в реестре обновлялась, даже когда страница не была сохранена, поэтому изменённый товар больше не вызывал перестроение страницы и до конца срока жизни кэша отдавалась устаревшая версия
26/08/2026 v.5.8.1
- [+] Добавлен сброс списков новинок, лидеров продаж и товаров со скидкой при создании товара: новый товар не попадал ни под сброс по категории, ни под связь «страница — товар», поэтому эти списки оставались устаревшими до истечения времени жизни кеша — управляется существующей настройкой актуализации кеша при создании товара
- [!] Исправлена утечка меток отслеживания в закешированные страницы: один визит с utm-метками, gclid или fbclid впечатывал их во все ссылки, построенные от текущего URL, и такая страница затем отдавалась всем последующим посетителям
- [!] Исправлен неограниченный рост кеша на странице «страница не найдена»: каждый перебираемый ботами адрес создавал собственную запись кеша и строку в реестре, которая уже никогда не могла быть использована — теперь все несуществующие адреса используют одну общую запись
- [!] Исправлено игнорирование настроек генерации кеша для AJAX-ответов: они сохранялись, даже когда сохранение страниц от залогиненных пользователей было отключено или запрос приходил от бота
Живой поиск и история поиска
26/08/2026 v.9.6.1
- [!] Исправлено падение эндпоинта /cls.php при активных сторонних модулях: вместо fn_gather_additional_products_data() с её шестью хуками gather_* используется собственная выборка данных — обработчики сторонних модулей на бездиспетчерском эндпоинте либо ломали JSON-ответ HTML-страницей 500, либо запускали вложенный fn_get_products() на каждый товар
- [!] Исправлены цена и кнопка «В корзину» для авторизованных покупателей в выпадающем окне: переменная $auth была не определена, поэтому при режиме «скрыть цену и кнопку покупки» каждый посетитель считался гостем
- [!] Исправлено применение акций каталога в результатах поиска: товару передавался только основной раздел, поэтому акция, назначенная на дополнительную категорию, действовала на странице товара, но не в поиске
- [!] Исправлена работа с модулем «Вариации товаров»: у родительских товаров не заполнялся признак наличия вариаций, и кнопка «В корзину» добавляла товар вместо перехода на страницу выбора вариации
- [!] Исправлено чтение настроек магазина: наличие, налоги и режим анонимных покупок брались из настроек витрины по умолчанию — теперь используются значения витрины, с которой пришёл запрос (добавлены tax_calculation, allow_anonymous_shopping, show_prices_taxed_clean)
- [!] Исправлен пустой ответ живого поиска при битой UTF-8 в данных товаров: json_encode() возвращал false и клиент получал пустое тело — теперь некорректные символы заменяются, а ошибка 500 отдаётся только если кодирование невозможно вовсе
- [!] Исправлена обработка фатальных ошибок в /cls.php на PHP 8: перехватывался только Exception, а ошибки типов (Error) выводили HTML вместо JSON — теперь ловится Throwable, отдаётся JSON с кодом 500 и корректным Content-Type, детали видны при CLS_DEBUG
- [!] Исправлена отправка HTTP-заголовков: config.php подключается до вызовов header(), чтобы его вывод не ломал Content-Type и тело JSON-ответа
- [!] Исправлено устаревание корневого файла cls.php после обновления модуля: проверка установки теперь сравнивает контрольные суммы файла в корне и в модуле и предлагает обновить копию
- [!] Исправлены ошибки записи истории поиска при неполных параметрах запроса: user_id и lang_code получают значения по умолчанию вместо предупреждений PHP 8 об отсутствующих индексах
- [*] Оптимизированы запросы истории поиска и статистики: добавлены индексы qid в таблице запросов и pid в таблице кликов по товарам (для новых установок — в схеме таблиц, для обновлений — миграцией ниже)
- [*] Оптимизировано чтение настроек при формировании ответа: значения запрашиваются один раз на запрос, а не из реестра в цикле по каждому товару
27/08/2026 v.9.6.2
- [!] Восстановлен сбор дополнительных данных о товарах через функцию ядра: после 9.6.1 вместо неё использовалась урезанная локальная копия, её хуки не срабатывали, и модули, включая коробочный модуль складов, перестали добавлять свои данные в результаты живого поиска
- [*] Ответ живого поиска ужат до данных, которые нужны виджету, а тяжёлые загрузчики ядра отключены — для товаров с опциями размер ответа уменьшился в несколько раз
Всплывающие уведомления - модуль для cs-cart
28/08/2026 v.2.3.3
- [!] Исправлен подсчёт уведомлений в списке модуля: в отдельных случаях количество страниц постраничной навигации не соответствовало реальному числу уведомлений
- [*] Оптимизирована выборка уведомлений: уменьшено количество обращений к базе данных и повышена совместимость с новыми версиями серверов баз данных
- [*] Базовые обновления безопасности модуля
Журнал изменений заказа
31/08/2026 v.2.3.3
- [!] Исправлен порядок вывода истории заказа для событий, произошедших в одну и ту же секунду.
Оптимизация изображений - комплексный инструмент обработки изображений
31/08/2026 v.2.1.1
- [*] Базовые обновления безопасности модуля