
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.
- 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
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.
What it looks like
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
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


Nova Poshta Premium — a Nova Poshta module for OpenCart 2.3, 3.x and 4.x

LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x

Telegram notifications and Viber/SMS for customers for OpenCart
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
- You pick a product and set a rule on an option value: a new surcharge or a percentage off.
- 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.
- At the start of every storefront request the module checks whether the shop has at least one active rule. If not, nothing happens.
- 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.
- 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.
- 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.priceis 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.phpreturns, 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
- 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 theupload/folder fromcc_optspecial-oc2.ocmod.zipto the shop root with your hosting file manager — no FTP setup in OpenCart needed. - Extensions → Extensions → Modules → Option Specials → “Install”, then “Edit”.
- Settings tab: set Status to enabled and, if you like, the old price, the -N% badge and the cart saving. Save.
- 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”.
- Open the product in the store and add it to the cart — the special price is already in the line.
- 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.
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.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
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
Buying the module
—