Skip to content

Merging duplicates

How the system finds the same product across several vendors, what exactly a merge does, and how to undo it.

Available to roles Admin, EditorOpen in the app (Opens in a new tab)
On this page

This module solves one situation: the same physical product arrives from several vendors' feeds as several separate records. The system offers two different answers to that, and it matters not to confuse them.

Linking versus merging

OperationWhat it doesReversible?
Link (duplicate reference)Both products go on existing. The secondary one simply stops appearing in the shop and carries a reference to the primary. Nothing is copied.Any time, with Remove link.
MergeThe secondary's variants, images, parameters and categories move into the primary. The secondary is archived.Yes — through Undo merge, with conditions.

The primary product is the one that survives a merge. The secondary is the one that gets archived. That split decides everything else, which is why the manual returns to it in several places.

The module at a glance

You will find it under Products → Duplicates (Opens in a new tab). It opens on the Overview tab.

The Overview tab of the Duplicates module, with status figures and the detection rules table
Fig. 1 — Overview: the state of the module and the rules detection searches by.

Controls on this screen

  1. Find duplicates — Runs automatic detection across the whole catalogue.
  2. Overview — The state of the module and the detection rules.
  3. Linked duplicates — Pairs that are already linked.
  4. Suggestions — The queue of found pairs waiting for your decision.
  5. Manual search — Searching by fields you choose, plus saved searches.
  6. Merge history — What can still be undone, plus the permanent log.
  7. Linked groups — How many pairs are linked but not yet merged.
  8. Secondary products — How many products are currently hidden as secondaries.
  9. Pending suggestions — How many pairs are waiting for a decision on the Suggestions tab.
  10. Link all suggestions — Links every pending suggestion at once. It links, it does not merge.
  11. Detection rules — The five strategies and the field each one compares.

Automatic detection

Find duplicates walks the catalogue with five strategies. Each compares one specific field and carries its own level of certainty:

StrategyFieldLevelCertainty
Same product GTINproduct.gtinProduct95 %
Same variant GTINproduct_variant.gtinVariant90 %
Same MPNproduct.mpnProduct80 %
Same manufacturer SKUproduct.manufacturer_skuProduct75 %
Same variant SKUproduct_variant.skuVariant60 %

A GTIN is a globally unique barcode, hence the highest certainty. A variant SKU, by contrast, is invented by each vendor, so a match can be pure coincidence — that is the reason for 60 %, and also for the rule that this strategy only compares across vendors, never within one. On screen it carries the Vendors only label.

Manual search and saved searches

When automation is not enough — because two vendors put their identifiers in mismatched fields, say — use manual search.

The Manual search tab, showing the side A and side B definition and the saved searches panel
Fig. 2 — Manual search: defining sides A and B, and the saved searches panel.

Controls on this screen

  1. Save search — Stores the current form. Enabled once the form is filled in.
  2. Saved searches — Each shows when it last ran and how many matches it found.
  3. Side A — primary — Products from this side become the primaries, so they survive.
  4. Side A vendor — The vendor whose products are treated as primary.
  5. Side A comparison field — Which identifier to compare.
  6. Side B — secondary — These products attach to side A as secondaries.
  7. Side B vendor — It need not be a different vendor, though usually it is.
  8. Side B comparison field — It need not be the same field as side A — that is the point of manual search.
  9. Link directly — Skips the Suggestions queue and links the found pairs immediately.
  10. Run search — Runs a one-off search without saving it.

Which fields can be compared

Each side offers eleven fields, and they need not match — that is exactly the power of manual search: vendor A's GTIN against vendor B's variant SKU.

  • At product level: code, external ID 1–3, GTIN / EAN, MPN, manufacturer SKU, name.
  • At variant level: variant SKU, variant GTIN, variant external ID.

The right mapping for a particular catalogue is knowledge that otherwise lives in one person's head. A saved search records it, and turns the search into one click. It also removes the most common mistake: swapping sides A and B, which quietly inverts which product becomes the primary.

Suggestions: what to do with a found pair

The queue of found pairs is on the Suggestions tab. Nothing happens here on its own — every pair waits for your decision. Each row offers three actions:

  1. Reject

    The pair is not a duplicate. It leaves the queue and detection will not propose it again.

  2. Link

    You confirm it is the same product, but nothing is copied and nothing is archived. The safest choice.

  3. Compare and merge

    Opens the single-pair merge screen.

Each pair shows the match type — which rule found it, and the actual value — and the certainty from the table above. The row checkboxes select pairs for a bulk merge; the selection survives paging.

Change the order of the pairs in the drop-down above the table: Newest first and Oldest first by when the pair was found, Most products and Fewest products in the group, Primary product A → Z and Z → A alphabetically by the name of the product in the first column — capitals and diacritics do not scatter the order. Alphabetical order puts similar products next to each other, so they are easier to tick for a bulk merge.

Linked duplicates

The Linked duplicates tab holds the pairs you confirmed but have not merged. Each row shows the primary, the secondary (hidden in the shop) and the match type that created the pair. From a link you can move to a merge at any time, or remove it — which puts the secondary back in the shop.

The list deliberately hides pairs where one product has already been archived by a merge. Such a row would offer buttons that cannot succeed.

Merging a single pair

The comparison screen is where you decide exactly what the resulting product looks like. Field by field you pick the value the result keeps, and switching the primary source decides which product survives the merge.

What the strategies mean

AreaChoiceResult
VariantsCombine allEvery variant of the secondary is added to the primary, with its prices and stock.
Take from sourceOnly one chosen product's variants are kept.
ParametersMerge allThe parameters of both are combined. Where the same parameter carries different values, both remain.
Prefer one productA parameter the chosen product has is taken from it alone. Parameters it lacks are filled from the other products.
Per parameterThe Take from column — see Parameter by parameter below.
Price and stockTake from A / BThe variants' prices and stock — see Price and stock below.
ImagesAdd the secondary's imagesThe primary's gallery gains the secondary's images.
Keep only the primary's imagesNothing is copied. The main-image choice is hidden then — it would have nothing to do.

Parameter by parameter

The parameter table has a Take from switch at every parameter:

ChoiceResult
DefaultThe parameter setting above the table applies (merge all / prefer one product).
A, BOnly the chosen product's values are kept.
A+BThe values of both products are kept.

The letters always follow the role: A is the product that survives the merge (the primary), B is the other one. Values the merge does not keep are struck through in the table, so you see the result before merging.

  • When the chosen product has no value of the parameter, the choice does not apply and the default is used — a merge never empties a parameter.
  • Values the merge removes from product A are recorded as suppressed, so the next feed sync of product A does not bring them back. Undoing the merge restores them.

Price and stock

The Price and stock card shows both products' prices and stock and decides where the resulting product's variants take them from: the price from A or B, the stock from A, B or both.

  • It only works while the resulting product keeps product A's variants (Variants → Take from source → A). Variants taken from another product bring their own price and stock, so the card is inactive otherwise.
  • Prices and stock are copied to the variants of A that have a matching variant of B — the same EAN, code or variant options, or automatically when each product has a single variant. A variant without a match keeps its values.
  • Stock "from both" adds product B's warehouses to A's variants (A's stay). Stock "from B" gives A's variants B's warehouses and sets A's other warehouses to zero.

Bulk merge from a pattern

With dozens of pairs, clicking each one is unthinkable. So a bulk merge works differently: you configure it once on one sample pair, and the system repeats that same recipe across everything you selected.

A partial result is a normal outcome

One bad pair does not cancel the other ninety-nine — pairs already merged stay merged. That is why a run reports each pair separately: merged, skipped (with a reason) and failed (with the message).

Skip reasonWhat it means
Record no longer foundThe suggestion disappeared in the meantime — a colleague resolved it, for instance.
Suggestion already resolvedThe pair is no longer in the "pending" state.
Group does not contain two productsThe suggestion lost a member, so there is no pair to form.
Group has too many productsOne merge handles at most 10 source products.
A product no longer existsThe product was deleted in the meantime.
Product was archivedAnother merge archived it first.
Product already merged in this batchTwo selected pairs shared the same product.
Kept as the result in this batchThe pair would archive a product that an earlier merge in the same batch kept as its result. That would make it impossible to undo, so it is skipped.

Merge templates

When you keep merging the same vendor pairs the same way — for example title from A, description from B, price from B, stock from both, colour always from B — save the setup as a template and apply it to the next merge in one click.

  1. Set up the merge

    On the comparison or the bulk-merge screen, set the fields, variants, price and stock, parameters and images.

  2. Save it as a template

    In the Merge template card, click Save as template, enter a name and check the summary of what the template stores.

  3. Apply it to the next merge

    Pick the template in Apply a template… — it sets every choice at once. You can still adjust them before merging.

A template stores the choices by side (A = the product that stays, B = the other one), not by product, so it fits any pair. It also stores the vendors of the pair it was made on: templates for the current vendor pair come first in the list.

  • When a template was saved with the sides the other way round, the comparison screen makes the product of the template's side-A vendor product A, and says so. The bulk merge cannot swap sides — the screen points it out.
  • The template you started from can be updated after you change the choices, or saved as a new one.
  • A template can only be saved from a merge of two products. It does not store a selection of single images — applying it takes every image of B (or none, if you selected none).
  • Manage templates lists them with their use count; rename or delete them there. Deleting one does not affect merges already done.

History and undoing a merge

The Merge history tab holds two lists, answering two different questions:

  • Merges that can still be undone — answers “what can I still take back?”. The row disappears once the merge is undone.
  • Merge and undo log — answers “what happened here?”. It stays forever.

What exactly comes back

Undoing a merge is a true inverse. It restores:

  • the archived secondary products — to the state they were in before the merge (a published product comes back published, not as a draft);
  • the primary's original field values;
  • the variants, images, parameters and categories the merge added — these are removed;
  • the parameter values the merge removed from the primary (a per-parameter choice) and the prices and stock it overwrote;
  • the primary's main image, if the merge overwrote it;
  • the duplicate links the merge removed or repointed;
  • duplicate suggestions go back to pending.

Every one of those steps is guarded so that a newer decision by an admin always wins. If you changed something by hand after the merge, undoing the merge will not overwrite it.

The log, by contrast, never disappears. It is the one record that survives undoing a merge — who did what, when, which products it touched, and whether it came from a bulk run.

Limits, permissions and constraints

Who may do what

OperationRole
Viewing every tab and the logAdmin, Editor, Viewer
Detection, linking, removing links, rejectingAdmin, Editor
Manual search and saved searchesAdmin, Editor
Single-pair and bulk mergeAdmin, Editor
Applying a merge templateAdmin, Editor
Saving, renaming and deleting a templateAdmin, Editor
Reject all suggestions at onceAdmin
Undo mergeAdmin

Numeric limits

LimitValue
Pairs in one bulk run100
Source products in one merge10
Saved searches per company50
Merge templates per company100
Per-parameter choices in one merge or template500
Bulk merge runs5 per 15 minutes
Detection or manual search runs10 per 15 minutes
Single-pair merges and undoing merges30 per 15 minutes

If you select more than a hundred pairs, the system stops the selection at a hundred and says so. If a larger number reaches the page address, the first hundred are taken and the screen warns you — merge the rest in a second run.

I merged two products by mistake. Can it be undone?

Yes, through Merge history → Undo merge, but only if you are an Admin and no newer merge over the same products happened since. The newer one has to be undone first.

Why did detection turn up nothing in Suggestions?

Either the catalogue has no matches in the compared fields, or the candidates are already linked or archived — detection skips those. Try Manual search with the pair of fields your vendors actually populate.

What is the difference between “Link all suggestions” and a bulk merge?

Link all suggestions only links — nothing is copied, nothing is archived, and it can be undone at any time. A bulk merge genuinely combines the data and archives the secondary products.

Does a product vanish from the shop if I only link it?

The secondary stops appearing in the shop and in the transfer to an ERP. The primary stays. Removing the link brings the secondary back.