
- MODX 2
- MODX 3
- miniShop2
- miniShop3
- PHP 7.2


Все настройки удобнее править на вкладке «Настройки» страницы компонента: там есть подсказки и проверка значений.
| Ключ | По умолчанию | Описание |
|---|---|---|
mscatalyst_frontend_css | [[+assetsUrl]]css/mscatalyst.css | Файл стилей. Пусто: стили не подключаются. |
mscatalyst_frontend_js | [[+assetsUrl]]js/mscatalyst.js | Файл скрипта. Пусто: без AJAX, фильтр работает как GET-форма. |
mscatalyst_cache_lifetime | 21600 | Секунды. Индекс memory старше этого срока пересобирается в фоне, карта сайта тоже собирается заново. 0 хранит индекс до очистки кэша, -1 отключает кэш (только для отладки). |
mscatalyst_index_mode | memory | memory: индекс в кэше MODX. table: в файлах core/cache/mscatalyst_index/. auto: выбрать по числу товаров. |
mscatalyst_index_auto_threshold | 8000 | С этого числа товаров режим auto хранит индекс в файлах. |
mscatalyst_seo_mode | off | SEO-режим, если в вызове не задан &seo, см. SEO. |
mscatalyst_seo_index_max | 2 | Сколько выбранных значений может быть на ЧПУ-странице, чтобы она осталась в индексе. 0: все страницы с фильтрами получают noindex. |
mscatalyst_seo_empty | noindex | Что отдаёт ЧПУ-адрес или посадочная без товаров. noindex: страница с noindex. 404: страница не найдена. show: обычная страница. |
mscatalyst_seofilter_placeholders | Нет | Заполнять плейсхолдеры sf.* на страницах с фильтром для шаблонов, свёрстанных под SeoFilter. Перенос из SeoFilter включает её сам, см. Переход с SeoFilter. |
mscatalyst_seo_title_filtered | — | Title страницы с фильтром. |
mscatalyst_seo_h1_filtered | : | H1 страницы с фильтром. |
mscatalyst_seo_description | . . Найдено: | Description страницы с фильтром. |
mscatalyst_search_synonyms | JSON синонимов поиска, например {"шланг":"рукав,hose"}. | |
mscatalyst_search_log | Да | Записывать поисковые запросы покупателей в журнал. |
mscatalyst_search_log_days | 365 | Через сколько дней без повторов запрос удаляется из журнала. 0: хранить всё. |
mscatalyst_rest_params | Нет | Разрешить запросам к connector.php задавать parents, facets и searchFields, см. REST. |
mscatalyst_legacy_markup | Нет | Добавлять классы msf-* для стилей, написанных под msFacets. Включается само при обновлении. |
mscatalyst_sync_path | Папка для файлов источников и обмена с 1С. Пусто: core/cache/mscatalyst_sync/. Папка закрыта от доступа из браузера. | |
mscatalyst_sync_chunk | 200 | Сколько строк источника обрабатывается за один заход. На слабом хостинге уменьшите. |
mscatalyst_sync_step_seconds | 20 | Длина шага синхронизации в секундах. Держите меньше max_execution_time. |
mscatalyst_sync_keep_days | 90 | Сколько дней хранить запуски синхронизации и журнал изменений для отката. 0: без срока, до 1000 запусков на профиль. |
mscatalyst_sync_images_path | Папка для фото из источника. Пусто: assets/images/products/. | |
mscatalyst_sync_images_url | URL той же папки. Пусто: /assets/images/products/. | |
mscatalyst_demo_admin | Нет | Публичная демо-админка. Только для демо-сайта. |
Наборы фильтров хранятся в настройках mscatalyst_set_<имя>, см. Наборы фильтров.
msCatalyst строит индекс каталога: значения фасетов, сортировки и поисковые строки всех товаров раздела. Подсчёт и фильтрация идут по индексу в памяти, без запросов к базе на каждый клик.
| Режим | Где хранится | Для чего |
|---|---|---|
memory | Раздел кэша core/cache/mscatalyst/ | Каталоги до нескольких тысяч товаров. |
table | Файлы core/cache/mscatalyst_index/ | Большие каталоги. На 100 000 товаров запрос фильтра занимает 25–40 мс. |
auto | Выбирается по mscatalyst_index_auto_threshold | Если число товаров заранее неизвестно. |
Когда вы сохраняете, публикуете, снимаете с публикации, удаляете, восстанавливаете, копируете или перемещаете товар или раздел, очищаете корзину или запускаете синхронизацию msCatalyst, плагин помечает индекс устаревшим. Сам индекс при этом не удаляется. Новый индекс собирается в фоне, а посетители до конца сборки получают прежний и её не ждут.
mscatalyst_rebuild. Этот запрос сразу отвечает и собирает индекс уже после ответа.При очистке кэша сайта индекс удаляется целиком. Первый запрос собирает его заново, а одновременные запросы ждут эту сборку и не запускают свою. Ожидание длится вдвое дольше последней сборки, от 60 до 300 секунд.
Индекс memory старше mscatalyst_cache_lifetime пересобирается в фоне так же, как устаревший. Посетители при этом получают прежний индекс. Если кэш MODX не принял индекс (у Memcached предел записи 1 МБ), msCatalyst пишет предупреждение в журнал ошибок и хранит индекс в файлах core/cache/mscatalyst_index/.
Импорт через API или прямые запросы к базе плагин не видит. После такого импорта выполните MsCatalyst::markStale($modx);: индекс обновится так же, как после сохранения товара. Удалить индекс целиком можно так:
[[!msCatalystReindex]];MsCatalyst::clearIndex($modx);.