The small things that finish the basket.
For every product, Koral finds what belongs with it: care, parts and add-ons, priced small enough to add without thinking. One set, four moments in the journey.
- How shoppers meet it
- Always on
- What it needs
- Your feed and a product ID
- Status
- Live on Boozt and Magasin
One set, four moments.
Product page
“Don’t forget” under the buy box: a short list of add-ons, with add-all in one tap.
Added-to-basket step
In the panel after add to basket, while the decision is still warm.
Basket & checkout
A quick-add row under the basket line, never above the checkout button.
After the purchase
On the confirmation page and in the dispatch mail, with a replenishment nudge later.
See it in action.
Four moments
The same set on the product page, in the added-to-basket panel, in the basket and in the order mail.
In the added-to-basket step
The panel after add to basket: a few add-ons, and add-all in one tap.
After the purchase
The dispatch mail suggests the care products, and a refill mail follows 30 days later.
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.
POST https://search.koral.nu/api/v1/search/complementary
{ "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.
Feed connected
CSV, JSON or your platform feed. Koral generates the sets for every product in it.
Endpoint wired
Your team calls the endpoint from your own components and places the result where it belongs.
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 →
Frequently asked questions.
Items that belong with the seed product: care products, laces and socks for shoes, bulbs for a lamp, cushions for a sofa.
Matching sets shows the pieces that belong together, across brands. Complementary products shows the add-ons that go with the product, across categories.
No. Every basket line is a seed, and the set is filtered against what the shopper already has.
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.
Thanks — we'll be in touch.
We've got your message. We answer fast.
Prefer email? hello@koral.nu