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


All settings are easier to edit on the "Settings" tab of the component page: it has hints and value checks.
| Key | Default | Description |
|---|---|---|
mscatalyst_frontend_css | [[+assetsUrl]]css/mscatalyst.css | Stylesheet file. Empty: no styles are added. |
mscatalyst_frontend_js | [[+assetsUrl]]js/mscatalyst.js | Script file. Empty: no AJAX, the filter works as a GET form. |
mscatalyst_cache_lifetime | 21600 | Seconds. A memory index older than this is rebuilt in the background, and the sitemap is built again. 0 keeps the index until the cache is cleared, -1 disables the cache (for debugging only). |
mscatalyst_index_mode | memory | memory: index in the MODX cache. table: in the core/cache/mscatalyst_index/ files. auto: pick by product count. |
mscatalyst_index_auto_threshold | 8000 | From this many products, auto mode stores the index in files. |
mscatalyst_seo_mode | off | SEO mode when the call has no &seo, see SEO. |
mscatalyst_seo_index_max | 2 | How many selected values a friendly URL page may have and stay indexable. 0: every filtered page gets noindex. |
mscatalyst_seo_empty | noindex | What a friendly or landing URL answers when no products match. noindex: the page gets noindex. 404: page not found. show: a normal page. |
mscatalyst_seofilter_placeholders | No | Fill the sf.* placeholders on filtered pages for templates built for SeoFilter. The import from SeoFilter turns it on, see Moving from SeoFilter. |
mscatalyst_seo_title_filtered | — | Filtered page title. |
mscatalyst_seo_h1_filtered | : | Filtered page H1. |
mscatalyst_seo_description | . . Найдено: | Filtered page description. |
mscatalyst_search_synonyms | JSON of search synonyms, for example {"шланг":"рукав,hose"}. | |
mscatalyst_search_log | Yes | Record shoppers' search queries in the log. |
mscatalyst_search_log_days | 365 | Days without repeats after which a query leaves the log. 0: keep everything. |
mscatalyst_rest_params | No | Let connector.php requests set parents, facets and searchFields, see REST. |
mscatalyst_legacy_markup | No | Add msf-* classes for styles written for msFacets. Turned on automatically on upgrade. |
mscatalyst_sync_path | Folder for source files and 1C exchange files. Empty: core/cache/mscatalyst_sync/. The folder is closed to browsers. | |
mscatalyst_sync_chunk | 200 | How many source rows are handled in one pass. Lower it on weak hosting. |
mscatalyst_sync_step_seconds | 20 | Sync step length in seconds. Keep it below max_execution_time. |
mscatalyst_sync_keep_days | 90 | Days to keep sync runs and their change journal for rollback. 0: no age limit, up to 1000 runs per profile. |
mscatalyst_sync_images_path | Folder for photos from the source. Empty: assets/images/products/. | |
mscatalyst_sync_images_url | URL of the same folder. Empty: /assets/images/products/. | |
mscatalyst_demo_admin | No | Public demo admin. For a demo site only. |
Filter sets are stored in mscatalyst_set_<name> settings, see Filter sets.
msCatalyst builds a catalog index: facet values, sort values and search strings of every product in the category. Counting and filtering run on the in-memory index, without database queries on every click.
| Mode | Where it is stored | Use for |
|---|---|---|
memory | The core/cache/mscatalyst/ cache partition | Catalogs up to a few thousand products. |
table | Files in core/cache/mscatalyst_index/ | Large catalogs. On 100,000 products a filter request takes 25–40 ms. |
auto | Picked by mscatalyst_index_auto_threshold | When the product count is not known in advance. |
When you save, publish, unpublish, delete, undelete, duplicate or move a product or category, empty the trash or run an msCatalyst sync, the plugin marks the index stale. The index itself stays. The new index is built in the background, and visitors get the previous one until the build ends, without waiting for it.
mscatalyst_rebuild parameter. That request answers at once and builds the index after the answer.Clearing the site cache drops the index. The first request builds it again, and concurrent requests wait for that build instead of starting their own. The wait lasts twice the last build time, 60 to 300 seconds.
A memory index older than mscatalyst_cache_lifetime is rebuilt in the background, the same way as a stale one. Visitors keep the previous index meanwhile. When the MODX cache refuses the index (Memcached stores up to 1 MB per item), msCatalyst logs a warning and keeps the index in core/cache/mscatalyst_index/ files.
The plugin does not see imports through the API or direct database queries. After such an import, run MsCatalyst::markStale($modx); and the index is refreshed the same way as after a product save. To drop the index:
[[!msCatalystReindex]] snippet;MsCatalyst::clearIndex($modx);.