Skip to content
msCatalyst
msCatalyst
Фасетный фильтр, поиск и синхронизация каталога для miniShop2 и MiniShop3
  • MODX 2
  • MODX 3
  • miniShop2
  • miniShop3
  • PHP 7.2
  1. Компоненты
  2. msCatalyst
  3. История версий

История версий ​

До версии 1.2.0 компонент назывался msFacets.

1.4.0-pl1 ​

  • Журнал поисковых запросов. Каждый поиск в каталоге считается по запросу, странице каталога и языку: число поисков, сколько товаров нашлось в последний раз и сколько раз не нашлось ничего. Подсказки живого поиска, следующие страницы выдачи, роботы и повтор того же запроса тем же посетителем в течение 30 минут не считаются.
  • Вкладка «Запросы»: итоги, запросы без результатов, отбор по каталогу и подстроке, сортировка, выгрузка в CSV, очистка журнала. «Проверить» открывает проверку поиска с этим запросом, «Добавить синоним» открывает вкладку синонимов.
  • Настройка mscatalyst_search_log (включена по умолчанию) выключает журнал.
  • Правка товаров и синхронизация помечают индекс устаревшим, а не удаляют его. Новый индекс собирается в фоне: на PHP-FPM после отправки ответа, на Apache с mod_php служебным запросом сайта к самому себе. Посетители до конца сборки получают прежний индекс и не ждут. Отсутствующий индекс собирает один запрос, одновременные ждут его. Для импорта в обход MODX есть MsCatalyst::markStale($modx).
  • Файлы индекса режима table пишутся во временный файл и переименовываются, поэтому наполовину записанный файл никто не прочитает.
  • Индекс memory старше mscatalyst_cache_lifetime пересобирается в фоне, как устаревший. Индекс, который не принял кэш MODX (предел Memcached 1 МБ), уходит в файлы с предупреждением в журнале. Ожидание чужой сборки длится вдвое дольше последней сборки, от 60 до 300 секунд.
  • connector.php принимает parents, facets и searchFields только с новой настройкой mscatalyst_rest_params, а в resource только категории miniShop2. lang должен быть языком сайта. Поиск учитывает первые 8 слов, живой поиск первые 100 символов. Публичная демо-админка собирает тестовые индексы только с полями поиска и каталогами сайта.
  • Синхронизация: шаг, который трижды подряд оборвался (память или время PHP), переводит запуск в «Ошибку» с уведомлением, cron больше не повторяет его бесконечно. Ошибка любого типа в одном товаре записывается как ошибка строки. Прогресс чтения сохраняется вместе с каждой пачкой, поэтому перезапущенный шаг не загружает строки дважды.
  • Синхронизация: блокировка запуска продлевается, пока качаются картинки. Применение останавливается вовремя посреди пачки. Пауза Retry-After не дольше 30 секунд. Два одновременных старта одного профиля создают один запуск, идущий откат блокирует новые запуски.
  • Синхронизация: картинки больше 20 МБ пропускаются, не больше 20 новых картинок на товар за запуск (остальные загрузит следующий). Файлы из ZIP проверяются по фактически распакованным байтам. Обмен с 1С: файлы до 2 ГБ, архивы до 4 ГБ и 100 000 файлов.
  • Синхронизация: запуски и журнал изменений старше mscatalyst_sync_keep_days (90 дней) удаляются, три последних запуска профиля остаются.
  • Журнал поисковых запросов: запросы без повторов дольше mscatalyst_search_log_days (365 дней) удаляются.
  • Запуск по расписанию останавливается сразу после загрузки, если файл источника не изменился с последнего успешного запуска. Ручной запуск проходит всегда.
  • Выгрузка в Google Таблицы читает лист один раз за шаг, а не на каждую пачку.
  • msCatalystSitemap хранит готовый XML в кэше до изменения товаров или посадочных, но не дольше mscatalyst_cache_lifetime.

1.3.0-pl1 ​

  • Многоязычные каталоги. Язык берётся из &lang, адреса Localizator или культуры контекста (Babel). Он входит в ключ кэша индекса и передаётся в AJAX-запросы.
  • Localizator: переведённые заголовки, тексты, названия категорий и локализованные TV в фильтрах, поиске и карточках. &langStrict=`0` показывает товары без перевода с исходными полями.
  • Вкладка «Переводы»: названия фильтров и значения по языкам, поиск, фильтр «только без перевода», выгрузка и загрузка CSV. Переводы хранятся обычными записями лексикона.
  • Словарь значений: один перевод значения для всех фильтров или для одной группы через mscatalyst_value_<ключ>_<значение>.
  • Заголовки фильтров подхватывают ключи лексикона mFilter2. Заголовок с вкладки «Переводы» важнее |title= в вызове.
  • Английские записи лексикона больше не попадают в другие языки.
  • Доступные варианты поднимаются наверх группы после каждого выбора. &hideUnavailable (по умолчанию включён) скрывает варианты и группы без товаров.
  • Вкладка «Экспорт»: товары, категории, производители и опции в CSV, XLSX, JSON или XML в формате, который читает синхронизация. Кнопка «Экспорт» на странице категории.
  • Синхронизация и экспорт переводов Localizator. Недостающие переводы создаются, откат их возвращает.
  • MODX 3: поддержка localizator3.
  • Babel: синхронизация обновляет текстовые поля связанных ресурсов в других контекстах.
  • Страница компонента скрывает настройки компонентов, которые не установлены.
  • Параметры &scrollOnUpdate и &scrollOffset: отключить прокрутку к выдаче после «Показать результаты» и перехода по страницам или задать отступ под липкую шапку. Отступ по умолчанию 16px вместо 100px.
  • ЧПУ фильтров (mscatalyst_seo_mode = native) работают на всём пути посетителя: адресная строка, пагинация, крестики, «Сбросить всё», «Назад» и «Вперёд» показывают /catalog/vendor-nike/color-red/. GET-фильтры и значения в другом порядке получают 301 на один адрес. Работает каталог на главной и языковые префиксы Localizator.
  • Неизвестные пути фильтров отдают 404 вместо каталога или чужой страницы под дублирующим адресом.
  • ЧПУ-страницы с числом выбранных значений до mscatalyst_seo_index_max (по умолчанию 2) остаются в индексе. Диапазоны, поиск, сортировка и больше значений получают noindex.
  • Canonical больше не указывает на ЧПУ-путь, когда ЧПУ выключены.
  • Плейсхолдер mscatalyst.canonical содержит полный адрес со схемой и доменом, готовый для <link rel="canonical">.
  • Посадочные страницы без SeoFilter: свои адреса (/catalog/belye-krossovki/) для сочетаний фильтров с title, H1, description и HTML над и под товарами. Старый ЧПУ-адрес и GET-фильтры получают 301 на свой адрес, карта сайта выводит его.
  • Шаблоны текстов для сочетания фасетов в одном каталоге или во всех, по языкам, с приоритетом. Подстановки {color}, {color.title}, {total}, модификаторы падежей и регистра, условия {?size}…{/size}.
  • Шесть падежей в обоих числах (:gen, :dat, :acc, :ins, :pre, :about, :plural_gen и другие), места :where, :to, :from. Форма «Именительный», вписанная вручную, заменяет само значение.
  • Склоняются и значения во множественном числе: «Буровые установки» с :gen дают «буровых установок», с :pre дают «буровых установках». Названия производителей как существительные не склоняются.
  • Правило индексации на каждую посадочную (авто, всегда в индексе, всегда noindex) и настройка mscatalyst_seo_empty для страниц без товаров.
  • Сниппет msCatalystLandings: блок ссылок с уточнениями, популярными значениями или посадочными из админки. С &catalog работает на любой странице сайта. Плейсхолдеры mscatalyst.intro и mscatalyst.text, AJAX обновляет [data-msc-intro] и [data-msc-text].
  • Вкладка «Посадочные»: сочетания с числом товаров, редактор с превью сниппета в поиске, шаблоны, склонения, проверка пустых страниц и пересекающихся адресов, выгрузка и загрузка CSV.
  • Перенос из SeoFilter: правила становятся шаблонами, сохранённые адреса посадочными, словарь словоформами, старые адреса отвечают 301. Таблицы SeoFilter читаются напрямую, поэтому перенос работает после удаления SeoFilter и на MODX 3.
  • Отчёт перед переносом, кнопка, которая выключает плагин SeoFilter и включает адреса msCatalyst, и обратная кнопка.
  • Вызовы sfLink, sfMenu и sfSitemap в шаблонах, чанках и ресурсах заменяются сниппетами msCatalyst после превью. Исходный текст сохраняется, его можно вернуть.
  • Настройка mscatalyst_seofilter_placeholders: плейсхолдеры sf.title, sf.h1, sf.description, sf.text и другие sf.* на страницах с фильтром, чтобы шаблоны под SeoFilter работали без правок. Перенос включает её сам.
  • Адрес посадочной в другом регистре или без косой черты в конце получает 301 на правильный.
  • msCatalystSitemap с &catalogs: одна карта для всех каталогов, которые сайт уже открывал, на любой странице.

1.2.0-pl1 ​

  • Новое название msCatalyst. Установка поверх msFacets переносит настройки, синонимы и наборы фильтров. Старые вызовы, плейсхолдеры, CSS-классы и JS-события работают до версии 2.0.
  • Синхронизация каталога по профилям: CSV, XLSX, JSON и XML API, Google Таблицы в обе стороны, 1С CommerceML 2 с заказами и статусами, фиды выгрузки.
  • Мастер настройки: анализ источника, поиск ключа и модификаций, сопоставление полей с уверенностью и правилами, сопоставление категорий, производителей, опций и значений.
  • Версии утверждённой схемы. Запуск по расписанию останавливается при смене структуры источника.
  • Пробный прогон с планом изменений и предохранители от массового снятия, скачков цен и обрезанного источника.
  • Запись товаров miniShop2 и MiniShop3, модификаций msOptionsPrice2 и ms3Variants, создание категорий, производителей и опций, загрузка картинок.
  • Правило для пропавших товаров. Откат любого запуска. История изменений товара.
  • Письма на адреса профиля, когда запуск остановился или закончился с ошибками.
  • Сниппет msCatalystSync для cron.
  • Публичная демо-админка msCatalystDemoAdmin.
  • Картинки: относительные пути, проверка по сигнатуре, без дублей в галерее, повтор неудачных загрузок.
  • Пустые ячейки по умолчанию не стирают значения на сайте.
  • Исправлено: превью в живом поиске на MiniShop3, порядок картинок галереи на MiniShop3, TV в роли ключа создавал дубли при первом импорте.

1.1.1-pl1 ​

  • Поле «Найти в списке» у длинных групп оформлено как остальные поля.
  • В адресах CSS и JS стоит версия пакета, браузер перезагружает их после обновления.

1.1.0-pl1 ​

  • Новый индекс для больших каталогов. На 100 000 товаров запрос фильтра занимает 25–40 мс, индекс весит 4,7 МБ.
  • Живой поиск на 100 000 товаров отвечает за 60–80 мс.
  • Индекс строится частями по 2000 товаров, пик памяти на 100 000 товаров меньше 100 МБ.
  • Допуск опечаток не трогает слова с цифрами: артикулы и размеры ищутся точно.
  • В ответах AJAX есть статистика и заголовок Server-Timing.

1.0.0-pl1 ​

  • История браузера: каждый переход по фильтрам, страницам и сортировке, «Назад» через AJAX.
  • Поиск со словоформами, транслитом, опечатками, весами полей и синонимами.
  • Чанк карточки, вид сеткой и списком.
  • Режимы поиска filter, page, live, live+page, сниппет поиска с подсказками.
  • Режимы индекса memory, table, auto.
  • SEO: ЧПУ фильтров, шаблоны мета-тегов, карта сайта, мост к SeoFilter.
  • Модификации msOptionsPrice2 и ms3Variants.
  • REST-коннектор, наборы фильтров, сниппет сброса индекса.
  • Страница компонента в админке.

1.0.0-beta1 ​

  • Первый публичный выпуск.