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

Option Specials for OpenCart — a special price on a single option value

A special on one option value in OpenCart 4, 3 and 2.3: "256 GB" on sale while "128 GB" keeps its usual price. A new surcharge or a percentage off, the old price struck through and a -N% badge on the product page, and in the cart and the order the special price sits right in the product line. The base version is free; Pro adds customer groups, dates and priority, with a lifetime licence.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Compatibility
OpenCart 4.0.2 – 4.1.x, 3.0.x and 2.3.0.2 (tested on 4.1.0.3, 4.0.2.3, 3.0.5.0, 2.3.0.2) · PHP as your OpenCart version requires (tested on 7.0, 8.2, 8.3) · mysqli and PDO database drivers
Version
v1.1.1 (OpenCart 4)
v1.1.1 (OpenCart 3.x)
v1.1.1 (OpenCart 2.3)
Licence
one site, lifetime
Trial
7 days, no card, one per site
Updated
September 2026
Or all 144 Pro modules with All Access — 4 990 ₴ / year

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
A special price on a single option value: "256 GB" on sale, "128 GB" at the usual price ✔ ✔
Two kinds of special: a new option surcharge (+ or −) or a percentage off the regular surcharge ✔ ✔
Product page: the new price, the old one struck through and a -N% badge — for select, radio and checkbox ✔ ✔
The special price in the cart line, the order, the invoice and the mini-cart — no separate discount line ✔ ✔
Taxes, product discounts and a second currency are calculated from the special price ✔ ✔
Works with the standard checkout and with One Page Checkout ✔ ✔
A cart note "Option specials take X off this cart" — switched on in the settings ✔ ✔
A grid of all option values of a product with their regular price; search only among products with options ✔ ✔
A list of products with specials and a "Clean up" button for rules of deleted values ✔ ✔
No core file edits, option prices in the catalogue are never rewritten ✔ ✔
Builds for OpenCart 4.x, 3.x and 2.3; admin in Ukrainian, Russian, English ✔ ✔
Option values on special at a time up to 5 unlimited
Rules per value 1 several
A separate special price per customer group (retail, wholesale) — ✔
Schedule: start and end dates of a special — ✔
Rule priority — ✔

What it looks like

OpenCart 4.1 product page: option values with a special price, the old price struck through and a -N% badge
Product page (OpenCart 4.1.0.3): Checkbox 1 normally costs +420 ₴, its special is +210 ₴, so the module adds the struck-through +420.00 ₴ and a -50% badge. Checkbox 2 and Medium are 40% and 25% off their surcharge. Values without a special are unchanged.
OpenCart 4.1 cart with a special option: the unit price is already reduced, a savings note above the list
Cart: Apple Cinema 30″ with special options — the $135.20 unit price is already the special one, Total $270.40, no separate discount line in the totals. Above the list: “Option specials take $72.00 off this cart.”
Option Specials module in the OpenCart 4.0.2 admin: Option specials, Settings and Licence tabs
The admin in Ukrainian (OpenCart 4.0.2.3; in English the tabs are “Option specials”, “Settings” and “Licence”): product search and the list of products with specials. The orange banner is a reminder that the module is still disabled.

Key points

What the admin gets

Extensions → Modules → Option Specials, three tabs: “Option specials”, “Settings” and “Licence”.

How much it costs

The base version is UAH 0 and not time-limited: specials on 5 option values at a time, for every customer, without dates.

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 — one site

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. If our server is unreachable, Pro keeps working for 14 more days. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 4.0.2 – 4.1.x (tested on 4.1.0.3 and 4.0.2.3), 3.0.x (tested on 3.0.5.0) or 2.3.0.2.
  • PHP as your OpenCart version requires: the 2.3 build was tested on PHP 7.0, the 3.x build on 8.2, the 4.x build on 8.3.
  • Database: MySQL/MariaDB with the mysqli or PDO driver (both tested).
  • The standard OpenCart cart class. If another extension has replaced it with its own, Option Specials does not swap the cart: the special is visible on the product page, but the cart charges the regular price. Likewise, an OCMOD modification that rewrites the option value query in the cart can switch the special off in the cart.
  • Theme. The old price and the badge are added to OpenCart’s standard option markup; tested on the default themes of 4.x, 3.x and 2.3, not on custom themes. If a theme heavily changes the option markup, the struck-through price and the badge may not appear; the special price in the cart and the order does not depend on the theme.

Version history

v1.1.1 Current September 2026

First public release for OpenCart 4.x, 3.x and 2.3.

Frequently bought with Option Specials for OpenCart

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Option Specials Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 144 modules in All Access for 4 990 ₴.
3 590 ₴ lifetime instead of 5 960 UAH bought separately
Buy the bundle →

Full module description

Option Specials for OpenCart puts a special on a single option value. A “128 GB” phone sells at its usual price while “256 GB” is on sale; a T-shirt is cheaper in red than in other colours; gift wrapping is free this week. Out of the box OpenCart cannot do this: its special changes the price of the whole product, and an option surcharge in the product form is always one fixed number.

A special is set on an option value in one of two ways: a new surcharge (with + or −) or a percentage off the regular surcharge. On the product page the shopper sees the new price, the old one struck through and a -N% badge, and in the cart and the order the special price sits right in the product line — no separate “discount” line — so taxes, the total, the invoice and the amount paid match what the shopper saw. The module does not edit OpenCart core files and never rewrites option prices in your catalogue. One licence, three builds: OpenCart 4.x, 3.x and 2.3.

What the buyer sees

  • The new price where the shopper looks for it. The theme prints the special surcharge in brackets next to the value, and the module adds the old one struck through and a red -N% badge. In a drop-down (select) it reads: “Name (+new) — was +old, -N%”.
  • An honest badge. The percentage comes from the two visible prices, not from raw figures in the database, so -51% on the page really is 51% off what is shown.
  • A cart without surprises. The unit price in the cart is already the special one, and the sub-total and taxes follow it. The shopper never sees the price “jump back” on the way to checkout.
  • How much was saved. Optionally a line “Option specials take X off this cart” appears above the cart items.

What the admin gets

Extensions → Modules → Option Specials, three tabs: “Option specials”, “Settings” and “Licence”.

  • Product search by name or model — only products that have options are listed.
  • The value grid. Pick a product and see all its option values (select, radio, checkbox) with the regular surcharge, each with “Add rule”. A rule is a type (“New price” or “Discount, %”), an amount or a percentage, and in Pro a customer group, priority and dates.
  • Checks before saving. A non-numeric or negative price, a discount over 100%, an end date before the start — the module names the value with the error and saves nothing.
  • Protection against a stale page. If the product’s rules were changed in another tab, saving from the old page is refused — the module asks you to reopen the product instead of silently overwriting someone else’s changes.
  • A list of products with specials with “values with rules” and “rules on” counters, bulk delete and a “Clean up” button that removes rules of values you deleted from the product form.
  • Display settings: show the old price, the -N% badge, the saving in the cart; load the module styles or style everything in your own theme.

Pro: customer groups, dates, priority

  • Customer group. A separate special price for retail, wholesale or any other group — or one for everyone.
  • Schedule. A start and an end date, both inclusive: set up a weekend special in advance and it switches on and off by itself.
  • Several rules per value. For example, 20% off for everyone and 35% off for wholesale. The rule with the lower priority wins, and on a tie the lower price — as with OpenCart product specials.
  • No limit on the number of values on special.

How it works — step by step

  1. You pick a product and set a rule on an option value: a new surcharge or a percentage off.
  2. On the product page the module puts the special surcharge into the option data the theme receives from OpenCart — so the theme prints the new price itself, and the module only adds the old price and the badge.
  3. At the start of every storefront request the module checks whether the shop has at least one active rule. If not, nothing happens.
  4. If it does, the module builds OpenCart’s standard cart once more, but for option values on special the cart receives the special surcharge instead of the regular one. Everything else — product, quantity, discounts, taxes — is calculated by OpenCart itself.
  5. From there everyone uses that cart: the cart page, the mini-cart, checkout, One Page Checkout, order total modules. The order is saved with the special price in the product line.
  6. A rule that would make the option dearer than usual is ignored — a special can never raise the price.

How much it costs

Pro is UAH 990, one payment, lifetime licence. No yearly payments. One licence for one domain covers all three builds — OpenCart 4.x, 3.x and 2.3. Moving the shop to another domain — click “Detach” on the Licence tab of the old shop and activate the key on the new one.

Trial first, payment later. A free 7-day Pro trial starts with a button on the Licence tab, one trial per shop. When it ends only the Pro rules switch off — they stay in the admin marked “Pro only”, and simple specials keep working.

Under the hood

  • No core edits. The module works through OpenCart events and a startup action. Core files are not changed and product_option_value.price is never rewritten, so removing the module returns the shop to regular prices with no clean-up in the catalogue.
  • Standard cart, special surcharge. The cart is built a second time by OpenCart’s own cart class, with only the answers to option value queries substituted. That is why taxes (fixed ones included), quantity discounts, currencies and order total modules work as usual.
  • Load. With no active rule the module runs one light query per page. With rules the cart is calculated twice per request — unnoticeable on a normal cart, a doubling of database queries on very large carts.
  • Its own rules table (product, option value, customer group, type, price, priority, dates, status) — several rules per value, like OpenCart’s product specials.
  • A feed interface. system/library/cc_optspecial/feed.php returns, for a list of option values, the same special price the cart charges. Our Market Feeds does not use it yet — that is planned.
  • Multi-store: rules are shared by all stores of the installation.
  • Uninstall. Uninstalling removes the events and the startup entry — the storefront charges regular prices straight away. The rules table is kept on purpose so that a reinstall does not wipe your specials. On OpenCart 2.3 uninstalling also deletes the settings together with the licence key — after a reinstall the key has to be activated again.

How to install

  1. OpenCart 4: Extensions → Installer → upload cc_optspecial.ocmod.zip (do not rename the archive) and click “Install”. OpenCart 3: Extensions → Installer → cc_optspecial-oc3.ocmod.zip, then Extensions → Modifications → Refresh. OpenCart 2.3: the 2.3 installer does not copy files without a configured FTP, so upload the contents of the upload/ folder from cc_optspecial-oc2.ocmod.zip to the shop root with your hosting file manager — no FTP setup in OpenCart needed.
  2. Extensions → Extensions → Modules → Option Specials → “Install”, then “Edit”.
  3. Settings tab: set Status to enabled and, if you like, the old price, the -N% badge and the cart saving. Save.
  4. Option specials tab: start typing a product name, pick it, click “Add rule” next to the value you want, set a new price or a discount and click “Save specials”.
  5. Open the product in the store and add it to the cart — the special price is already in the line.
  6. For Pro: paste the licence key from the email you get after payment, or start the 7-day trial on the Licence tab.

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 standard OpenCart special?

A standard special changes the price of the whole product: every size, colour and capacity gets cheaper by the same amount. Option Specials puts a special on one option value — only "256 GB" or only the red colour — and the other values keep their usual price.

Does the special price reach the order, or is it only shown on the page?

It reaches the order. The special price becomes the ordinary price of the product line with that option: the cart, taxes, the total, the order in the admin, the invoice and the mini-cart all use it without a separate discount line. Checked with real orders on OpenCart 4.1, 4.0.2, 3.0 and 2.3.

Does the module change option prices in my catalogue?

No. The regular option surcharge in the product form stays as it is; the module only substitutes the special one when the cart is calculated. Disable or remove the module and the shop charges the regular prices right away.

What happens when the Pro trial ends?

Rules with customer groups, dates or several prices per value stay where they are, marked "Pro only", and simply stop applying. Simple rules (for everyone, no dates) keep working within the 5-value limit. Buy a licence and everything switches back on — nothing has to be entered again.

What about Google and Meta feeds?

Honestly: not yet. Product-level feeds (Rozetka, Prom, Hotline) take the product price, which an option special does not change, so they show no mismatch. But feeds with a separate entry per option value (Google Merchant and Meta in our Market Feeds module) still show the regular price of that value. Feed support is planned; the module already has an interface that returns the special price of a value for a feed.

I already have a module that replaces the OpenCart cart. Will this work?

If another extension has replaced the OpenCart cart class with its own, Option Specials leaves the cart alone so as not to break someone else's logic: the product page shows the special, but the cart charges the regular price. Check it on your shop during the 7-day trial and let us know if that is the case; the module admin does not warn about such a conflict yet.

Does it work with order-total discount, bundle and One Page Checkout modules?

Yes, because the module does not add its own line to the totals — it changes the price of the product line itself. Checked on demo shops together with our Cart Discounts (the discount is calculated from the already reduced sum), Product Bundles and One Page Checkout.

Do the rules apply to every store of a multi-store setup?

Yes, rules are shared by all stores of one OpenCart installation. Per-store rules are not available yet.

How much is it, and do I pay every year?

The base version is free. Pro costs UAH 990 once; the OpenCart licence is lifetime, with no yearly payments. One licence for one domain covers all three builds.

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