Fluent Commerce Logo
Docs

Improved Search Performance and Filter Customization

Release

Author:

Yulia Andreyanova

Changed on:

16 Jan 2026

Target release date:2026-01-12
Release status:Development

Description

ONGOING DEPLOYMENTWe are currently updating the content on this page due to an ongoing deployment. Some information might be out of date. Please reach out if you have any concerns.
This release introduces major enhancements to search flexibility, performance, and configurability across the platform.A new account-level default configuration — `fc.mystique.filters.string` — provides centralized control over how wildcard search behaves for all string-based filters. This enables organizations to fine-tune matching logic (such as starts-with, contains, or exact match) while optimizing search performance across high-volume datasets.For use cases that require more specific behavior, individual filters can now define their own field-level wildcard logic using the new `wildcardFilter` property. This two-layer approach ensures that teams can set a standard default while still tailoring filter behavior for fields that require exact searches, backend-safe matching rules, or more restrictive options. Wildcard customization is also now supported inside Complex Filter, ensuring that advanced multi-field filters follow the same flexible configuration model and deliver consistent search behavior across the application.The release also expands the extensibility of the List component through the enhanced `filter.overrides` section, allowing developers to modify labels and replace filter components where needed.Date-based filters now behave more predictably when cleared. Improved internal state management ensures that Date Time and Date Time Range fields reset fully and consistently, preventing outdated values from affecting subsequent searches and giving users a more reliable filtering experience.Form interactions in the Create Custom Wave flow now provide clearer and more consistent validation feedback. The system displays a translatable message when users try to create a wave without selecting any fulfilments. Additionally, a new configuration lets clients define a maximum number of fulfilments that can be selected. If a user exceeds this limit, a clear, translatable message is displayed, and submission is prevented, helping to ensure waves remain practical and manageable.Together, these enhancements deliver faster and more consistent search behavior, as well as greater configurability, for teams designing business-specific filtering and search experiences.

Changelog

  • Introduced account-level default wildcard configuration (`fc.mystique.filters.string`)
    • Defines default wildcard behavior for all string filters. Supports exact matching via `{ "prefix": false, "postfix": false }`.
  • Added `wildcardFilter` to `fc.filter.string`
    • Enables per-field wildcard overrides, allowing more restrictive or more flexible matching rules regardless of the account-level default.
  • Extended wildcard configuration support to `fc.field.filterComplex`
    • The `wildcardFilter` property can be applied inside Complex Filter field overrides, ensuring the same two-layer wildcard model is available for advanced multi-field filter modals.
  • Enhanced `fc.filter.string.label`
    • Now supports additional value types for greater flexibility in filter presentation.
  • Added `filter.overrides` to the `fc.list` component.
    • Allows replacement or extension of filter components, including custom labels and component-level behavior adjustments.
  • Improved date-filter usability and state management
    • Clearing filters fully resets values in Date Time and Date Time Range fields.
    • Updated internal state handling ensures consistent and predictable reset behavior.
  • Enhanced UX in the Create Custom Wave flow
    • Added a translatable error message when users attempt to submit without selecting any fulfilments.
    • Introduced a new configuration option to define the maximum number of selectable fulfilments (`maxSelectionLimit`).
    • Submissions exceeding the limit now trigger a clear translatable error message.
Released capability depth:Enhancement, Fix
Release bundle / Capability type:Platform

Use cases

Problem
Order tags (`tag1``tag2``tag3`) are used for business-level categorization - such as brand, region, sales channel, or internal operational grouping. However, these technical tag names are not meaningful to end users and do not communicate what each tag represents.Because the labels do not accurately reflect their intended business purpose, users often experience confusion. This leads to several issues:
  • Users must rely on internal training or memorised mappings to interpret tag meanings
  • Filtering accuracy depends on each person remembering the correct purpose of each tag (e.g., “tag1 = Brand”, “tag2 = Region”)
  • The UI displays technical labels that do not align with the organisation’s terminology or operational language
Consider EverFresh Foods, a large organic food distributor in the United States that supplies national and regional retailers such as Whole Foods, Sprouts, and local grocery chains.EverFresh relies on several external characteristics to classify and filter orders in their internal system:
  • Brand - EverFresh, GreenLeaf, NatureBoost
  • Region - West Coast, Midwest, Northeast, Southeast
  • Sales Channel - Retail, E-commerce, Food Service
  • Customer Tier - National Account, Regional Chain, Independent Store
These characteristics are critical for day-to-day operations:
  • The sales team analyzes orders by Sales Channel.
  • Logistics teams plan distribution routes based on Region.
  • Category managers track performance by Brand.
However, in the current system these characteristics appear only as technical tags - tag1, tag2, tag3. Users must remember that:
  • tag1 = Brand
  • tag2 = Region
  • tag3 = Sales Channel
This creates ongoing confusion. New employees have no context for what each tag represents, while experienced users frequently filter on the wrong tags (for example, selecting tag2 = West Coast when they intended to filter by Brand).As a result:
  • Logistics may group orders by the wrong region
  • Analysts waste time trying to “decode” tags
  • The UI shows terminology that does not match the company’s actual business language
  • Operational errors directly impact delivery planning and reporting 
For EverFresh, it is therefore essential that the UI displays the actual external characteristics (Brand, Region, Sales Channel) instead of generic technical labels like tag1, tag2, or tag3.
Solution Overview
To make order filtering intuitive and aligned with business terminology, Fluent now supports renaming tag filters so that they reflect their true meaning.There are two ways to implement this:
1. Screen-Specific Renaming
Using the `filter.overrides` section in the `fc.list` component, teams can rename tag filters only on specific pages where clarity is required.This option is ideal when different teams or workflows utilize tags in varying ways.
2. System-Wide Renaming
If a tag has a consistent meaning everywhere (e.g., `tag2` always means Brand), you can apply a translation-based label update.This updates the label across all screens automatically - filters, drawers, cards, and lists.
Benefits
  • Users see meaningful, business-oriented labels instead of technical ones
  • Filtering becomes faster, clearer, and less error-prone
  • Training requirements decrease significantly
  • The UI aligns with business terminology, improving adoption and usability
  • You can choose between system-wide consistency or screen-specific customization
The accompanying how-to guide provides detailed steps and code examples for both configuration approaches.
Solution