Coverage Scanner
Developer Guide
Find configuration problems before your customers do.
A misconfigured shipping zone is invisible — right up until the moment a customer can't complete their purchase. By then, the damage is already done: a lost sale, a frustrated customer, and potentially a negative review or a support ticket to deal with.
The Coverage Scanner is a built-in diagnostic tool that analyses every shipping zone across your store and surfaces configuration problems proactively — before a single customer is affected. Run it after any configuration change, before a peak trading period, or as a routine health check to stay confident that your checkout is working exactly as intended.
It doesn't just flag missing rate tables. It understands the full complexity of your configuration — scheduled windows, order value gates, tag-based routing rules — and checks that they all work together without gaps, overlaps, or silent failures. Navigate to Coverage in the admin sidebar, select a store, and click Scan coverage to run the analysis instantly.
What the scanner checks
The scanner evaluates every zone against five categories of issue. Most of these would be undetectable without running a live rate request to a specific address — the scanner surfaces them all in one pass.
- No active rate tables — the zone has no rate tables at all, or every table is disabled. Any customer with a destination in this zone will reach checkout and see no shipping options.
- Scheduling gaps and overlaps —
validFrom/validTowindows that leave a period where no table is active (gap), or where multiple tables are active simultaneously in a way that could produce unexpected results (overlap). The most common issue when setting up seasonal pricing. - Order value gaps — when multiple rate tables use
minOrderValue/maxOrderValueguards, the scanner verifies the ranges fit together without gaps. A £1 gap between tables means orders at exactly that value return no rates. - Tag coverage gap — every active table in the zone has
requiredTagsset, meaning orders with no matching tags return no rates. The scanner flags when there is no unrestricted fallback table. - Ungated free shipping — a
freerate table has no minimum order value, meaning every order ships free regardless of cart total. Flagged as informational — may be intentional, but worth confirming.
Zone statuses at a glance
After the scan, every zone is assigned one of four statuses. The summary bar at the top shows the count in each category so you can see your overall coverage health immediately.
| Status | Meaning | Action required |
|---|---|---|
| Covered | At least one active rate table with no detected issues. | None — this zone is healthy. |
| Warning | Active tables exist but one or more issues were detected. Rates will still be returned but may be incomplete under certain conditions. | Review and resolve the warnings in the expanded zone row. |
| No coverage | No active rate tables. Orders to this zone will receive no shipping options at checkout. | Create a rate table for this zone or enable an existing inactive one. |
| Inactive | The zone itself is disabled and excluded from all rate evaluation. | Enable if it should be active, or leave as-is if intentionally disabled. |
Drill down into any zone
Expanding any zone row reveals the full picture of what the rating engine will do for orders to that destination.
- Active tables — currently eligible rate tables that will be evaluated, including rate type and carrier.
- Skipped tables — tables that exist for this zone but are currently bypassed: disabled, outside their schedule window, or outside their order value range.
- Warnings and errors — specific, actionable messages for each issue detected with enough context to identify the root cause.
Common fixes
| Warning | Fix |
|---|---|
| No active tables | Create a rate table for this zone, or enable an existing inactive one |
| No unrestricted fallback table | Add a rate table with no requiredTags to handle untagged orders |
| Overlapping schedule windows | Adjust validFrom/validTo so windows do not overlap. See Scheduling |
| Scheduling gap | Ensure the validTo of one table meets exactly with the validFrom of the next |
| Order value gap | Ensure maxOrderValue of one table aligns exactly with minOrderValue of the next |
| Ungated free shipping | Set a minOrderValue on the free rate table, or confirm always-free shipping is intentional |
Built to work alongside every other feature
- Scheduling — the essential companion to scheduled rate tables. Set up your seasonal pricing, then run the scanner to confirm there are no gaps between windows.
- Tags & Routing — checks whether your tag configuration leaves any order type without a valid rate, and flags zones where untagged orders would fall through.
- Rate Types — when combining multiple rate types with order value guards, the scanner validates that guards cover every possible order value without gaps or contradictions.