Open your furniture supplier's price list and look up a single bar stool. Chances are you will find it six times: black 65 cm, black 75 cm, cognac 65 cm, cognac 75 cm, taupe 65 cm, taupe 75 cm. Six rows, six SKUs, and nothing that says this is the same product. Push that list into your shop as-is and from today you are selling six bar stools that compete with each other.
This is not sloppiness on your supplier's side. Their system is built to count stock, and stock is counted per version: every size-color combination has its own SKU, its own stock level and therefore its own row. On a German merchant forum a trader summed the problem up dryly: his manufacturer's system "knows no abstract parent items". The flat list is a feature for your supplier. For your shop it is a problem.
Why six separate items genuinely hurt your shop
A webshop does not think in stock rows but in products. Someone shopping for a bar stool expects one product page with a color picker and a height picker, not six near-identical pages. Put the flat list live anyway and three things happen at once.
Google sees six competitors of each other. Six pages with nearly the same title and description split your link equity and push each other down the results, the classic cannibalization pattern. Feed specialist DataFeedWatch describes a sportswear brand that listed every color and size as a separate product: confusing for shoppers and search engines alike. After merging into variants, conversion rose by roughly twenty percent within months (their own case study, so read it with that lens, but the mechanism is sound).
Customers never find the other color. Whoever lands on the black stool sees nothing that says cognac exists. The choice that makes your range strong is invisible at the moment it matters.
Your catalog fills up with near-duplicates. Filters get polluted, category pages show the same photo six times, and every content field needs maintaining six times. Annoying at a few hundred products; a Magento merchant on Reddit was offered a supplier dataset of 200,000 flat SKUs and asked out loud whether anything existed besides manual work.
Bar stool Oslo├─ color: Black · Cognac · Taupe├─ seat height: 65 cm · 75 cm└─ 6 variants, each with its own SKU, price and stock
Left: your supplier's price list. Right: what your shop needs, one parent product with two options.
Every platform calls it something else (which makes searching hard)
Google this problem for the first time and you get lost in terminology. The concept is the same everywhere, a parent product with versions underneath, but every platform has its own word for it. Magento calls it configurable products with simple products below. WooCommerce speaks of variable products with variations. Shopify simply says variants, and its native way to combine existing products, combined listings, is natively reserved for the Advanced and Plus plans. Marketplaces talk about parent/child relationships, and in your Google Shopping feed the link is called item_group_id. Five words, one concept: rows that belong together, bundled under one parent.
Useful to know when you go looking for solutions: a plugin promising "variable products" is about WooCommerce; a guide about "configurables" is about Magento. And the marketplace side, like feeds to marketplaces and Google Shopping, is its own story: there you deliver the parent-child structure in the channel's format.
The manual routes, and where they break down
Almost everyone tries one of these three routes first. They all work, once. Then the next collection arrives and everything starts over.
For 500 products this will take forever. I need automation that creates the variant rows for me.
How bad the manual route gets is best read in the forums themselves. One Magento merchant lost an entire working day to a single import file whose simples refused to attach to their parents; the cause turned out to be one attribute set as a text field instead of a dropdown. A print-on-demand seller calculated that his merged product would count 900 variations: 5 styles times 9 sizes times 20 colors, impossible to link by hand without mistakes. This is not a Friday-afternoon chore; it is a standing source of errors, and every error is live in your shop.
And then there is the structural problem no one-off action solves: the next delivery. Your supplier adds a color, swaps a size, or ships a new collection. Every hand-built structure starts aging the day it is finished. A merchant whose inventory system pushed every color as a separate product was told: export, restructure in Excel, re-import. Every single week.
How SyncRefine solves this: detect, propose, approve
In SyncRefine, variant grouping is an automation that runs on your supplier data, every time a delivery comes in. The principle is deliberately simple and consists of three steps.
Detect. SyncRefine reads name and SKU patterns in the delivered rows: the six bar stools share the first words of their name and a SKU prefix. You decide what to group on and which options make the difference, like color, size or material, and multiple options at once is no problem. You see live which groups that produces and adjust until it is right.
Propose. Every detected group lands in an overview as a proposal: which items, which options, how many variants. Nothing is merged silently.
Approve. You accept or reject, per group. Only approved groups become a product with options in your shop: a configurable product in Magento 2, a variable product in WooCommerce, both over a direct two-way connection.
The parent product itself is composed per field from the variants, following a rule you choose: the shared part of the names as the title, the first filled value as the price or image, the most common value for an attribute. And because grouping works as a layer on top of your source data, the original supplier rows stay exactly as they came in. Every decision can be undone, and merging supplier data into one golden record stays traceable per field.
Per platform: how it lands, neatly nested
An approved group is converted into exactly the structure your platform expects, in that platform's own language.
Magento 2: configurable products. The group becomes a configurable product with the flat rows as simple products underneath, linked through the right options (super attributes). Customers see one product page with pickers; the simples do the stock work in the background. Exactly the structure you would otherwise build row by row in a CSV.
WooCommerce: variable products. The group becomes a variable product with variations, including the attribute terms that requires. No spreadsheet restructuring, no import plugin with a yearly license.
Shopify: variants. Shopify bundles variants inside one product, since October 2025 up to 2,048 per product on every plan, with at most three options per product. For merging products that already exist in Shopify, the platform offers combined listings, but natively only on Advanced and Plus. Our Shopify connection is almost ready; the grouping itself already works on your supplier data today.
Shopware, PrestaShop, JTL and the rest.Same concept, different words again: Shopware calls it variants with Eigenschaften, JTL-Wawi speaks of Variationskombinationen with parent and child items, PrestaShop of combinations. The grouping in SyncRefine is identical for all of them; if your platform's connection does not exist yet, our experts build it, usually within weeks. See the connections overview for what is live today.
Marketplaces and Google Shopping: product families and item_group_id. The same parent-child structure is the natural basis for product families on marketplaces and grouped variants in your Shopping feed. Group well once and it pays off on every channel you feed from the same data.
One grouping, each platform its own structure: from configurable to variable to product family.
Bar stool Oslo from € 129.00● ● ● colors · 2 seat heights→ 1 tile, every choice on one page
The same category page: six competing tiles become one product that collects all the demand.
Also for the loose simples already live in your shop
This does not only work for new deliveries. To SyncRefine, your shop connection is simply another source: the existing products are read in, and the same detection runs on that catalog. So if hundreds of loose color-size products are already live, they show up as variant proposals in the same overview, and after your approval they go back to your shop as a configurable or variable product.
Important for your SEO: every variant keeps its own SKU, EAN, price and stock, and you decide per group what merges before anything changes. No exporting, restructuring in Excel and re-importing, the route where sellers trade redirect schemes to avoid losing hard-won rankings. The new parent becomes the one page that collects all the demand, instead of six pages diluting each other. And if part of your catalog already has a clean parent-child structure, SyncRefine recognizes it and leaves it alone; only the loose rows without relations are proposed.
- Rebuilding Excel rows and re-importing for every collection
- Imports that succeed while links silently go missing
- Six product pages competing with each other in Google
- New colors and sizes arriving as loose duplicates
- Merging afterwards costs URLs and order history
- Groups are detected automatically on name and SKU patterns
- You approve or reject every proposal, per group
- One product page with color and size options per product
- New variants attach automatically to the existing group
- Source data stays intact, everything can be undone
What to watch for when you set this up
Whether you group with SyncRefine or any other tool, keep these rules of thumb in mind. They come straight from the pitfalls above.
- Group on a stable pattern (name prefix or SKU structure), not on file order: that changes with every delivery.
- Review proposals before they go live; a wrong group is much harder to untangle inside your shop than in a review step.
- Keep variant-level fields (SKU, EAN, price, stock) on the variant and only compose the parent product.
- Plan for re-delivery: a structure that is only correct at first import is polluted again within a quarter.
- Never merge blindly in a live shop; guard URLs and order history, or group before your shop instead of inside it.
Feel free to send us a real price list from your supplier. In a half-hour demo we will show you which groups SyncRefine detects in it, what the proposals look like, and how they land in your shop as configurable or variable products. Working with thousands of products from dozens of suppliers? Then this is usually where the most time is won, alongside the other automations that keep your catalog in order.


