Matching sets

The pieces that belong together.

Koral finds the matching pieces for every product, from the same series and beyond it, and shows them as one set. Generated from your feed, with no manual linking.

How shoppers meet it
Always on
What it needs
Your feed and a product ID
Status
Live today
A product page with a Combine with module showing the matching pieces of the set

Sets without the manual linking.

01

The full series

Every piece of a set is shown on every other piece, at once.

02

Beyond the series

Matches across brands that complete the set when the series stops.

03

Every colour variant

Each colour gets its own set, matched on colour and material.

04

Live on all domains

Sets follow your product IDs, so they work across every market and app.

See it in action.

A phone product page for a pink striped knit top with the matching skirt under Combine with
01

On mobile

The matching set on the product page, with both pieces added in one tap.

The Koral dashboard with a review table of matching sets and a Rules panel
02

Review before it goes live

Merchandisers see every generated set in the dashboard, test it on live products and remove what shouldn’t show.

Measured in an A/B pilot on 30,000 fashion items.

+35%

More add-to-carts for shoppers who saw a matching set.

+12%

More sales from the baskets those sets created.

Implementation: this is all it takes.

No model to train, no tagging, no manual linking. The product feed is the only input; the rest is one endpoint.

API · Matching sets
POST https://search.koral.nu/api/v1/search/matching-set
{ "productId": "YOUR_PRODUCT_ID", "feedId": "YOUR_FEED_ID" }

200 OK
{ "matches": ["231956529", "231955952"] }

Sets are generated ahead of time, so the endpoint just serves them, sub-second. Your team renders them where they belong.

Day 1

Feed connected

CSV, JSON or your platform feed. Koral generates the sets for every product in it.

Day 2–3

Endpoint wired

Your team calls the endpoint from your own components and places the result where it belongs.

Week 1

Live and measured

Pilot on one category, A/B-split, with events in your analytics. Then roll out market by market.

Good to know.

Generated ahead of time
Sets are built in the backend for the products in your feed, so the endpoint just serves them, sub-second.
Your components
Your team renders the response in your own modules, so it looks like the rest of your store.
Every market and app
Sets follow your product IDs, so the same call works across domains, markets and apps.
Analytics
Every pilot is A/B-split and measured on add-to-cart and sales, with events in your analytics.
Control
A rules engine for what shows where: categories, price bands, stock, margins and brand exclusions.
Review
Merchandisers see every generated set in the dashboard, test it on live products and remove what shouldn’t show.

Security and data.

Nothing is kept
Koral keeps nothing from shoppers. Photos and data are used for the request and not stored.
Processed in the EU
The script is served from a global CDN; requests are processed in the EU.
Uptime
99.9% uptime SLA.
Data processing agreement
A data processing agreement (DPA) comes with every contract.
Your product data
Product data stays yours; nothing is trained on it.

Questions about data processing? Write to hello@koral.nu. Privacy policy →

FAQ

Frequently asked questions.

Also from Koral

See Koral on your own catalogue.

Start with a free demo page on your own catalogue, then a one-month pilot at 50% off list prices. All we need is a product feed. Tell us a little about your store. We answer fast.

Prefer email? hello@koral.nu