• Online Stores · OpenCart

Promo codes and discounts: a complex rule nobody tested costs more than the discount itself

Discounts rarely break one at a time. What breaks is their combination: a sale price plus a promo code plus free delivery above a certain total — and the order goes into the red. Or the other way round: a customer enters the promised code and it does not apply, because the cart contains a product from an excluded category, and nothing says so. We set up discounts so that the order in which they apply is defined in advance rather than discovered on live orders.

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 20 working days

free review of your discount terms
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

  • discount rules with a defined order of application, recorded in writing
  • a decision on stacking: which discounts combine and which exclude each other
  • promo codes with limits: validity period, number of uses, categories, minimum order total
  • one-time and personal codes, if you need them
  • visibility in the cart: the buyer sees what got cheaper and by how much
  • a clear explanation when a code is not applied: the specific reason, not just “invalid”
  • protection against code guessing and reuse
  • testing edge cases before launch: minimum total, excluded categories, returns
  • instructions on creating new promotions without a developer
When this service isn't right

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

  • setting the size of discounts — that is the owner's decision, and it depends on margin
  • developing a promotion strategy and a promotions calendar
  • promises of sales growth from promotions
  • covering losses from a badly configured condition
  • managers' work with customers who demand a discount
Who it's for

Situations where this service delivers results

Scenario 1 of 4

A store that runs promotions regularly

The more frequent the promotions, the higher the chance that two of them overlap. Without a defined order of application, this only surfaces on real orders.

We'll review your situation in a free audit

Free review of your terms

We take your current discounts and look at where they overlap. Most often the problem is not a single promotion but the way they combine.

What we measure

  • How many discount types are active at oncePromotion, promo code, loyalty, wholesale, free delivery. The more types, the more pairs need testing.
  • What happens when they coincideDo they stack, does the larger one win, or does the first one apply? Most often nobody knows the answer until they see a strange order.
  • Whether there are excluded categoriesProducts with minimal margin or made to order often have to be excluded from discounts, and this has to work automatically.
  • What the buyer sees when a code is rejected“Promo code invalid” with no explanation is a typical cause of inquiries to the manager and of a feeling of being cheated.
  • How the codes are protectedShort predictable codes get guessed, and one-time codes without a limit get reused.
  • Who creates promotions nowIf every promotion needs a developer, you either do not run them or run them at risk.

What you get

  • a map of your discounts and the places where they overlap
  • a list of cases that are currently undefined
  • a proposed order of application
  • an estimate of the scope of work

Timeline: 1–3 working days

Why is it free

Half of the problems are visible from the list of your terms alone, without any code. There is no reason to charge for that.

What's next

You get the map and a proposal. Then you decide for yourself — the document stays with you.

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

  • Number of discount typesA single promo code is a simple rule. Five discount types produce dozens of combinations, and each has to be defined and tested.
  • Whether discounts should stack“Only one discount per order” is the simplest and safest option. Stacking requires priority rules and a cap on the combined percentage.
  • Category exclusionsThe list of products excluded from promotions has to be updated without a developer, otherwise it goes out of date after the first change in the range.
  • Personal codesA mass code is simple. Personal one-time codes mean generating them, linking them to a customer and tracking usage.
  • Interaction with deliveryA discount on the order total affects whether the customer reaches the free delivery threshold. This has to be decided consciously.
  • State of the cart codeIf discounts have already been added on top of the standard ones, we first need to understand the existing logic — this is the least predictable part.
Cases

Tasks and results in numbers — all metrics measured by us

an online store delivering sweets, snacks and gift sets

Task
Sell sweets, snacks and gift sets with delivery across Ukraine: a catalog with filters by type and occasion, a cart with delivery options, online payment. A particular focus is the speed of the mobile version, because in this niche most orders are impulse purchases made from a phone.
Solution
A store on OpenCart 3.x (octemplates/OCT theme, HTTP/2). Connected: 5 online payment methods — LiqPay, WayForPay, Privat24, Visa, Mastercard — and 4 delivery methods: Nova Poshta, Ukrposhta, pickup, courier. Implemented free delivery to a Nova Poshta branch for orders from UAH 2,500 (a banner on the home page), and contact via Telegram, Viber, WhatsApp, Instagram and Facebook.
Result
As of 31 July 2026 the store is live (HTTP 200, HTTPS): the first server response takes 403 ms and the full HTML loads in 532 ms; LiqPay, WayForPay and Privat24 online payment and Visa/Mastercard cards are connected, plus 4 delivery methods; the home page shows free Nova Poshta delivery for orders from UAH 2,500.

Kvant Energy

a retail online store for heating equipment, a catalog of ~3,500 SKUs

Task
Bring the full range of heating equipment online (bimetallic radiators, electric radiators, breezers, fan heaters, underfloor heating, thermostats), with navigation and filters for comparing technical specifications and a checkout that serves both retail buyers and sole proprietors or companies paying VAT.
Solution
A store on OpenCart 3 (oct_showcase theme, nginx). Two language versions, uk/ru, with correct hreflang and x-default. Checkout with monobank, cash on delivery via the carrier, cash at pickup and a bank-transfer invoice for sole proprietors and companies paying VAT. Four delivery methods: Nova Poshta, Meest Express, Delivery Auto, pickup in Kharkiv. Connected: GTM/GA4, Google Maps, Telegram/Viber/WhatsApp messengers.
Result
3,565 product cards in the live catalog (measured on 31 July 2026 with the standard OpenCart search and an empty query: 36 pages of 100 items, the last one with 65). TTFB 0.52 s, full HTML load 0.66 s at 296 KB of markup. 4 payment methods and 4 delivery methods at checkout. Two language versions with valid hreflang and x-default.

Did not find your case?

Describe how it works on your side — we will tell you whether “Promo codes and discount rules” 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. Reviewing the terms

    1–3 working days

    We map your existing discounts and find where they overlap. We show the cases that are currently not defined at all.

  2. Order of application

    1–2 working days

    We record in writing what stacks with what, what excludes what, and the maximum combined percentage. The decisions are yours.

  3. Implementing the rules

    3–8 working days

    We build discounts and promo codes with limits on validity period, number of uses, categories and minimum order total. We work in a test environment.

  4. Visibility and explanations

    1–3 working days

    We show in the cart what got cheaper and by how much, and explain the reason when a code does not apply.

  5. Edge cases

    2–5 working days

    We test minimum totals, excluded categories, partial returns and behavior when the order contents change after a discount is applied.

  6. Handover

    1–2 working days

    We show how to create new promotions without a developer and hand over the documented rules. After that, a 30-day warranty applies from the date the acceptance act is signed.

Technologies & integrations

What we build on and what it connects to

Stack

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

Integrations

  • Google Analytics 4
  • Google Tag Manager
  • CRM
  • Email
  • Telegram
Rules in the system or approval by a manager

How this option differs from the alternative

Predictabilitythe same discount under the same conditions
Speedthe buyer sees the price immediately
Risk of errortested combinations
Flexibility in a complex caseunusual cases still go to the manager
When the second option is enough—
What we need from you

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

  1. a list of discounts that are active or planned
  2. whether they should stack
  3. which categories or products are excluded from discounts
  4. who issues promo codes and to whom
  5. what to do when part of a discounted order is returned
  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

Should discounts stack?

That is your decision, and it has to be made before implementation. The safest option is “one discount per order, the larger one wins”: buyers understand it and it causes no margin surprises. Stacking is possible, but then you need a cap on the combined percentage, otherwise sooner or later you will get an order at a loss.

Why does a promo code “not work”?

Most often it works correctly, but the reason is invisible: the cart contains a product from an excluded category, the total is below the minimum, or the code has already been used. The main mistake here is to show “invalid” with no explanation. We show the specific reason: this both cuts inquiries to the manager and removes the feeling of being cheated.

How do you protect codes from guessing?

With sufficient length and unpredictability, a limit on the number of attempts and an expiry date. Short codes like SALE10 are guessed within minutes, and then the discount spreads far beyond your mailing list.

What happens when part of an order is returned?

This has to be decided before launch. If the discount applied above a certain total and part of the goods was returned, the total fell below the threshold — and formally the discount no longer applies. There is usually only one honest and practical option: do not recalculate retroactively, but it must be a conscious decision, not an accident.

Do you guarantee sales growth from promotions?

No. We are responsible for the rules working predictably and not eating into your margin unexpectedly. Whether the promotion itself works depends on the offer, the price and the audience — and that is your area, not ours.

How long does it take?

8 to 20 working days. The implementation itself is quick; the time goes into decisions about the order of application and into testing combinations. The more discount types, the longer the testing.

Will we be able to create promotions ourselves?

Yes, and that is part of the work. If every promotion needs a developer, you either do not run them or run them in a rush and at risk. We hand over instructions and show which parameters are safe to change on your own.

Is a delivery discount the same thing?

No, and this is a common confusion. Free delivery above a certain total is a separate rule with its own exceptions for heavy goods. It interacts with discounts: if a discount lowers the order total, the customer may no longer reach the threshold. This has to be agreed on consciously.
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 find where your discounts overlap

The review is free: we will show the combinations that are currently undefined and what they put at risk. We reply within 2 hours.

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.