Skip to content

Guides

Each of these is a job rather than a screen. They assume Product Configurator is installed, switched on, and that you have been through the quick start once.

Offer an option only in one configuration

The most common case: an option that should not be on the page at all most of the time.

Use show, not hide. Naming a target in a show rule is what makes it hidden by default, so one rule does both halves of the job:

WHEN  Finish  is  Engraved
THEN  show  the option  Engraving text

Engraving text is now absent until the customer picks Engraved, and appears the moment they do.

Two rules where the option should appear for either of two answers: show for Engraved and show for Etched. Two rules with the same target are an OR; the conditions inside one rule are always an AND.

Do not reach for a hide rule per unwanted answer. It works until somebody adds a third finish, at which point the option starts appearing for it.

Hide one incompatible value, not the whole option

This rule shape is what makes a configurator rather than a conditional form. The customer picks a component, and the choices that do not fit it disappear from the list they are in, while the list itself stays.

WHEN  Motherboard  is  A320
THEN  hide  the value  Memory → 64GB

Choose the value as the target, then the option, then the value inside it. Write one rule per incompatible pairing; there is no rule that names several values at once.

The Configurator tab on a product's edit form, carrying three rules under a
yellow warning that reads Rule 3: cannot fire while the Wood stain value Ebony
is sold out. Rule 1 reads WHEN Frame material is Aluminium THEN hide the option
Wood stain; Rule 2 reads WHEN Frame material is Aluminium THEN hide the value
Brass of Handle finish; Rule 3 reads WHEN Wood stain is Ebony THEN hide the
value Brushed steel of Handle finish. Each line is a row of dropdowns, with a
plus button to add a condition and an Add Rule button underneath, and below
that a Copy rules from product field with a Replace with that product's rules
button.

Two things to know before you build a large compatibility matrix with this:

  • require has no value form. You can take a value away, and you can require the option it lives in, but you cannot require one specific value.
  • You can hide every value of an option. Nothing stops you, and nothing warns you: the customer meets a control with nothing selectable in it. If the option is required as well, that product cannot be bought in that configuration. The tab's warnings see sold-out values, not values your rules hide, so whenever you write value rules, buy the product yourself in the configuration the rules produce.

Make an answer compulsory only when it matters

An option that is optional in general but necessary in one configuration:

WHEN  Frame material  is  Wood
THEN  require  the option  Wood stain

Leave the option itself not required on OpenCart's Option tab. The rule adds the requirement while it holds, and nothing enforces it otherwise.

Where a customer leaves it empty, the refusal is OpenCart's own (its wording, its message, against the right control) because Product Configurator flips OpenCart's own required flag rather than validating anything itself.

A rule that hides an option beats a rule that requires it. If you write both and both fire, the customer is not asked. That direction is deliberate: the other one would let you build a product nobody can buy.

Narrow when a rule fires

Add conditions with the + at the end of a rule's condition rows. Every condition has to hold:

WHEN  Frame material  is  Wood
AND   Size            is  Large
THEN  require  the option  Bracing

A condition on a checkbox option means is among the values ticked, so a rule fires when the customer has ticked that value, whatever else they ticked.

There is no OR inside a rule, no nesting and no brackets. Every condition you can state is still expressible: write one rule per alternative, all with the same target.

Draw option values as swatches

Set an image on a value under Catalog → Options (on the option's own value rows) and the storefront draws it as a selectable swatch rather than a thumbnail glued to a label. There is no image field here and no image stored here; it is OpenCart's own image, presented properly.

  • Radio and checkbox options: values with an image become swatches, values without keep OpenCart's row. A mixed option is fine.
  • A dropdown gets a swatch grid only when every one of its values has an image. One blank tile and the grid is not offered, because a grid half made of blank tiles is worse than the dropdown it replaced.

A value OpenCart has hidden because it is sold out is not drawn either. The swatches are the values your customer could have picked anyway.

Swatches are drawn on a product that has rules. They are part of the same rewrite of the product page that does the hiding, so a product with no rules on it keeps OpenCart's own rendering of its values. If you want swatches on a product that needs no conditional logic, give it a rule that does something you want anyway, or leave it as it is: nothing here draws swatches on their own.

Let a customer change a configuration already in the cart

Nothing to switch on: a cart line whose product has rules carries a Change options link. It reopens the product page with the answers filled in, so a customer who mistyped one field of a twenty-field configuration fixes that one field.

Four behaviours to know, because customers will ask about all four:

  • The edited line moves to the end of the cart.
  • If the new configuration matches a line already in the cart, the two merge and their quantities add up.
  • An answer that is no longer available (a value sold out or deleted since) is not filled in, and the page says so once, in general terms, rather than naming each one.
  • The old line goes only once the re-add succeeds. A customer who wanders off mid-edit still has their cart.

Give ten products the same configurator

There is no reusable template: rules belong to one product. There are two ways to put the same rules on another product, and which one you want depends on whether that product exists yet.

For a new product, use OpenCart's own Copy. Configure one product completely, options and rules, then select it on Catalog → Products and press Copy. The copy carries the options and the rules. Change what differs and enable it. The copy lands disabled, the way every OpenCart copy does, so nothing is visible to a customer until you say so.

For a product you already have, use Copy rules from. Attach the options on its Option tab first, then open its Configurator tab:

  1. In Copy rules from, under the rules, start typing the name of the product whose rules you want and pick it from the list.
  2. Press Replace with that product's rules. If this product already has rules, you are asked first, because they are replaced rather than added to.
  3. Check the rules the tab now shows, and press OpenCart's own Save.

Nothing is stored until that Save, so leaving the form without saving leaves the product as it was. If you pick a variant, you get its master's rules, and the message says so.

A copied rule can name an option or value this product does not have. The message says how many do, and each is listed under No longer on this product:. It does nothing until you attach what it names or delete the rule, and it is kept rather than dropped in case you are about to attach it.

Either way, the result is a copy, not a link: change the rules on one product later and the other keeps what it had.

The row is shown only to a user group that has access to extension/product_configurator/module/product_configurator and may modify products. See install.

Deleting a product deletes its rules. Deleting a master product promotes its variants to standalone products, and a promoted variant has no rules of its own, because it was inheriting its master's. Open each promoted product and use Copy rules from to take the rules from a product that still has them, or write them again.

Check a ruleset before customers do

Open the product and go to its Configurator tab. If the tab can see a problem with the rules, a yellow warning above them lists each one, starting with the number of the rule it concerns. No warning means none of the three checks below found anything.

  • A required option with nothing to pick. A require rule targets an option, or a show rule targets one OpenCart marks Required, and every value of it on this product is sold out. A customer who meets it cannot add the product to the cart. Restock a value on the Option tab, stop it subtracting stock, or change the rule.
  • A rule that can never fire. A condition names an option or value that is no longer on this product, or two conditions name different values of one dropdown or radio option, which a customer can never pick at once. Split a rule like that into two rules with the same target. If a condition names a sold-out value, the rule is listed as unable to fire while it is sold out, and fires again once the value is back in stock. For a show rule, the line also says whether its target can still appear through another show rule, or is never shown.
  • A require that never applies. A hide rule on the same option fires whenever the require does, because its conditions are all among the require rule's, and a hidden option is never asked for. Delete one of the two rules, or give the hide a condition the require does not have.

The check is made when the form opens, against the product as last saved, which is what the storefront was serving then. After changing rules or stock, save the product and open it again to check again.

The warnings never block a save and never change a rule. They see what the stock and the rules say, not what a customer will actually meet, so the most reliable test is still buying the product yourself in the configuration you care about.

Find and remove a rule that has gone stale

Detach an option from a product and any rule that named it stops doing anything. It is not an error and it does not block a save, but it is still listed.

Open the Configurator tab and look for No longer on this product: on a rule row. Press the rule's own remove button and save the product.

The same thing happens the other way: a rule you write against an option you then remove from the form in the same session saves, and is inert. Nothing chases it for you.

Turn everything off without losing the rules

Set Status to Disabled on Extensions → Extensions → Modules → Product Configurator. The Configurator tab, the swatches, the hiding and the enforcement all stop; every rule you have written stays exactly where it is, and switching the module back on brings all of it back.

Uninstalling from the extension list keeps them too. See what a removal leaves.