Visibility rules
What a visibility rule is
A rule is a list of conditions that must all hold. Each condition compares one earlier storefront answer, or a calculated value, to a value: "Inverter Type does not equal Microinverter", "Rapid Shutdown does not equal No", "Total Panels is greater than or equal to 20". There is no "or" and no nesting. When two rules apply to the same item (one on its group and one on the item type itself), both must pass.
- No rule means always included. If you never touch the feature, nothing changes.
- Rules run live. Change an answer on the storefront and the section, the BOM lines and the sidebar update immediately.
- An unanswered question passes "does not equal" and "does not contain" and fails every other operator, including "is one of" and the number comparisons. So "Rapid Shutdown does not equal No" is true on a system where the Rapid Shutdown question was never asked. This is why the editor suggests "does not equal No" when you pick a Yes/No question and "does not equal Microinverter" when you pick Inverter Type: a rule written that way stays out of the way on every path where the question does not apply. A calculated value that does not exist yet (the racking step before the layout is drawn, an inverter value before the inverter is picked) behaves the same way. The flip side: a comparison on a number that is only asked on some paths hides the item on every other path, so key the rule on a question the customer answers everywhere.
- "Is one of" is offered on any source with a fixed list of answers (Inverter Type, Mount Type, a Yes/No question, a custom question with options): tick the answers that should pass. "Inverter Type is one of String Inverter, Optimizer" is the general form of "not microinverter", and keeps working when you later add another inverter type you also want excluded. There is no "is not one of"; write one "does not equal" condition per excluded answer.
The same mechanism carries two labels. Item type and group rows read Include when, because they also govern items the engine computes without asking the customer anything (rails, clamps, wire): the rule decides whether the item is included, not whether a question is shown. Question cards and the question modal read Show when, because a question is only ever shown or hidden. Anything that carries a rule shows a neutral Conditional badge on its collapsed header or card, with the rule as the tooltip.
What the customer sees
- A hidden item type has no storefront question and no picker, is left out of the bill of materials, and its accessories go with it. It does not appear in the sidebar, on the quote page, in the shareable quote or in the quote email. There is no zero-quantity line; the line simply does not exist.
- A hidden group hides every item type in it.
- A hidden question (built in or custom) is not shown. The configurator answers it on the customer's behalf with the Value when hidden you set. With no value set, the answer is removed while the question is hidden: pickers that depend on it stay hidden, product matching treats a missing custom answer as matching any product, and formulas and later rules that read it see nothing.
- A question the configurator would not ask on this path anyway (a carport question on a pitched roof, Rapid Shutdown on a microinverter system) is simply absent; your rule is never evaluated for it and its hidden value never applies.
- On the BOS step, a category with nothing left to show loses its card.
Where to add a rule
| Rule on | Page | Where the row is | Label |
|---|---|---|---|
| An item type | Inverters, Racking, BOS, and every custom module | The item type's Products tab, above Match Criteria. Built in and custom item types both have it. | Include when |
| A group or category | Inverters, Racking, BOS | The first row inside the expanded group. It cascades to every item type in the group. | Include when (all items in this group) |
| A custom racking sub-module (a carport, say) | Racking | The sub-module's group header on the Racking page. It cascades to every item type of that sub-module. | Include when (all items in this group) |
| A built-in question | Calculations > Storefront Questions > Inverters tab | On the question card, between the description and the default. See Show when on built-in questions. | Show when |
| One of your own questions or notes | The catalog page that owns it (Racking, Inverters, BOS, a custom module, or a racking sub-module) | The Visibility section of the question modal (Edit on the question card). See Show when on custom questions. | Show when |
A few things are deliberately not offered:
- The item types that define a configuration path (Microinverter, String Inverter, Optimizer / RSD) and Solar Panels have no rule, and neither does the Inverters group header. Hiding one of those would strand a whole path. To keep a customer out of the battery flow, put a Show when rule on the Battery Backup question with Value when hidden set to No.
- On the Racking page, the built in item types inside the manufacturer cards (Ballasted, Tilt Legs, Ground Mount) take the group row only. Custom item types inside those cards have their own row.
Using the editor
A row with no rule reads Always shown. Click + Add Condition to open the same condition builder used for formula rules: pick a question under Select a question, an operator, and a value.
- Choice questions offer equals, does not equal and is one of (a checkbox per answer).
- Number questions and calculated values offer equals, does not equal, is greater than, is greater than or equal to, is less than and is less than or equal to.
- Custom questions where the customer can tick several options offer contains and does not contain.
Saved conditions render as chips such as "Inverter Type ≠ Microinverter", "Inverter Type in String Inverter, Optimizer" or "Total Panels ≥ 20", joined by and. The × on a chip removes that condition. Two special chips can appear:
- A dimmed built-in chip (built-in question cards only) is the configurator's own gate for that question. It cannot be removed; your conditions are added to it.
- A caution chip means the rule references a question that is no longer offered here, usually because the question was moved or the module was reparented. The rule still applies on the storefront until you remove the chip.
When no earlier question exists to condition on, the button is disabled and its tooltip says so. The same row also edits the condition on a Calculated Values override, where it is labelled When and reads Always when empty; see Overrides for the one way an override treats its condition differently.
Which answers a rule can use
A rule can only look at answers the customer has already given by the time the item or question is decided: built-in questions from earlier steps and from the same step, number questions with the comparison operators, your own custom storefront questions from earlier steps, and calculated values. The dropdown is grouped by where the answer comes from. Mount Type offers your custom racking sub-modules next to the built in mount types, and Racking Manufacturer offers the manufacturers in your catalog.
- Calculated values are the numbers on the Calculated Values page (Total Panels and its neighbours, plus the inverter quantities), evaluated with every override that applies. A rule sees the same number the quote uses. A calculated value does not exist until the customer's layout does, and an inverter value not until the inverter product is picked; until then it behaves like an unanswered question. Item type and group rows can use calculated values on every page, Racking included. Questions can use them only after the racking step, because a racking question is asked before the layout exists.
- For a built-in question, the sources are strictly the questions asked before it: earlier questions of the same step and answers from earlier steps. Never the question itself, never a later one.
- For one of your own questions, the sources are every answer from the earlier steps, the built-in answers of the question's own step, and your earlier custom questions of the same step.
- For a custom module, the sources follow where the module sits. A sub-module under Racking (a carport) is offered the answers available inside the racking step, because that is where it renders. A custom top level module with its own step is offered everything before it.
A rule saved on a source that later stops being offered still applies on the storefront; it shows as a caution chip so you can remove it.
Example: offer monitoring only on some systems
One common rule: offer a monitoring system on string inverter and optimizer systems only, and skip it when a string inverter customer declines rapid shutdown. That is a single rule on the Monitoring Devices item type on the Inverters page (Products tab):
Include when Inverter Type ≠ Microinverter and Rapid Shutdown ≠ No
- Microinverter system: the first condition fails. No monitoring question, no picker, no monitoring line.
- String inverter, Rapid Shutdown = Yes: both pass; monitoring is offered as usual.
- String inverter, Rapid Shutdown = No: hidden. The section, its BOM line and any accessories of the chosen unit disappear the moment the customer clicks No.
- Optimizer system: the Rapid Shutdown question is never asked, so "does not equal No" passes, and monitoring is offered for the units compatible with the optimizer and the inverter chosen with it.
To offer monitoring on string inverter systems only (not optimizer systems), swap the first condition for "Inverter Type = String Inverter". To name the systems that qualify instead of the one that does not, write the first condition as "Inverter Type is one of String Inverter, Optimizer"; the chip reads "Inverter Type in String Inverter, Optimizer".
The rule decides whether the monitoring section exists at all. Which units appear in it is a separate question, answered by each product's Compatible Equipment SKU; see Monitoring devices. A unit with a blank Compatible Equipment SKU is offered on every path, microinverters included, unless a rule like the one above says otherwise.
Show when on custom questions and notes
The condition on one of your own storefront questions, or on a text note, is the same Show when row, inside the Visibility section of the question modal on the catalog page that owns the question (open the question card and click Edit). It behaves exactly like every other rule: several conditions joined by "and", "is one of", chips, Always shown when empty. The modal restates the rule under the storefront preview, for example "Shown when Mount Type = Ground", and the question card shows the Conditional badge once a rule is saved. The section only appears when there is an earlier question to condition on.
- Value when hidden follows the question's shape: a Yes/No selector for a yes/no question, the option list for a dropdown or image choice, a number box for a number question, and a checkbox list for a multiple choice question (the hidden answer is the set you tick). A text note has no value; it is either shown or not.
- With no value set, the customer's answer is removed while the question is hidden. A question that was answered and then hidden by its condition no longer carries that stale answer into product matching, formulas or later rules. If a hidden question must still count as answered (a Yes/No that other logic depends on, say), set its Value when hidden.
- The question modal saves with its own Save button. Publish as usual for customers to see the rule.
- Calculations > Storefront Questions lists each of your questions read only, with its Conditional badge, its hidden value ("hidden: answer removed" or the value) and an Edit link back to the owning catalog page.
Show when on built-in questions
Open Calculations > Storefront Questions and pick the Inverters tab (built-in question rules are available for the inverter questions). Every built-in question card that has at least one earlier question to condition on carries a Show when line between its description and its default.
- Dimmed built-in chips show the gate the configurator applies on its own: Rapid Shutdown is only asked on string inverter systems, Phase Type only on systems without microinverters. They cannot be removed, only extended.
- Sources are strictly earlier questions: earlier inverter questions and answers from earlier steps. A custom question you added on the Inverters page cannot be a source, because custom questions are asked after every built-in question of the step.
- Edits to the Show when line and to Value when hidden go to the page's save bar: Save persists all of them at once (a "Changes saved" toast confirms it), Discard reverts. Overrides on the same page still save from their own modal.
Value when hidden
Value when hidden is the answer the configurator uses while your condition hides the question. The control appears once you have added at least one condition of your own, and a new rule starts at (none - answer removed while hidden); nothing pre-fills the question's storefront default. While it is (none), a hint under the control says what that means: treated as unanswered, so pickers that depend on this question stay hidden and formulas that use it get no value. Set a value only when the hidden question should count as answered. A Yes/No question gets a Yes/No selector, Inverter Type and Phase Type get their option list, and the rest get a text field.
For example, to skip the Rapid Shutdown question for customers who want battery backup and assume they want rapid shutdown:
Show when Inverter Type = String Inverter (built-in) and Battery Backup = No Value when hidden: Yes
A string inverter customer who answers Battery Backup = Yes no longer sees the Rapid Shutdown question, the rapid shutdown device picker still appears (the hidden Yes feeds it), and any rule that reads Rapid Shutdown sees Yes. The hidden value applies only when your condition is false; a question the configurator hides on its own (no products, wrong inverter type) stays absent exactly as before.
Saving, publishing and plans
- Catalog pages (Inverters, Racking, BOS, custom modules): adding or removing a condition on an item type or group goes to the page's save bar. Save persists it, Discard reverts it, like every other product table edit. A custom question's rule saves with the question modal.
- Storefront Questions: Show when and Value when hidden edits on built-in questions go to that page's save bar too.
- Customers see rules only after you Publish. Preview reads the live configuration and reflects a rule as soon as it is saved; the storefront and Sales Mode serve the last published version. The Publish page lists "N visibility rule(s) added", "removed" or "updated" under Unpublished Changes, next to lines for custom questions and calculated value overrides, and a rollback restores the previous version's rules along with everything else. See Publishing and versions.
- Deleting a question a rule uses is blocked. Clicking delete on a custom question opens a dialog. When the question is still in use, the dialog is titled "Cannot delete" and lists every use grouped by kind: Products (match criteria), Formulas and rule conditions, Calculated value overrides, and Visibility rules (each entry reads "Include when on ..." or "Show when on ..."). Remove those uses first. When nothing blocks it, the dialog confirms and the delete is queued in the page's save bar: the question is removed when you save, and Discard brings it back.
- Changing plans: below Growth, rules on item types, groups and built in questions are kept but stop applying. Those editors turn read only with a "Requires Growth" badge, the published configuration omits the rules, and the Publish page does not report them as pending changes. Upgrade again and they apply at the next publish. A custom question's condition is not affected by the plan.