Storefront widgets
Fitment table
The full compatibility list for a SKU.
The compatibility list for one SKU: every vehicle it fits, grouped and year-ranged, on the product page.
What it shows#
Rows of years, make, model and submodel, collapsed into ranges — 2015–2026 Ford F-150 rather than twelve rows. Notes appear against the vehicles they apply to.
The list is the union of two things:
- Mappings — everything your sources claim for this SKU. This is the whole list for most categories.
- Spec inverse matching — for wheels and tires with the Fitment Data add-on, every vehicle whose envelope this product's specs satisfy, even where no mapping exists.
The second is why a wheel nobody ever mapped can still list hundreds of vehicles.
Year grouping#
Ranges break where the fitment reason changes, not merely where years are contiguous. If a platform changed mid-generation — a new bolt pattern, a different caliper, a facelift that moved the bumper — you get two rows rather than one misleading range, which is exactly the case a shopper needs to see.
Placement#
A section block on the product template, usually below the description or inside a tab. It is heavy content, so it belongs below the fold; the block ships collapsed by default with a "Show all" control.
Settings#
- Collapsed or expanded initially, and how many rows to show before "Show all"
- Whether to filter to the active vehicle's make first (useful for very wide-fitment SKUs)
- Column set: with or without submodel
- Search box within the table
- Empty-state copy
SEO#
The table is rendered as real HTML in the page, not fetched by script, so it is indexable. For a wide-fitment SKU that is a meaningful amount of long-tail text — and it is the honest kind, because it is generated from the same data that answers the shopper.
A cabin filter or a universal accessory can match tens of thousands of vehicles. The table caps what it renders and says so ("Fits 12,400 vehicles — showing the first 500"). If a product is genuinely universal, flag it universal in the editor and the table shows that instead of a list nobody will read.
Support is answered by the people who wrote this code — not a ticket queue.