Get in touch
  • OpenCart
  • Sales and conversion
  • v1.0.2

Cart Discounts (Amount-Based and N+1) for OpenCart

Module for OpenCart 2.3–4.x: tiered order-amount discounts and "buy 2, get the third free" deals on products and categories, in-cart progress toward the discount, correct VAT.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Version
v1.0.2 (OpenCart 4)
v1.0.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Licence
two sites, lifetime
Trial
7 days, no card, one per site
Updated
26 October 2026
Or all 173 Pro modules with All Access — 4 990 ₴ / year

The module in action — 47 sec

Clear even without sound: Ukrainian subtitles

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Tiered order-amount discount: "5% off from 2,000 UAH, 10% off from 5,000 UAH" ✔ ✔
Discount as a percentage or a fixed amount ✔ ✔
N+M deals: "buy 2, get the third free" or "third at 50% off" ✔ ✔
In N+M deals, the cheapest units in each group get the discount ✔ ✔
Limit on how many times a deal can fire in one order ✔ ✔
Rule scope: whole catalogue, categories (with subcategories), or individual products ✔ ✔
Products on an OpenCart special price can be excluded from a rule ✔ ✔
"X more to your next discount" line with a progress bar in the cart ✔ ✔
Cart shows the discount the customer has already earned ✔ ✔
Each rule is a separate named line in the totals, the email and the order ✔ ✔
Tax is recalculated with the discount, just like the core coupon ✔ ✔
Combination mode: stack N+M deals and the amount-based discount, or apply only the best one ✔ ✔
Multi-store: rule limited to selected stores ✔ ✔
A rule is disabled, not deleted — saved for the next promotion ✔ ✔
1 amount-based discount rule and 2 N+M deals at once ✔ ✔
Unlimited active rules — ✔
Scheduled rule activity: from date to date — ✔
Rules for specific customer groups — ✔
Promotion badge on the product page — ✔

What it looks like

Amount-based discount and 2+1 promotion in the OpenCart cart
Cart: 2+1 promotion, amount-based discount, progress toward the next threshold, and separate lines in the totals
List of discount rules in the OpenCart admin
Discount rules: type, condition, products, period and status toggle
Setting up amount-based discount thresholds in OpenCart
Discount thresholds: minimum amount, percentage or amount off, which products it applies to

Key points

What the customer sees

Above the cart table, the module displays discounts already in effect and a line reading “Add … more to your cart to get … off” with a progress bar.

What the admin gets

One page under Extensions → Modules: the list of rules, settings and licence.

Amount-based order discount

A rule consists of thresholds: from which amount, and what discount applies. The highest threshold reached is the one that fires; lower ones aren’t added on top.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 4.x, 3.x and 2.3 are supported, along with ocStore on these versions — separate archives for each branch. PHP 7.0 or later for 2.3; for 3.x and 4.x, whatever version your OpenCart runs on. The module has been tested on OpenCart 4.1.0.3, 4.0.2.3, 3.0.5.0 and 2.3.0.2.
  • The module works with the stock OpenCart cart. If you use a third-party checkout module, discounts will appear in the totals as long as it calculates totals through OpenCart’s own mechanism.

Version history

v1.0.2 OC 4.x v1.0.1 OC 3.x v1.0.1 OC 2.3 Current 26 October 2026

A purchased licence for OpenCart now works without expiry.

v1.0.1 OC 4.x 26.09.2026

The cart and the checkout work again on the PDO database driver when a rule excludes products on special.

v1.0.0 First release

Tiered order-amount discount (percentage or fixed amount), N+M deals with distribution to the cheapest units, a limit on how many times a deal can fire, rules for the whole catalogue,…

Frequently bought with Cart Discounts (Amount-Based and N+1) for OpenCart

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Cart Discounts (Amount-Based and N+1) Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
3 590 ₴ lifetime instead of 5 960 UAH bought separately
Buy the bundle →

Full module description

Cart Discounts (Amount-Based and N+1) is a module for OpenCart 2.3, 3.x and 4.x that gives the customer an automatic discount: tiered discounts based on order amount (“5% off from 5,000 UAH, 10% off from 15,000 UAH”) and quantity-based deals (“buy 2, get the third free”). No coupons, no editing prices on product pages, and no code the customer has to find somewhere.

The cart itself shows the customer which discount they’ve already earned and how much more they need to add to reach the next threshold. In the order, each discount is a separate line with its own name, so both the manager and the accountant can see exactly what reduced the total.

Why a store needs this

The simplest way to raise the average order value is to promise more for a bigger purchase. “10% off from 3,000 UAH” only works if the customer knows about it at the exact moment they’re deciding whether to add one more item. They’ve long since scrolled past the banner on the homepage, and nothing in the cart reminds them of the offer.

“2+1” promotions are just as popular in clothing, cosmetics and home goods. In stock OpenCart these are done with a coupon or by manually setting a price — and both break the moment the customer puts different products at different prices into the cart.

The module covers both scenarios. Rules are set up once, and the discount is calculated in the cart automatically for every customer.

What the customer sees

Above the cart table, the module displays discounts already in effect and a line reading “Add … more to your cart to get … off” with a progress bar. Change the quantity, and the line updates along with the cart. In the totals, each rule appears as its own line, and tax is recalculated with the discount already applied.

What the admin gets

One page under Extensions → Modules: the list of rules, settings and licence. The list shows the rule type, its condition in one line (“5,000 UAH → 5% · 15,000 UAH → 10%” or “Buy 2, get 1 more at 100% off”), which products it applies to, its active period and a toggle. A disabled rule isn’t deleted — next season you only need to switch it back on.

Amount-based order discount

A rule consists of thresholds: from which amount, and what discount applies. The highest threshold reached is the one that fires; lower ones aren’t added on top. The discount is set as a percentage or a fixed amount, and the amount is calculated excluding tax and shipping — the same way “Sub-Total” is calculated in the cart totals.

A rule can be limited to categories (subcategories are included automatically) or to specific products, and products already on an OpenCart special price can be excluded so you don’t stack a discount on a discount.

N+M deals: “buy 2, get the third free”

The condition is set with three numbers: how many to buy, how many to get, and at what discount — 100% means free, 50% means half price. You can also limit how many times the deal can fire in a single order.

If the products in the deal have different prices, the module sorts them from most to least expensive and splits them into groups. In each complete group, the cheapest units get the discount. This way the deal can’t be gamed by putting an expensive item next to a cheap one in the cart.

How rules combine

By default, N+M deals fire first, and the amount-based discount is calculated on what’s left. A single unit of a product never gets two discounts: an item given away in an N+M deal doesn’t count toward the amount threshold.

If deals shouldn’t stack, the mode can be switched to “only one rule — whichever gives the largest discount.”

How it works, step by step

1. You create a rule: an amount-based discount with thresholds, or an N+M deal, and choose the products or categories.

2. The customer adds products to the cart. The module checks which rules apply to this store and this cart.

3. N+M deals are calculated first, then the best available amount-based threshold on the rest of the cart.

4. Each discount is added to the totals as a separate line, and tax is reduced proportionally to the products it applied to.

5. At checkout, the same lines are recorded in the order, the customer’s email and the invoice.

Under the hood

A discount is a separate Order Total with sort order 4, i.e. before tax — the same way the core coupon works. The module doesn’t change product prices in the cart and doesn’t modify core files: no OCMOD modifications, no template overrides.

The block in the cart and the badge on the product page are added via OpenCart events on top of whatever the theme already renders. Rules are stored in their own tables; uninstalling the module doesn’t erase them, so an accidental click doesn’t wipe out all of the store’s promotions.

How to install

1. Download the archive for your version: on OpenCart 4.x and 3.x, via Extensions → Extension Installer. On OpenCart 2.3 the installer only works over FTP, so the contents of the upload folder are uploaded to the store’s root.

2. Extensions → Modules → “CatCode Cart Discounts (Amount-Based and N+1)” → Install. The discount line in the order totals is installed together with the module.

3. Open the module, enable it on the Settings tab and save.

4. On the Rules tab, create an amount-based discount or an N+M deal and check it in the cart.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
How is this different from a coupon or OpenCart's core discounts?

OpenCart's core discounts are tied to a single product and the quantity of that same product, and a coupon has to be entered by the customer. The module gives a discount automatically: based on the whole cart's amount or on the quantity of products from a category, with no code and no editing prices on product pages.

How is "buy 2, get the third free" calculated if the products have different prices?

Products are sorted from most to least expensive and split into groups of three. In each complete group, the cheapest item becomes free. This way the deal can't be gamed by putting an expensive item in the cart next to a cheap one.

Do the amount-based discount and an N+M deal stack?

By default, yes, but a single unit of a product never gets two discounts: an item that already went into an N+M deal doesn't count toward the amount threshold. You can switch the mode to "only the best rule."

Is VAT calculated correctly?

Yes. Tax is reduced along with the discount, proportionally to the products it applied to, the same way the core coupon works. Fixed fees such as an eco-tax are unaffected.

Does the manager see the discount in the order?

Yes. Every rule that fired is recorded in the order as a separate named line — in the email, the invoice and the admin panel, it's clear exactly what caused the discount.

What happens to the rules if I uninstall the module?

The rules stay in the database. After reinstalling, they're still there — you only need to enable the module again.

Which OpenCart versions are supported?

4.x, 3.x and 2.3, as well as ocStore on these versions.

Is the licence annual or perpetual?

For OpenCart it's perpetual: one payment, no annual fees.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module