Main Product Search | Group Variants in Search Results and Suggestions
Description
Highlights
About the Extension
A customer types “jumper” into your search box. The result list shows the same jumper ten times, once per colour. The three other jumpers in your range sit somewhere behind them. You only sell what people find.
The problem
Shopware treats every variant as a product of its own. In a category listing you decide what the customer sees through the product settings. In the search you do not: every active variant turns up as its own hit. Ten colours in four sizes make 40 entries for a single article.
The counter above the list then counts variants instead of articles, the pagination grows for no good reason, and your customer clicks through repetitions instead of your range. Whoever gives up after three screens never saw your second best product.
The solution
The plugin groups the variants of an article into one hit, on the search results page and in the suggestions that drop down while your customer types. Hit count, filters, sorting and pagination all work on main products afterwards.
Variants stay findable. Type in the product number, the EAN or the colour name of a single variant and the result leads to the matching main product instead of nowhere.
What's in it for you
Your result list shows your range again, not repetition. Forty variant entries become one hit. Page one now holds the articles a customer actually wants to compare.
The numbers add up. “128 results” then means 128 articles, not 128 variants of 12 articles. The same goes for filters, sorting and the number of pages.
Customers still see the choice. If you want it, a line under the product name reads “More variants available” or “Available in 3 variants”. It counts only active variants that are visible in this sales channel.
You decide per sales channel. Group them in your consumer shop, list every variant in your trade shop: both at the same time, with one switch per channel and no second installation.
Your product data stays untouched. The plugin changes no main variant, no visibility and no price. It only changes what the search hands out.
How the plugin works
After installation the plugin creates a table of its own and builds a search index from it that maps every variant to its main product. It keeps that index up to date on its own when you create, edit or import products. You can see its state in the plugin configuration and rebuild it there with one click.
In the search the plugin steps in at three points: it groups the hits, it picks the article to display, and it attaches the variant hint to the product card. You choose which article appears. “As in the category listing” takes the main variant or the main product from the product settings, “Always the main product” shows the parent with its lowest variant price. When the customer clicks it, the product page opens the matching or the cheapest available variant.
Typical use cases
Fashion and textiles. A jumper in six colours and five sizes is one article, not a block of 30 hits. A customer searching for “merino jumper” sees six different jumpers instead of one jumper in every shade.
Tech and accessories. Cables in four lengths, memory cards in three capacities: the customer compares products, not editions, and picks the variant on the product page.
Two channels, two expectations. In your consumer shop you want a tidy result list. In your trade shop, where buyers search by article number, you may well want every variant on show. Both can be set separately.
Technical facts for your IT team
Shopware 6.7.13 and above, PHP 8.2 and above. The plugin creates exactly one table of its own (swp_search_main_product_group) and adds one product field that is filled at runtime only. Shopware core tables stay untouched, there are no custom fields and no interference with day to day product maintenance.
The plugin sends no data to external servers and processes no personal data. Errors go into a log channel of its own. In the one place where an error message could carry parts of the search term, it deliberately records the error class and error code only.
Grouping runs through a dedicated DAL indexer instead of extra queries during page rendering. The search works with MySQL and just as well with OpenSearch or Elasticsearch; the plugin ships its own index extension for that and checks by itself whether the product index already contains it. Configuration changes invalidate the affected page caches. On uninstall you decide as usual through “remove user data” whether the table goes with it. The status area in the administration is tied to the permission for managing extensions.
To be honest
The plugin works in the search, which means the search results page and the search suggestions. It changes nothing in category listings; there the Shopware product settings still decide. And it needs a moment of lead time: right after installation and after large imports the index has to be built before grouping takes effect. Until then the search looks exactly as it did without the plugin, and the plugin configuration tells you so. Try it on a test shop with your own range and you will know within five minutes whether it fits.
Legal notice
We accept no liability for legal requirements. Please check the use of this plugin with a qualified legal advisor.
Details
- Available: English, German, Dutch
- Latest update: 29 September 2026
- Publication date: 30 September 2026
- Version: 6.7.0
- Category: Search & Filter
Resources
Reviews (0)
About the Extension Partner
BuI Hinsche GmbH
Partner Status
-
Shopware
Bronze Partner -
Shopware
Premium Extension Partner
Details
- Ø-Rating: 4.3
- Partner since: 2014
- Extensions: 95
- Certifications: 2
Support
- Based in: Germany
- Speaks: German, English
- Response time: Very quickly