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

Option Combinations for OpenCart — stock, price and SKU of every option combination

A combination grid for OpenCart 4, 3 and 2.3: "red × M" gets its own stock and availability, and in Pro its own surcharge, weight, SKU and photo. Combinations you do not sell are greyed out on the product page, conditional options appear only when needed, and drop-downs turn into colour dots and buttons. The base version is free; the Pro licence is lifetime.

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.1, 8.2, 8.3) · mysqli and PDO database drivers
Version
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (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 combination grid built from "select" and "radio" options: colour × size × anything ✔ ✔
Every combination: on sale or not, its own stock, stock tracking on or off ✔ ✔
Unavailable values greyed out on the product page, conflicting ones dimmed; a click clears the conflicting pick ✔ ✔
Conditional options: "show engraving text only when Engraving = Yes", chains of conditions ✔ ✔
Swatches for any option of the shop: colour dots, buttons, images ✔ ✔
The price of the picked combination without a reload — the one the cart will charge, with specials and tax ✔ ✔
The cart refuses a combination that is off, missing from the grid or sold out ✔ ✔
Combination stock taken on checkout and returned on cancellation — once ✔ ✔
No double stock deduction: the module switches off per-value stock of the grid options by itself ✔ ✔
Works with Option Specials, One Page Checkout and Size Price Calculator ✔ ✔
No core files changed; builds for OpenCart 4.x, 3.x and 2.3; admin in uk/ru/en ✔ ✔
Products with a grid or conditions 3 unlimited
Surcharge (+/−) and weight change for every combination — ✔
Own SKU of the combination in the order, invoice and waybill — ✔
Own photo of the combination instead of the main one — ✔

What it looks like

OpenCart 4.1 product page: colour swatches and size buttons, an unavailable colour greyed out, price and SKU of the picked combination
Product page (OpenCart 4.1.0.3): “Colour” as colour dots, “Size” as buttons. Green is greyed out because no green combination is on sale; under the options — SKU and availability of the picked combination, the theme price is already its price.
One Page Checkout on OpenCart 2.3: the order confirmation carries SKUs and prices of two combinations
Checkout through One Page Checkout (OpenCart 2.3.0.2): the confirmation block carries the SKUs IP-RED-S and IP-BLU-M and the combination prices, with an Option Specials special on the second one as well. The order is saved with the same SKUs and prices.
Option Combinations admin: a colour × size grid with stock, surcharge, SKU and photo
The product grid in the admin (OpenCart 4.1, Ukrainian interface): every combination — “On sale”, tracking and stock, in Pro the surcharge, weight, SKU and a photo picked from the product photos. Above the grid — bulk changes for all rows, below it — conditional options.

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 — whatever your OpenCart version needs: the 2.3 build is tested on PHP 7.0, 3.x on 8.2, 4.x on 8.1 and 8.3.
  • Database: MySQL/MariaDB with the mysqli or PDO driver (both tested).
  • Grid options are of the “select” and “radio” types. Other options (checkboxes, text, date, file) work as always and can be conditional.
  • Cart. The module builds OpenCart’s own cart and can sit under a wrapper that passes cart calls on (that is how Size Price Calculator works). If another extension replaced the cart class entirely with its own, the module leaves the cart alone: the product page and the add-to-cart check work, but the combination price and SKU do not reach the cart.
  • Theme. Tested on the default themes of 4.x, 3.x and 2.3; for other themes there are settings for the CSS selectors of the price and the main photo. OpenCart 4.1 product variants (master/variant) are not supported.

Version history

v1.0.0 Current September 2026

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

Frequently bought with Option Combinations for OpenCart

4 modules in one order — 40% cheaper than separately

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

Full module description

Option Combinations for OpenCart counts not separate option values but their combinations. A “red × M” T-shirt has its own stock, “blue × L” has its own, and “green × S” is not sold at all. Plain OpenCart cannot do that: stock and surcharges exist only per value, so the shop keeps selling “red M” after red M is gone, as long as there are some red ones and some M ones.

The module gives a product a combination grid built from “select” and “radio” options. Every combination has its availability and stock, and in Pro a surcharge, weight, its own SKU and photo. On the product page unavailable combinations are greyed out, conditional options show up only when needed (“engraving text” only after “Engraving: yes”), and drop-downs become colour dots and buttons. No OpenCart core file is changed. One licence, three builds: OpenCart 4.x, 3.x and 2.3.

What the customer sees

  • What is there is visible. A value no combination is sold with is greyed out and cannot be clicked. A value that only conflicts with the current pick (blue exists, just not in S) is dimmed — clicking it clears the conflicting pick instead of showing an error.
  • The variant price at once. The page asks the shop for the price of the picked combination — the one the cart will charge, with specials, discounts and tax — and puts it into the theme price together with the “Ex Tax” line.
  • SKU, availability, photo. Under the options — SKU and availability of the combination (or the exact quantity, if you choose so), and the combination photo replaces the main one.
  • Nothing extra. A conditional option stays hidden until needed and is not required while hidden.

What the admin gets

Extensions → Modules → Option Combinations, four tabs: Products, Swatches, Settings and Licence.

  • A grid in a minute. Pick a product, tick the options the variants are made of and press “Add missing combinations” — the module creates every combination and leaves existing rows as they are. Bulk changes for all rows — one line above the grid.
  • Product policy: what to do with a combination missing from the grid (do not sell, or sell as an ordinary product) and with a sold-out one (grey it out, hide it or take backorders).
  • Conditional options: “show option B when A has one of the ticked values”, chains of conditions; a condition that loops back on itself is not saved.
  • Checks before saving: a non-numeric stock, a negative surcharge without a sign, a photo outside the shop folders — the module names the combination with the mistake and saves nothing.
  • Per-value stock of the grid options is switched off by the module itself, and it says how many values it switched off.

Pro: surcharge, weight, SKU and photo of every combination

  • Surcharge with a + or − sign on top of the product price and other options; specials and taxes work as always.
  • Weight of the combination — for shipping that counts weight.
  • SKU of the combination becomes the model of the order line: it shows in the cart, the order, the invoice and the waybill.
  • Photo — one of the product photos, replaces the main one on the page and in the cart.
  • No cap on products.

How it works, step by step

  1. You build the grid in the admin: product, options, stock, and in Pro prices, SKUs and photos.
  2. On the product page the module hands the grid to a script that draws swatches, greyed-out values and conditional options over the ordinary OpenCart form — the pick goes to the cart through the same fields.
  3. On “add to cart” the module checks the combination and the stock and answers with OpenCart’s own option error when it cannot be sold.
  4. The cart is built with OpenCart’s own cart class a second time, and lines with a combination get its surcharge, weight, SKU, photo and stock. Everything else is counted by OpenCart itself, so the cart, the mini-cart, the checkout and One Page Checkout show the same amounts.
  5. When an order enters a processing or complete status, the module takes the combination stock (once per line) and returns it when the order leaves those statuses.

Under the hood

  • No core edits. OpenCart events and a startup action (on 3.x and 2.3 — an event before the first controller). Core files and option prices in the catalogue are not changed.
  • Own tables: product settings, combinations, conditions, swatch looks, value colours and a journal of stock taken per order line (so a cancellation returns exactly what was taken).
  • Compatibility. Option Specials builds its cart under ours, so a special on a value and the combination surcharge apply together; Size Price Calculator wraps our cart whichever of the modules starts first.
  • Load. Products without a grid are not touched; with a grid the cart is counted by OpenCart’s class once more — unnoticeable on a normal cart.
  • Feeds see the product as before — there is no separate integration with combinations.
  • Multi-store: grids and swatches are shared by all stores of one installation.
  • Removal. The uninstall removes the events and the startup row and drops the module tables unless “Keep the data when the module is uninstalled” is on in the settings. On OpenCart 2.3 the settings go too, the licence key with them — activate it again after a reinstall.

How to install

  1. OpenCart 4: Extensions → Installer → upload cc_optcomb.ocmod.zip (do not rename the archive) and press Install. OpenCart 3: Extensions → Installer → cc_optcomb-oc3.ocmod.zip, then Extensions → Modifications → Refresh. OpenCart 2.3: the 2.3 installer copies nothing without a configured FTP, so upload the contents of the upload/ folder from cc_optcomb-oc2.ocmod.zip to the shop root through your hosting file manager — no FTP setup in OpenCart needed.
  2. Extensions → Extensions → Modules → Option Combinations → Install, then Edit.
  3. Settings tab: Status on; optionally how to show stock and whether to swap the photo. Save.
  4. Products tab: pick a product, tick the grid options, press “Add missing combinations”, fill in the stock and press “Save product”.
  5. Swatches tab: for “Colour” choose “colours” and a colour per value, for “Size” — “buttons”.
  6. For Pro: paste the licence key from the e-mail 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 ordinary OpenCart options?

In plain OpenCart stock and surcharges belong to each value separately: "red" and "M" live their own lives, and the shop cannot know that red M is sold out while blue M is still there. Option Combinations counts the combination itself: "red × M" has its own stock and availability, and in Pro its own price, weight, SKU and photo.

Will stock be taken twice — from the option value and from the combination?

No. OpenCart itself takes stock of every option value with "Subtract Stock" on. For the options in the grid the module switches that off automatically: when the grid is saved, before every order takes stock, and on the product page if an import switched it back on. Only the combination keeps the count; options outside the grid (gift wrap, say) are taken as always.

Can a customer order a combination that does not exist?

No. The product page shows it greyed out, and if a request goes around the page, the cart answers with OpenCart's own option error. The stock limit counts what is already in the cart. Per product you can choose otherwise: sell combinations missing from the grid as an ordinary product and take orders for sold-out ones (backorder).

What happens when the Pro trial ends?

Surcharges, weights, SKUs and photos of combinations stop applying but stay in the admin — buy a licence and everything works again without re-entering anything. Availability and stock of combinations, conditional options and swatches keep working on 3 products.

Does it work with my theme?

The grid, the cart and the order do not depend on the theme. On the product page the module finds the price and the main photo by the markup of the default theme; if your theme draws them differently, you can set your own CSS selectors in the settings. Tested on the default themes of 4.x, 3.x and 2.3, not on Journal, Unishop or others — try it in the 7-day trial first.

What about feeds for Google, Rozetka, Prom?

Honestly: there is no separate feed integration — feeds see the product as before, without splitting it into combinations.

Are OpenCart 4.1 product variants (master/variant) supported?

No, the grid works for the product it is set up on. An OpenCart 4.1 variant is a separate product and needs its own grid.

What happens to the data if I remove the module?

By default the uninstall removes the module tables: grids, conditions, swatches and the stock journal. If you plan to reinstall, turn on "Keep the data when the module is uninstalled" in the settings. Products and their options are never touched.

How much is it, and is there a yearly fee?

The base version is free. Pro is 1290 UAH once, a lifetime licence for OpenCart, 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