Designing a Product Filtering System for 1C-Bitrix

Designing a Product Filtering System for 1C-Bitrix Designing a product filtering system for 1C-Bitrix is a task where every millisecond counts. In our practice, a filter on 180,000 SKUs executed in 0.2 seconds, while the standard component returned runtime errors. A slow filter is almost always c

Our competencies:

Frequently Asked Questions

Designing a Product Filtering System for 1C-Bitrix

Designing a product filtering system for 1C-Bitrix is a task where every millisecond counts. In our practice, a filter on 180,000 SKUs executed in 0.2 seconds, while the standard component returned runtime errors. A slow filter is almost always caused by incorrect property types or a missing faceted index. A filter showing products without stock tracking—a confusion between product and SKU properties. A filter returning zero results when combining criteria—a logic problem of AND vs. OR. We solve these tasks with your infrastructure in mind, saving up to 40% of development time. Contact us to design your filter and avoid common pitfalls, getting a fast, precise tool for your catalog.

Speeding up Filtering with the Faceted Index

The faceted index is the primary tool for speed. It is 15 times faster than regular queries to b_iblock_element_property. Faceted navigation (https://ru.wikipedia.org/wiki/Фасетная_навигация) allows instant counting of elements for each value. However, the index only works with 'List' and 'Reference' property types. Numeric fields require range filtering—also supported by the standard component.

The bitrix:catalog.smart.filter Component: Capabilities and Limitations

The standard smart filter component supports:

  • Filtering by 'List' and 'Reference' (HL-block) properties using the faceted index
  • Range filtering for numeric properties (price, size)
  • Filtering by SKU properties (OFFER_IBLOCK_ID)
  • Generating SEO-friendly URLs for selected filters (SEF_FOLDER)
  • AJAX updating of product list without page reload

Limitations:

  • Does not support filtering from multiple information blocks simultaneously
  • Does not build smart combinations (showing available values accounting for already selected)
  • Does not support geofiltering out of the box

When the Standard Component Isn't Enough—We Build a Custom Filter

Sometimes standard capabilities fall short: combining attributes from different categories, complex AND logic, geo-filtering, or high-load performance requirements. Then we write a custom filter with proprietary SQL queries to faceted tables or using ElasticSearch. The cost is calculated individually based on complexity, but a typical budget saving on refinements is up to 30%.

Why Standard Filter Doesn't Work for Complex Attributes

Filter logic: AND within property vs. AND between properties is a design decision often overlooked. Example: a product has a 'Color' property with multiple values ('red', 'blue'). User selects both colors.

  • OR logic: show all products that have red OR blue. Most filters work this way.
  • AND logic: show only products that have BOTH red AND blue. Makes sense for tags.

The standard component uses OR within one property and AND between different ones. Without modification, this cannot be changed.

Stock Availability in the Filter

A common case: the filter shows property values for which all products are out of stock. User selects 'red' and gets 0 results. Solution at the faceted index level: when rebuilding the index (\Bitrix\Iblock\PropertyIndex\Manager::runIndex()), Bitrix automatically excludes elements with ACTIVE = N. But stock is not automatically accounted for—a custom mechanism is needed:

  • Event handler for stock changes in b_catalog_store_amount
  • Updating the IN_STOCK flag property on the parent product
  • Elements with IN_STOCK = N are marked inactive or filtered in the component

Configuring SEO-Friendly URLs for the Filter

Bitrix automatically generates SEO URLs for the filter when the catalog.smart.filter component is configured with SEF. Format: /catalog/smartfon/filter/brand-is-samsung/. This works only with correct SEF_FOLDER and urlrewrite rules. A design decision: which combinations get SEO pages with meta tags, which do not. For large catalogs, generating all combinations in a sitemap is impractical—a prioritization strategy is needed (e.g., only single-factor filters).

From Our Practice: Filtering System for a Clothing Marketplace

Platform with multiple sellers, 180,000 SKUs, 8 clothing categories with different attributes. Requirement: a unified filter accounting for stock. Attributes vary by category: in 'Shoes'—size (35–46), in 'Outerwear'—size (XS–4XL) and length. Building a single faceted index with 60 properties would show 'Shoe size' in the 'Jackets' section.

Solution:

  • Single information block, but filter with a dynamic set of properties depending on the section
  • Additional table category_filter_props (custom via DataManager): category → list of properties to display
  • Faceted index on the offer information block with a stock flag
  • Agent recalculating stock every 30 minutes

Result: filter by size + color + availability—0.2 seconds on 180,000 SKUs. Payback for this solution was under two quarters due to increased conversion.

Step-by-Step Filter Design Plan

  1. Collect attributes and filtering requirements (properties, stock tracking, SEO).
  2. Choose property types considering faceted index (list, reference, numeric range).
  3. Design logic (AND/OR, stock tracking, geofiltering).
  4. Configure bitrix:catalog.smart.filter or custom solution with SQL/ElasticSearch.
  5. Design SEO URLs: indexable combinations, sitemap configuration.
  6. Strategy for updating faceted index and stock (agents, events).
  7. Test scenarios: correctness under different combinations, performance under load, edge cases.
Stage Estimated time
Requirements analysis 1–2 days
Logic design 2–4 days
Component configuration 1–2 days
Custom development from 5 days
Testing and debugging 2–3 days

Comparison: Standard vs Custom Filter

Parameter Standard smart.filter Custom filter
Speed on 100,000 products ~1.5 seconds (with faceted index) ~0.2 seconds (optimized queries)
Logic flexibility Only OR within property AND/OR selectable
Stock tracking Not supported Supported
SEO URLs Automatic Manual configuration
Implementation complexity Minimal Requires development

Typical Mistakes in Filter Design

  • Inappropriate property types (string instead of list)—breaks the faceted index.
  • Ignoring stock tracking—zero results after selection.
  • Lack of SEO URL strategy—page duplication or traffic loss.
  • Filtering by all properties from a single information block—unnecessary attributes in the filter.
More details about property types

For filtering, use only 'List' or 'Reference' (HL-block) property types. Numeric properties (price, size) are also supported, but only for range filtering. Avoid string properties—they are not indexed by the faceted index and can slow down queries up to 10 times.

What's Included in the Design Work

  • Analysis of attributes and property types
  • Architecture selection (standard or custom filter)
  • Logic design with stock tracking, multiple values, and category intersection
  • Faceted index and agent update configuration
  • Documentation and testing recommendations
  • Performance evaluation on test data

Our team: over 10 years of experience in 1C-Bitrix development and 500+ completed projects. We guarantee stable filter operation under any load. To get a precise cost and timeline estimate for your catalog, contact us. Write to us—we'll evaluate your project in one business day.