- Rule Explanations and Returns Summary: setup guide
- Inside Booster
- 1. Requirements and navigation
- 2. Free, Plus and Elite
- 3. Basic workflow: explain a known fee
- 4. Elite workflow: compare two fee scenarios
- 5. Elite workflow: compare a payment rule
- 6. Read Returns Summary
- 7. Boundaries and optional connections
- Troubleshooting
Rule Explanations and Returns Summary: setup guide #
The worked examples below are conditional staging examples, not observed results from your store.
Start by explaining one configured fee. Then, if you use Elite, compare explicit scenarios without changing a shopper’s cart or your rules.
Inside Booster #

1. Requirements and navigation #
- Use Booster 9.0 with WooCommerce active and an account currently allowed to manage WooCommerce. Module and role restrictions still apply.
- For fee examples, enable and configure Gateways Fees and Discounts. Open WooCommerce > Rule explanations.
- For a return-queue summary, enable Return Requests, initialize compatible private storage and open WooCommerce > Return Requests summary.
- The admin tools do not need an AI account, model key or external connector. Optional WordPress Abilities need WordPress 6.9 or later with the host API and the specific registration available, plus current service permission.
Runtime: PHP 7.3 or later on a 64-bit build with working native integer hrtime(). There is no wall-clock fallback. Use a maintained PHP version supported by your WordPress and WooCommerce versions.
2. Free, Plus and Elite #
| Capability | Free | Plus | Elite |
|---|---|---|---|
| Basic configured gateway-fee scenario | Guest; no role/product inputs | Guest; no role/product inputs | Explicit role/product facts supported |
| Fee rules with product conditions | Unsupported | Unsupported | Explicit applicable facts supported |
| Compare exactly two fee scenarios | Not included | Not included | Included |
| Explicit payment/shipping scenarios and comparisons | Not executable | Not executable | Included for listed Booster rules |
| Limited observations of actual callbacks in the same request | Included | Included | Included |
| Returns Summary | Latest up to 50 request IDs | Latest up to 50 request IDs | Same sample, also reused in Morning Store Briefing |
3. Basic workflow: explain a known fee #
On staging, open Booster > Plugins > Payment Gateways > Gateways Fees and Discounts and use a configured bacs fee with these exact example settings. These are prerequisites, not values changed by the explanation form.
| Setting | Example value |
|---|---|
| Fee (or Discount) Title | Example gateway fee |
| Fee (or Discount) Type | Percent |
| Fee (or Discount) Value | 5 |
| Minimum Cart Amount | 50 |
| Maximum Cart Amount | 0 |
| Exclude Shipping when Calculating Total Cart Amount | checked |
| Include Taxes | unchecked |
| Rounding | unchecked |
| Taxable | unchecked |
Keep per-role overrides, product include/exclude conditions, active Multicurrency and dynamic third-party overrides off for this isolated example. The current merchant must have management permission and the module must be enabled and allowed.
- Open WooCommerce > Rule explanations.
- Choose
bacsin Configured gateway. If it is absent, configure Gateways Fees and Discounts first. - Enter Merchandise total after discounts, excluding tax:
100; Shipping total excluding tax:0; Merchandise subtotal tax before discounts:0; Shipping tax:0. - In Elite, explicitly choose Scenario role:
guestand leave Product and variation IDs blank. This example fee has no product conditions, so the product set does not change the result. Free and Plus use that basic guest scenario without those inputs. - Choose Explain this scenario.
Expected result with exactly those settings: the rule matches, with state: evaluated, reason: eligible and evaluator amount 5 in store currency. No fee is applied to a cart or order. If you change the rule or omit prerequisites, the expected result can change.
Optional structured example for an authorized Ability client
The Free/Plus input for booster/explain-gateway-fee is:
{"mode":"scenario","gateway":"bacs","subtotal":100,"shipping":0,"tax":0,"shipping_tax":0}
On Elite, you can also state the role and product facts explicitly. They are required only when the configured rule depends on them; otherwise the input above is also valid on Elite:
{"mode":"scenario","gateway":"bacs","subtotal":100,"shipping":0,"tax":0,"shipping_tax":0,"role":"guest","product_ids":[]}
The JSON illustrates a registered Ability’s structured input, not a natural-language prompt or a field to paste into the basic admin form. Free and Plus reject supplied role/product_ids; product-dependent configured fee rules are unsupported there. A compatible authenticated client and the current service permissions remain required.
The four amount inputs are separate facts. The existing fee setting determines which components are included. The evaluator amount is before WooCommerce fee tax and rounding, not the final amount payable or proof that the gateway is available.
4. Elite workflow: compare two fee scenarios #
Keep the same known fee settings. In Compare two scenarios, fill the matching A/B fee fields: A uses subtotal 40; B uses subtotal 100. Both use gateway bacs, zero shipping and tax amounts, role guest and an explicit empty product set.
Expected result: A has outside_cart_amount with no evaluator amount because it is below 50. B has eligible with amount 5. Each side keeps its own result. There is no winner, combined amount or atomic settings snapshot.
Developer illustration of the fee comparison service input
The local compare_scenarios service accepts exactly two scenario objects in A/B order. This is a service-structure illustration, not an invented fee-comparison Ability or a JSON textarea in the fee form:
[{"mode":"scenario","gateway":"bacs","subtotal":40,"shipping":0,"tax":0,"shipping_tax":0,"role":"guest","product_ids":[]},{"mode":"scenario","gateway":"bacs","subtotal":100,"shipping":0,"tax":0,"shipping_tax":0,"role":"guest","product_ids":[]}]
For a role-dependent rule, supply the actual applicable role; this does not impersonate a customer. For product-dependent rules, include the relevant parent and variation IDs, at most 100. An explicit empty list means no products in the supplied scenario, not unknown shopper contents.
5. Elite workflow: compare a payment rule #
This is a separate payment-availability example, not the fee example above. In Booster > Plugins > Gateways Min/Max Amounts, configure bacs with Min 50, Max 0, Exclude Shipping checked, Include Tax unchecked and Multicurrency (Enable compatibility with Multicurrency module) unchecked.
For this isolated staging example, only that one of the six payment-filter modules is enabled and registered. Disable the other five Booster payment-filter modules and Modules by User Roles; use no third-party or dynamic option overrides. These prerequisites are part of the expected result, not changes made by the comparison.
- Open WooCommerce > Rule explanations > Payment option explanations.
- Paste the following into Explicit payment scenario or comparison JSON.
- Choose Compare two scenarios.
Keep decimal amounts as JSON strings. Unused role, currency, address and shipping-selection facts are explicitly unknown; they are not silently treated as guest or empty.
{
"mode": "compare",
"gateway": "bacs",
"scenarios": [
{
"currency": {
"state": "unknown"
},
"roles": {
"state": "unknown"
},
"billing": {
"country": {
"state": "unknown"
},
"state": {
"state": "unknown"
},
"postcode": {
"state": "unknown"
}
},
"shipping": {
"country": {
"state": "unknown"
},
"state": {
"state": "unknown"
},
"postcode": {
"state": "unknown"
}
},
"contents_total": {
"state": "known",
"value": "40"
},
"total_tax": {
"state": "known",
"value": "0"
},
"shipping_total": {
"state": "known",
"value": "0"
},
"needs_shipping": {
"state": "unknown"
},
"chosen_shipping_methods": {
"state": "unknown"
}
},
{
"currency": {
"state": "unknown"
},
"roles": {
"state": "unknown"
},
"billing": {
"country": {
"state": "unknown"
},
"state": {
"state": "unknown"
},
"postcode": {
"state": "unknown"
}
},
"shipping": {
"country": {
"state": "unknown"
},
"state": {
"state": "unknown"
},
"postcode": {
"state": "unknown"
}
},
"contents_total": {
"state": "known",
"value": "100"
},
"total_tax": {
"state": "known",
"value": "0"
},
"shipping_total": {
"state": "known",
"value": "0"
},
"needs_shipping": {
"state": "unknown"
},
"chosen_shipping_methods": {
"state": "unknown"
}
}
]
}
Expected result with exactly those prerequisites: in the payment_gateways_min_max row, the first scenario is removed / below_min; the second is retained / limits_pass. Each result’s final_availability remains null. Retained by this filter does not mean the gateway will be offered or payment will succeed. The two scenarios are sequential, not an atomic observation.
The same structured input belongs to the optional booster/compare-payment-options Ability when its host API, registration and current service permission are available. It is a different contract from the fee comparison service illustration.
Supported payment checks cover six Booster rule families, not a final list of available gateways. Shipping has a separate input contract: version 1 covers supported amount/quantity checks; version 2 covers nine listed conditions/options. Do not reuse a fee or payment payload as shipping input. Free and Plus retain limited observations from actual callbacks, but do not execute the Elite scenario services.
6. Read Returns Summary #
Enable Return Requests and initialize its compatible private storage, then open WooCommerce > Return Requests summary. The optional booster/returns-summary Ability takes exactly:
{"scope":"summary"}
Expected result: basis: latest_request_ids, bounded_sample: true and sample_limit: 50. Actual counts depend on your queue. Available results describe the latest up to 50 request IDs, not recently updated requests or whole-store totals. At 50, possibly_truncated is true because there may be more requests.
Unavailable sample/count values remain unknown rather than zero. Needs-review and unavailable-facts flags can overlap request statuses; do not add them as extra disjoint statuses. The output excludes customer details, identifiers, reasons and amounts. Elite Morning Store Briefing reuses this same bounded result. Order Health, its full summary Ability and Morning Store Briefing were introduced in 8.4, not 9.0.
7. Boundaries and optional connections #
- A sample explanation does not replay checkout, calculate final totals, make a shipping quote, confirm final availability or explain arbitrary third-party rules.
- Dynamic shortcode fee titles, active multicurrency and unsupported configurations are not guessed. Unavailable, unsupported, non-match and access/input errors are different outcomes.
- Live decision in this request is only the last fee callback in that same request. An admin or Ability request normally has no shopper fee evaluation. It cannot retrieve a previous shopper request.
- Payment/shipping observer links need the current authorized manager, bound identity/nonce and actual callback evidence. They do not grant access to another shopper’s session or unlock Elite scenarios.
Local Ability connection prerequisites reports local API/registration, HTTPS and Application Password availability. It does not authenticate a client, test remote reachability or qualify a connector. WordPress Application Passwords are not intrinsically Ability-scoped or read-only. Use the minimum necessary authorized account, never paste credentials into an AI prompt, and revoke the WordPress credential as well as disconnecting a client.
Troubleshooting #
| What you see | What to check |
|---|---|
| No configured gateway identifiers | Enable Gateways Fees and Discounts and configure an actual gateway fee with a supported literal title. The form lists at most 50 configured gateway IDs. |
| Unsupported product or missing role/product facts | Free/Plus cannot evaluate configured product conditions. On Elite, explicitly supply applicable facts, including an empty product list only when that is really the scenario. |
| No live evaluation in this request | This is expected when no fee callback ran in the current admin/Ability request. It is not evidence of a missing fee in a previous customer’s checkout. |
| Expired form or permission error | Reload the current authorized admin page and verify current management/module/role access. Do not substitute a public endpoint or a different user’s nonce. |
| Unsupported dynamic title, multicurrency or configuration | Review the named limitation and inspect the actual configured/live workflow separately. Do not treat an unsupported result as a zero fee or an available gateway. |
| Summary unavailable or possibly truncated | Check Return Requests, private storage and permission. Keep unknown counts unknown, and use the Returns queue for individual requests rather than treating a 50-row sample as the whole store. |
| Ability or connector unavailable | Confirm the WordPress host API and exact registration first. Admin tools remain separate from an external connection. Registration alone is not successful client authentication or end-to-end AI behavior. |
Rule explanations feature overview | Return Requests setup guide | Existing Order Health and Morning Store Briefing guide
