Manual AI product search.

Everything about setup: search mode, AI provider, live search, cost protection, evaluation and synonyms.

System requirements

Shopware 6.6 or 6.7 with storefront, PHP 8.2 or newer. Plus an account with an AI provider of your choice. Without one, only keyword recognition runs.

Getting started

  1. Install and activate the plugin via the Plugin Suite.
  2. Open the module, Settings tab.
  3. Under AI provider choose a provider, enter the key, test the connection.
  4. Set the search mode - "Automatic" to start with.
  5. Save, then check a query such as "red trousers in XS" in the Search test tab.
  6. Only then try it in the shop.

Search mode

  • Classic only - no AI call, the search stays as before.
  • AI from two words - single terms run classically, sentences go through the AI.
  • Automatic - from the configured word count a query counts as a sentence.
  • Always AI - every search is translated. Expect correspondingly more calls.

Under maximum search orders you set how many product types a query may be split into at most.

The "understood as" bar

On the search page a bar shows how the query was understood. Every building block - category, colour, size, price, sorting - can be removed with a click and the search re-runs at once.

It can be switched off if you prefer. Leaving it on is worth it: customers understand why they see certain results.

AI provider

Provider, model and key are entered by you. The key leaves your shop only to translate the search query.

  • Model - the fast models are enough. Larger ones bring little benefit here but cost more and take longer.
  • Time limit - if the model does not answer in time, the fallback takes over.
  • Test connection - checks key and model before anything reaches the shop.
  • Pass shop terms - gives the AI your actual categories and properties so it hits your terms.

Mapping

You can select the colour and size properties. Without a selection the plugin detects properties with "Farbe", "Color", "Größe" or "Size" in their name.

If the customer names a category, the hits can be restricted to it.

Live search

Either the Stone & Water full-page modal or the Shopware standard.

  • Result view - product boxes as in the listing, or a compact list.
  • Products per row - separately for desktop from 1200 pixels, tablet from 768 and phone below.
  • Open on focus - shows suggestions and products before any input. From three characters hits replace the recommendations.
  • Popular searches - from your own log, only from two searches on and with an exclusion list.
  • AI while typing - optionally the AI translates inside the modal already, after a configurable typing pause. Costs additional calls.

Filters in the modal

The panel has a filter column on the left. Which filters appear and in what order is up to you; without a selection you get category, manufacturer, price and the three most common property groups.

  • Presentation per filter - list, select field or slider, collapsed if you prefer.
  • Price - always a slider, including in older settings.
  • Numeric values - properties with numbers appear as from/to fields.
  • Selected filters - shown as chips above the results, removable one by one, plus a reset.
  • Categories - matching categories are offered as clickable suggestions with hit counts.

On the phone the column becomes a button with the sorting below it. Groups can be expanded and the sliders are larger.

Recommendations and tiles

Hits appear in the plugin's own product tile, independent of the theme. Whether a buy button and availability show is up to you. Variants of the same article sit next to each other; on request the search shows only parent products.

  • Without hits - instead of an empty page, recommendations appear together with matching search suggestions as chips.
  • Source - a dynamic product group, or a selection you put together yourself.
  • On opening - the same recommendations can appear before any input.

Scheduled maintenance

A schedule of its own warms the cache and keeps the search index current. The scope is selectable: the most common filters, the largest property groups, or every group with all its values. The wider it reaches, the longer the run takes - in return, filter clicks work without waiting.

Stored answers last from one hour up to seven days, one day by default. After clearing, the maintenance warms up again straight away.

Costs and protection

Four brakes worth setting before going live:

  • Daily limit - after that the search works without AI until midnight. 0 means no limit.
  • Per-visitor limit - at most this many calls within ten minutes, search page and live search combined.
  • Exclude bots - crawlers get keyword recognition.
  • Cache - identical queries without a new call, duration configurable in hours.

Enter your provider's token prices and the overview converts consumption into euros.

Log and evaluation

The search log records every search on the search page, translated and classic. The overview shows searches of the last 30 days split into AI, keyword and cache, plus average duration, queries without hits and failures.

Switch on click tracking and you also get click rate, click position and searches without a click. Retention in days is up to you; older entries are deleted automatically.

Synonyms

A customer word is replaced by a shop term before the search runs. The rules are kept as a table and can be tested individually.

The quickest route: the list of searches without hits contains the words your customers use and your shop does not know. Create the rule straight from there.

Search test and batch test

In the search test you check one query per sales channel, with or without AI. The breakdown and the number of hits are shown.

The batch test takes up to 50 queries, one per line, and shows the share with hits at the end. It is the quickest way to hold a list of real customer queries against your shop.

Sales channels

All settings initially apply to every channel. Select a channel at the top and it gets its own values - everything unchanged still comes from the default. One button resets it.

Since 1.1.85 inheritance can be controlled per field: for each sales channel you decide setting by setting whether it inherits from the default or gets a value of its own. The switch carries its label, and every settings area has an info icon with a short explanation.

Acceptance checklist

  • Connection to the AI provider tested successfully.
  • Batch test with 20 to 50 real customer queries done, hit rate reviewed.
  • One query checked in the shop, "understood as" bar verified.
  • Live search checked on desktop and phone.
  • Daily limit, per-visitor limit and bot exclusion set.
  • After a week, looked at the search log and created the first synonyms.

Support

We answer questions directly. Write to us via the contact form.

All settings

Every setting of the plugin with its default value and explanation, in the same order as in the administration. The texts come straight from the plugin (version 1.4.62).

General

Basics: whether the search is running and how it works.

Plugin activeDefault: on

Switches the AI search on or off for the selected sales channel.

Search modeDefault: Automatic

Automatic only uses the AI for sentences and for price or sorting wishes. Always AI translates every search, including single words, while product numbers still run directly. This causes more AI calls.

Minimum number of wordsDefault: 3

From this word count a query counts as a sentence in automatic mode and goes to the AI. Possible values are 2 to 8. In automatic mode single words always use the classic search. To have them translated as well, set the search mode to Always.

Maximum search ordersDefault: 4

At most this many product types are searched separately per query.

AI provider

Provider, access key and model of the AI with a connection test, plus time limit, fallback without AI and how long answers are remembered.

ProviderDefault: OpenAI

One small call per search. Fast, affordable models are fully sufficient.

API keyDefault: empty

Only used to translate the search query.

ModelDefault: GPT-6 Luna

Fast models are recommended, larger models hardly add value here.

Timeout (seconds)Default: 6

If the model does not answer in time, the fallback takes over.

Keyword recognition as fallbackDefault: on

On failure or timeout, color, size, price and sorting are recognized without AI.

Pass shop terms to the AIDefault: off

Passes the names of up to 80 categories and 30 property groups so the AI uses your terms. No products, no prices. Increases tokens per call.

Remember AI answers (hours)Default: 168

Identical queries are answered without a new AI call for this long.

Show AI suggestionsDefault: on

For every interpreted search the AI suggests two to four further search terms. They appear in the modal above the results, with zero results they come before the dictionary suggestions. No additional AI call.

Search field and integration

How the search field appears and behaves in the shop: AI switch, buttons, Enter key and the integration into the theme.

AI in the search fieldDefault: Show nothing

With nothing shown or with the AI badge, the AI search stays on for all visitors. With the switch, visitors can turn it off and on themselves.

Initial state of the switchDefault: AI search on

Applies to visitors who have not used the switch yet.

Enter key in the search fieldDefault: Search in the modal

Defines whether the enter key opens the search result page or searches in the modal.

Button "Show all search results"Default: on

Switched off the customer stays in the modal and the search result page is no longer offered.

Button to clear the inputDefault: on

Shows a small cross in the search field as soon as something is typed. A click clears the input, keeps the focus in the field and shows the recommendations again.

Custom trigger for the modalDefault: empty

CSS selector of the elements that open the modal, for example the magnifier icon of a customised theme. Separate several with a comma. Leave empty when the normal header search field is enough.

Custom search formDefault: empty

CSS selector of the search form if the theme does not use "form.header-search-form". Without a match and with a trigger set the plugin creates an invisible replacement form.

Hide the standard searchDefault: empty

CSS selector of the elements to hide, for example the theme search field with its own suggestion list. Only set this once the trigger works.

Hide every search form of the themeDefault: off

Hides every search form of the theme, including ones that appear later, for example in the mobile drawer. The plugin field itself stays visible. Useful when the theme ships separate search fields for desktop and mobile.

Look, filters and behaviour of the live search in the window above the page, including preloading and AI while typing.

DisplayDefault: Stone & Water modal (whole page)

The modal opens full-screen with its own search field and fades in and out with a slight blur. Results appear as in the listing. The Shopware default stays the narrow dropdown at the search field.

Result viewDefault: Listing view with product boxes

Product boxes as in the listing or a compact list with image, name and price.

Product boxDefault: Own tile (independent of the theme)

The own tile works without theme components and looks the same in every shop, but without wishlist and direct buy. The theme tiles adopt the look of your theme but can bring their own quirks.

Button in the own tileDefault: on

Shows a "View product" button below the price. The whole tile is linked anyway, the button just makes it clearer.

Availability in the own tileDefault: off

Shows below the price whether the product is in stock.

Products per rowDefault: 4

Desktop from 1200 px, tablet from 768 px, smartphone below. The list always shows one column on smartphones.

Number of productsDefault: 12

The live search shows this many results on the first load. Default 12.

Categories in the modalDefault: on

Shows the matching categories with result counts in the filter column. If the list below holds your own selection, that one wins.

Manufacturers in the modalDefault: on

Shows the matching manufacturers with result counts. If the list below holds your own selection, that one wins.

Properties in the modalDefault: on

Shows the properties of the current results as filters, for example colour, size or material. Without your own list the most frequent groups appear.

Filters and order

Choose which filters appear in the modal, in which order and how they are shown. "Use standard filters" adds category, manufacturer, price and discount. Slider and from/to fields are available for properties with numbers, such as size or weight. Without a selection the plugin decides.

Price slider in the modalDefault: on

Shows a slider for the price range of the current results. If the list below holds your own selection, that one wins.

Show counts in filtersDefault: off

Shows behind each filter value how many results it yields. Tiles are counted like the result count at the top, i.e. a product with its variants as one tile. If variants appear individually, variants are counted. Off: the filter column only shows the values, the modal only lists values with results anyway.

Discount filter in the modalDefault: on

Shows the group "Discount" in the filter column with "On sale", "from 20 %", "from 30 %" and "from 50 %", each with a count. Only steps with results appear. Calculated with the cheapest price like Shopware, i.e. with price rules and currency.

Tier prices in the discount filterDefault: Ignore

Defines whether the discount filter includes tier prices. Ignore: filtering uses the discount of the standard price from one piece, as the tile shows it with the list price. Include with hint: filtering uses the cheapest price including tiers, and an "i" behind the price shows the tier prices on hover.

Sorting in the modalDefault: on

Shows the shop sortings such as relevance or price at the top right of the modal.

Show unit price and RRPDefault: on

Shows the reference price below the price, for example "(2.08 € / 1 piece)", plus the previous price when maintained. Applies to the cards in the live search.

Show strike-through pricesDefault: off

Discounted products show the sale price together with the struck-through previous price and the saving. With from-prices there is no strike-through price, as in the Shopware listing. Theme tiles show strike-through prices anyway.

Show discount badgeDefault: off

Discounted products show the saving in percent at the top right of the image, for example 13%. With from-prices it is left out, as in the Shopware listing. Applies to the own tile, theme tiles bring their own badge.

Discount badge colourDefault: #1f2328

Background colour of the badge as a hex value, for example #1f2328. Choose it together with the text colour so the percentage stays easy to read.

Discount badge text colourDefault: #ffffff

Colour of the percentage in the badge as a hex value, for example #ffffff for white.

Suggestions above the resultsDefault: on

Shows matching categories as clickable suggestions above the result list, for example the accessory category of a brand when the brand name is typed. A click narrows the results to that category.

Filters on mobileDefault: Open via a "Filters" button

Defines how the filter column appears on narrow screens. On desktop it always stays next to the results.

Load more results while scrollingDefault: on

Automatically loads the next results while scrolling in the modal, up to 120 products.

Amount per loadDefault: 12

This many products are added while scrolling. 1 to 48, default 12. Independent of "Number of products" for the first load.

Maximum products in the modalDefault: 120

After that, loading stops and the customer moves on via "Show all results". 12 to 600, default 120.

Back-to-top button in the modalDefault: on

Shows a button in the bottom right after some scrolling that jumps back to the top of the results.

Preload results in the backgroundDefault: on

Loads the next page and the nearby filters before the click, which makes the modal react instantly. On busy shops this creates extra requests, then switching it off is worth it.

Scope of the preloadDefault: Lean (on hover or touch)

Lean only preloads the nearby filters. All visible values makes every click on color, category or manufacturer instant but creates more requests. The calls are staggered so the shop does not get everything at once.

Typing delay in millisecondsDefault: 150

How long the live search waits after the last keystroke before asking. 0 to 1000, default 150. Higher values noticeably save requests, 250 to 300 still feels smooth.

Live search with keyword recognitionDefault: on

The live search never calls the AI, it uses keyword recognition or cached results.

AI while typingDefault: on

After a short typing pause, the AI already translates full sentences in the modal, and the search page afterwards loads without waiting. Causes additional AI calls, limited to 40 per visitor in ten minutes.

Typing pause before the AI call (ms)Default: 700

The input must rest this long before the AI is asked. 300 to 3000, default 700.

Recommendations in the empty modal

What the search modal shows before anything is typed: product recommendations and popular searches.

On click into the search fieldDefault: Open the modal with recommendations

Opens the modal as soon as the search field is clicked, optionally with recommendations and popular searches. Empty saves a request, content then only appears while typing.

Source of the recommendationsDefault: Automatic (home page, then bestsellers)

Where the products come from that appear on opening and on a search without hits.

Search suggestions

One suggestion per line, shown as a clickable term. Full sentences that show what the AI search can do work well too.

Add frequent search queriesDefault: on

Adds up to eight queries from the search log that were searched at least twice, had results and where a result was clicked at least once. They are visible to all visitors.

Excluded terms

Queries containing one of these terms never appear as a popular search. One term per line.

Click on a popular searchDefault: Search in the modal

Defines what a click on a term under "Popular searches" does.

Products on openingDefault: topseller

Shows products in the selected sorting, view and products per row as above.

Number of recommendationsDefault: 8

The modal shows this many products while nothing has been typed yet. 1 to 30, default 10.

Variants and prices

Whether main products or variants appear, which variants are shown when filtering and how tiered prices are handled.

Show main products onlyDefault: off

Every tile shows the main product instead of a variant. Products without variants are unaffected. While this is on, the variant mapping and the splitting when filtering do not apply.

Use the master data nameDefault: off

When a variant stays as the tile because the main product is not visible in the sales channel, the name of the main product is shown anyway.

Show variants individuallyDefault: Off

Instead of one tile per product every variant appears as its own result. Can be chosen separately for the live search and the search page. Note: the number of results grows considerably.

Also show the main productDefault: off

When variants are shown individually, the main product appears as its own tile before its variants. Also applies when variants are fanned out while filtering. The result count includes it.

Show all variants of the products foundDefault: off

When the search hits a product with variants, its other variants appear as separate tiles right after the hit, for example further colours or sizes. Invisible variants and sold-out closeout items are left out. The result count includes them.

Maximum variants per productDefault: 12

Limits the additional variants per product so that products with a great many shades do not fill the list. Possible values are 1 to 50.

When filtering by propertiesDefault: Show all matching variants

What appears when filtering by colour, size or another property, or when the property is part of the search term. With all matching variants, a product in red and yellow appears twice when both colours are selected.

Use the variant imageDefault: on

Every variant that appears as its own tile shows its own image, if one is assigned. This applies whether it comes from showing variants individually, from filtering or as a further variant of a product found. Without its own image the main image remains.

Ignore tiered pricesDefault: off

The tile shows a fixed price instead of a from-price: with main products only the price from the master data, otherwise the price of the variant. Tiered prices and the variant price range are left out.

Search page

Hints and filters on the search results page.

"Understood as" barDefault: on

Shows the translation on the search page and makes every part removable with one click.

Category filter in search resultsDefault: on

Shows a category filter with result counts and a search field in the search results. Shopware otherwise only offers manufacturer, price, rating and properties there.

Number of categories in the filterDefault: 20

The filter shows this many categories, sorted by result count. 3 to 100, default 20.

Categories in the filterDefault: Parent categories first

Which categories the filter shows. Parent first: by number of results, main categories on top. Deepest only: only the deepest categories of the results, e.g. "Girls" instead of "Wallpaper". Applies to the filter column, quick filters and search page. Selected categories always stay visible.

Quick filters above the resultsDefault: on

Shows the most frequent categories of the current search as clickable buttons above the result list.

Entries per filter groupDefault: 6

Applies to the quick filters above the results and to the values per group in the modal filter column. 1 to 12, default 6.

Automatic property groupsDefault: 3

How many property groups the filter column shows without a custom order, most frequent first. Groups with "Display in product filter" switched off in Shopware do not appear. For fixed groups like colour, maintain the order under "Filters and order".

Result quality

How a search turns into results: categories and properties as filters, preferred manufacturers, synonyms and what happens when nothing is found.

Category as filterDefault: on

If the customer names a category, the results are limited to it.

Combination of several filter values (default)Default: OR

Applies to all properties unless the filter list says otherwise. With OR one of the selected values is enough, with AND a product must have all of them. It can be overridden per group in the filter list.

Apply properties from the query as a filterDefault: on

If the query contains the name of a property value next to the actual search word, for example a color or a size, it becomes a filter. Only products with that value appear, the counts match and the tile shows the right variant. If the search consists of the property only, nothing is filtered, so products that merely carry the word in their name still appear. A filter set by the customer takes precedence.

Include variant optionsDefault: on

Also recognises colors and sizes that are only used as variant options and whose group is not marked as filterable. Shopware then shows the matching variant instead of the main product.

Prefer manufacturers

Products of these manufacturers rank higher when the match is equal. Nothing is filtered out, other manufacturers stay in the list. Works with sorting by relevance, on the search page and in the live search.

Strength of the preferenceDefault: 3

1 nudges them up, 10 puts them in front almost always. Default 3.

SynonymsDefault: empty

On the left the term from your shop, on the right the words of your customers, separated by commas. Use the test field to check which word gets replaced.

Search the product name when nothing is foundDefault: on

If the search finds no hits, the product name is searched directly as well. This helps with long names whose individual words the Shopware search index does not know. Every entered word has to appear in the name.

Number of suggestions without hitsDefault: 6

How many terms appear as clickable suggestions when a search finds nothing. 1 to 12, default 6.

Correct typos in the queryDefault: on

If the search finds nothing, the plugin compares every word with the shop search dictionary and repeats the search with the correct spelling. A note above the results tells the customer.

Costs and protection

Limits for AI calls, protection against bots and waiting times.

Daily limit of AI callsDefault: 2000

After that, the search uses keyword recognition until midnight. 0 means no limit.

Limit per visitor (10 minutes)Default: 60

Maximum AI calls per visitor in ten minutes, search page and live search combined. 0 means no limit.

Exclude bots and crawlersDefault: on

Search engines, crawlers and scripts get keyword recognition so they cause no AI costs.

AI waiting time on search (ms)Default: 1500

If the AI does not answer this fast, the search page shows the keyword result and the AI finishes in the background. 500 to 10000, default 1500.

Price per 1 million input tokens (EUR)Default: empty

Optional, for the cost estimate in the overview. You find the price at your AI provider.

Price per 1 million output tokens (EUR)Default: empty

Optional, for the cost estimate in the overview.

Cache, index and log

The live search cache including warming, the Shopware search vocabulary and the search log.

Cache live search responsesDefault: on

Allows the live search responses into the HTTP cache. Shopware otherwise always passes this route through, so every keystroke costs a full query. Identical searches then work without the database.

Lifetime in secondsDefault: 86400

Upper limit for a stored response. 30 to 604800 seconds, default 86400, which is one day. When products, prices or stock change, Shopware drops the affected responses right away, as does clearing the cache. A long value is therefore safe and saves the most load.

Lifetime in the browser in secondsDefault: 60

How long the visitor browser keeps a response. This avoids the request on the next page view, for example when the same filter is hovered again. 0 to 300, default 60. The value applies to this one visitor only, 0 switches it off.

Scope of the warm-upDefault: Medium

Defines what is warmed: the most frequent customer search terms from the log, for the most frequent ones also the intermediate steps while typing, plus categories and manufacturers of the channel and combinations with properties. "Everything" can run for a while on large catalogues.

Warm up the cache

Calls the most frequent search terms, the category names and the same searches with all property groups as a filter, for example colour, size or material. Afterwards the common responses are cached.

Warm up the cache on a scheduleDefault: off

Warms the cache automatically at the chosen interval, without a click in the module. After clearing the cache the next run starts right away instead of waiting for the interval. It runs through the Shopware scheduled tasks, so the worker has to be active.

Warm again automatically after clearingDefault: on

When the cache is cleared, for example via "Clear caches", after an update or when the theme is rebuilt, all warmed responses are gone. With this option the plugin notices this within five minutes and warms again on its own. Requires a running background worker for scheduled tasks.

Search indexDefault: empty

The search uses its own index instead of the Shopware full text search. It finds word beginnings and word parts, including terms inside compound words, as well as numbers, manufacturers and variant options. Synonyms apply in both directions, typos are tolerated. When a product is saved or imported, only its entries are renewed. After an update the maintenance task builds the index in the background, until then Shopware searches as before. The button does it right away.

Search propertiesDefault: on

Adds the properties of the products to the search index, own ones or inherited from the parent, e.g. colour, material or type. They find the product but rank behind name, number and manufacturer. After switching on or off, press "Build index" once.

Search the descriptionDefault: off

Adds the words of the product description to the search index, at most 200 per product and from four letters. Matches via the description rank behind matches via name, number and manufacturer. The index gets larger. After switching on or off, press "Build index" once.

Maximum number of resultsDefault: 3000

A search returns at most this many products, best matches first. Result count and filters are calculated over these products. More results make broad searches more complete but somewhat slower. Default 3,000, possible 500 to 10,000.

Own result cacheDefault: on

Finished live search responses are stored in a table of their own, independent of the Shopware cache. Clearing caches, updates and theme rebuilds leave them untouched. When a product changes, only the responses containing it are dropped and warmed again. Orders drop nothing. Applies when live search caching is switched on.

Fast filters on category pagesDefault: off

The property filters of category pages come from a prepared table of their own instead of Shopware counting across all variants. This speeds up filter clicks especially in large categories. After switching on, press "Build index" once, afterwards the table is kept up to date per product together with the search index. Categories with dynamic product groups as well as active price, rating or shipping filters are still calculated by Shopware.

Rebuild search index on scheduleDefault: off

Rewrites the search index completely at the configured interval, as a safeguard in addition to the ongoing update of single products. The search keeps working meanwhile.

Interval in hoursDefault: 24

How often the maintenance runs. 1 to 168, default 24. The task itself reports hourly and only checks whether the interval has been reached.

Search logDefault: on

Stores translated queries for overview and analysis.

Analyse clicks on search resultsDefault: on

Records which product is clicked after a search and at which position. Only the query, product and position are stored, no personal data.

Retention (days)Default: 30

Older entries are deleted automatically.

Availability

Directly from Stone & Water

Available now

Monthly29,99 €
Best valueYearly305,90 €15 % cheaper

All prices net, plus VAT.

Download the free Plugin Suite and upload it in the admin, no SSH needed. It installs and updates the plugin with one click. You buy the licence directly from us, with an invoice from us and support straight from the developer.

Download Plugin Suite+49 2555 9997342

Shopware Store

In preparation

The plugin will be listed in the official Shopware Community Store. Installation and automatic updates then run through the plugin manager in the backend, billing through your Shopware account. We will link it here as soon as it is available.