• Online Stores · OpenCart

Upsell in the cart: an offer makes sense when the product doesn't work without it

Related products sell themselves when the buyer understands the link: a printer needs a cartridge, paint needs a roller, a razor needs spare blades. And they never sell when the cart shows random items from the same category. The difference is not in how the offer is displayed but in where the links came from. We build them from your compatibility and bundling data, not from assumptions.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Focus
online stores, mostly OpenCart
after a free audit
Price
Guarantee

days after project sign-off

online stores, mostly OpenCart
Focus
Timeline

to 22 working days

free review of product links
Start
Warranty

days from the date the acceptance act is signed

within 2 hours
Reply
under a written contract
Terms
What's included

Complete list of work and what you get as a result

  • “this product needs that” links based on your compatibility data
  • separating two different mechanics: an add-on to a product and an alternative to it
  • cart offers that don't get in the way of reaching payment
  • a cap on the number of items shown: the cart has to stay a cart
  • hiding items that are out of stock
  • offers on the product card, if they fit better there than in the cart
  • analytics events: how many impressions, how many adds, from which pairs
  • rules for new products, so links don't have to be set up by hand every time
  • a report on pairs that don't work — they are worth removing
When this service isn't right

What's not included — so there are no surprises at delivery

  • pushing more expensive alternatives instead of the chosen product
  • inventing compatibility between products
  • promises of a higher average order value
  • buying in related stock to fill the offers
  • showing offers at the final payment step
Who it's for

Situations where this service delivers results

Scenario 1 of 4

A store selling equipment with consumables

The clearest case: cartridges, filters, attachments, batteries. The link is obvious to the buyer, and the offer reads as help rather than a sales pitch.

We'll review your situation in a free audit
Free review of product links

We check whether your data gives grounds for recommendations: without them, any mechanic will show random items.

What we measure

  • Whether there is compatibility dataAccessory compatibility, matching consumables, mount sizes. If the data doesn't have this, there is nothing to build links from.
  • Whether there are co-purchase statisticsOrder history shows what people actually buy together. It is the most reliable source of links, and you already have it.
  • What is shown nowMost often the “similar products” block lists competitors of the chosen item. That gets in the way of the decision instead of helping it.
  • Where offers fit betterFor some categories it is the product card, for others the cart. There is no universal answer, and we look at your case.
  • Whether offers account for stockOffering a product that isn't available is more irritating than offering nothing.
  • What should never be offered togetherSome pairs look logical to the system and absurd to the buyer. Such exceptions need to be defined in advance.

What you get

  • an assessment of whether there is anything to build links from
  • example pairs from your order history
  • a recommendation on where to show offers: product card or cart
  • an estimate of the scope of work

Timeline: 1–3 working days

Why is it free

The key question is whether your data gives grounds for recommendations. That becomes clear within an hour of work, and there is nothing to charge for such a check.

What's next

You get examples and an estimate. What to do next is your decision.

Short form: your contact and site URL

We work officially

Contract, act and invoice — for every project, not just large ones.

Trusted by6 brands

Trusted by: Kvant Energy, GYPSUN, Naturel Cosmetics, Pancer Protection, LUGI, BeeTech

Terms fixed in writing8 points
  • 01

    Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • 02

    Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • 03

    Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • 04

    Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • 05

    Sites in nine countries

    Our sites run in nine countries: besides Ukraine — Poland, Germany, Austria, England, Norway, Bulgaria, Moldova and Spain.

  • 06

    Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • 07

    Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • 08

    We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

  • 01

    Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • 02

    Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • 03

    Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • 04

    Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • 05

    Sites in nine countries

    Our sites run in nine countries: besides Ukraine — Poland, Germany, Austria, England, Norway, Bulgaria, Moldova and Spain.

  • 06

    Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • 07

    Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • 08

    We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

We sign NDAs on request. After completing the work, we delete our access to your services ourselves.

What affects the price

Why two seemingly identical tasks are priced differently

  • Where the links come fromReady-made compatibility data is the simplest case. Building links from order history requires separate work with the data.
  • Number of categoriesA couple of categories with obvious add-ons is quick. The whole catalog means rules for every product group.
  • Where to show offersThe cart, the product card, the post-checkout page: different places with different logic and a different risk of getting in the buyer's way.
  • Stock awarenessOffers have to be checked for availability at the moment they are shown, otherwise they spoil the impression instead of helping.
  • Rules for new productsWithout them, links have to be set up by hand every time, and within six months the block starts showing outdated items.
  • AnalyticsWithout events there is no way to tell which pairs work. It is a small part, but without it the whole job remains guesswork.
Cases

Tasks and results in numbers — all metrics measured by us

LadyLand

an online store of professional cosmetics and care products, with a catalog of over 5,000 SKUs

Task
Bring a large range of professional cosmetics into one catalog, with navigation by brand and product type, product cards with detailed ingredients and purpose, and payment and delivery terms a retail buyer can understand.
Solution
A store on OpenCart 3 (lightshop theme, nginx). A catalog organized by brand and product type. Free delivery on orders from 4,000 UAH; payment either in full upfront to the sole trader's account or cash on delivery with a 200 UAH deposit. Organization and PostalAddress microdata. Social channels: Telegram, Instagram, Facebook, TikTok.
Result
5,561 products in the live catalog (measured on 31 July 2026 with an empty-query OpenCart search: 56 pages of 100 items, the last one holding 61). Home page HTML 154 KB, TTFB 0.80 s. The home page carries Organization + PostalAddress microdata.

Pancer Protection

an online store of tactical and military gear with a catalog of over 50,000 SKUs

Task
Hold an oversized assortment of tactical gear (body armor, clothing, footwear, backpacks, comms, optics) in a single store with detailed filtering by attributes — without losing page response speed.
Solution
A store on OpenCart 3 (chameleon theme + NeoSeo modules) behind Cloudflare. Two language versions. Full local-store JSON-LD markup: Store, Place, GeoCoordinates, PostalAddress, OpeningHoursSpecification, ContactPoint, WebSite, SearchAction. At checkout: LiqPay, card online, cash on delivery, cash on collection, bank transfer and online installments (dataLayer events). Binotel telephony, eSputnik email marketing, Google sign-in, GTM, GA4, Google Ads.
Result
54,302 products and 635 categories — the figure is confirmed by two independent methods: a sitemap index of 32 product files gives 110,096 URLs across two languages, and a cross-check through OpenCart search gives 54,501–54,600 items (a 0.4% discrepancy). A catalog of 54,000 SKUs returns the first response in 0.41 s and the full HTML in 0.51 s at 422 KB. Nine JSON-LD types on the home page. Five payment methods, including LiqPay and online installments. Measured 31 July 2026.

Did not find your case?

Describe how it works on your side — we will tell you whether “Upsell and cross-sell in the cart” fits and what it means in your situation. No brief and no call: one question, one answer.

Process steps

Transparent stages with approval at every step

Total duration:5–20 days

  1. Data review

    1–3 working days

    We check whether there is compatibility data and what the co-purchase history shows. If there is no basis, we say so right away.

  2. Building the links

    2–8 working days

    We put together “product — add-on” pairs for the chosen categories. Disputed pairs go to you: you know the product better.

  3. Where and how offers appear

    1–3 working days

    We decide where to show offers and how many items. The main rule: an offer must not add steps before payment.

  4. Implementation

    2–6 working days

    We build the block with a stock check and a cap on the number of items. We work in a test environment.

  5. Analytics

    1–3 working days

    We set up events for impressions and add-to-cart, so you see not an overall figure but the specific pairs that work.

  6. Rollout and review

    1–2 working days

    We roll it out, check the pair statistics after a few weeks and remove the pairs that don't work. A 30-day warranty from the date the acceptance act is signed.

Technologies & integrations

What we build on and what it connects to

Stack

  • OpenCart
  • WooCommerce
  • PHP
  • JavaScript
  • TypeScript
  • MySQL
  • MariaDB
  • PostgreSQL
  • Next.js
  • Git

Integrations

  • Google Analytics 4
  • Google Tag Manager
  • 1C
  • BAS
  • CRM
  • XML/YML price feeds
Links from data or a “similar products” block

How this option differs from the alternative

What is shownadd-ons to the chosen product
How the buyer reads itas help: “oh, I need this too”
Where the items come fromcompatibility and co-purchases
Effect on checkoutadds no steps
Complexityhigher: link data is needed
What we need from you

We can't start without this — best to prepare in advance

  1. compatibility or bundling data for your products, if you have it
  2. access to order history to analyze co-purchases
  3. which categories bring the most revenue
  4. what should definitely not be offered together
  5. where you want offers shown: in the cart, on the product card, or both
  6. who on your side accepts the work

If something is missing — let us know, we'll help you gather it or do it as a separate task.

FAQ

Most frequently asked questions — with concrete answers

How is upsell different from cross-sell?

Upsell offers a more expensive version of the same thing; cross-sell offers an add-on to what was chosen. In the cart it is mostly the second that fits: the person has already decided what to buy, and offering a different model sends them back to choosing. We keep these mechanics separate because they are often confused and shown in one block.

Where do the links between products come from?

From two sources: your data on compatibility and bundling, and the history of items bought together. The second source is usually already in the system and costs nothing. We will not invent links: an offer that makes no sense spoils the impression of the whole cart.

Won't the offers get in the way of checkout?

They will if they are put in the wrong place. So the main rule is that the block adds no steps before payment and does not appear on the final screen. We deliberately limit the number of items shown: the cart has to stay a cart, not turn into a second shop window.

Do you guarantee a higher average order value?

No. The mechanic helps buyers remember what they need, and in categories with obvious add-ons the effect is noticeable. But we don't quote figures: they depend on the assortment and on how strong the links between your products are. Instead of a promise, we set up analytics events that show each pair separately.

What do we do with pairs that don't work?

Remove them. A few weeks after launch you can see which pairs get added to the cart and which don't. Pairs that don't work only take up space and dilute attention — and removing them is part of the work, not a separate service.

What if the related product is out of stock?

Then it is not shown. Offering a product that isn't available is more irritating than offering nothing: the buyer decides to add it and the system refuses. Checking stock at the moment of display is a mandatory part.

Where is it better to show offers: on the product card or in the cart?

It depends on the category. For equipment with consumables the product card fits better, because the person is still thinking about the full set. For small add-ons the cart is better, once the decision on the main product has been made. There is no universal answer, and in the review we look at your case.

How long does it take?

7 to 22 working days. The block itself is quick to build; the time goes into building the links and deciding on disputed pairs, where your knowledge of the product is needed.
Demo

Your catalogue on a phone screen

This is how your store can look on a phone: a collection banner, popular products and a cart one tap away. Tap “Add to cart” and the counter in the header updates, just like in a real store.

  • Collection bannerThe first screen shows what is new, not a logo.
  • Product cardsPhoto, price and a button — no extra page to open.
  • One-tap cartThe counter in the header updates instantly, like in a real store.
Stores in the portfolio

This is a demo interface, not a client's store. Live projects are in the portfolio.

SHOP
New collectionAutumn / WinterExplore
PopularAll products ›
  • Essentials Hoodie1 290 ₴
  • Urban Backpack1 490 ₴
  • Classic Cap690 ₴
  • Basic Tee590 ₴
  • Street Sneakers2 390 ₴
  • Active Shorts890 ₴

Let's check whether there is anything to build product links from

The review is free: we look at your compatibility data and co-purchase history and show example pairs.

From measured cases54,302 products and 635 categories

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.