Range filtering for numeric metafields in Search & Discovery

Short description of issue

Range filtering for numeric metafields in Search & Discovery not supported

Reproduction steps

  1. Create integer product metafields, e.g. custom.width_mm, custom.height_mm, custom.capacity_l.

  2. Populate products with different numeric values, e.g. width_mm = 600, 900, 1200, 1224, 1253.

  3. Add custom.width_mm as a storefront filter in Search & Discovery.

  4. Open a collection page using an Online Store theme with storefront filtering.

  5. Observe that width_mm renders as an exact-value list: 600, 900, 1200, 1224, 1253.

  6. Compare with Price, which is exposed as a range-capable filter.

Expected: numeric metafields can be filtered by min/max range, e.g. width 600–1200mm.

Actual: numeric metafields are exposed as exact-value list filters only.

Additional info

Trying to confirm if this is a known limitation or if I’m missing a native approach.

Use case: commercial equipment products where dimensions/capacity are key buying criteria.

We have integer metafields like custom.width_mm, custom.height_mm and custom.capacity_l.

Search & Discovery can expose these as storefront filters, but they render as exact-value lists, e.g. width_mm: 600, 900, 1200, 1224, 1253.

For dimensions, buyers usually need min/max filtering, e.g. width 600–1200mm or capacity 1000–1500L.

Price already supports range behaviour via price_range. Numeric metafields appear to come through as list filters instead.

Is there any native way to expose integer/decimal metafields as range-capable storefront filters, similar to price_range?

Bucket metafields like 600–899mm work, but duplicate data. Third-party apps can solve it with their own index, but that adds JS, sync, theme integration and another storefront dependency.

What type of topic is this

Feature request

Hey @Adam_Davidson :wave: thanks for raising this.

I see where you’re coming from, that’s a great use case for this functionality, For dimensions and capacity, min/max is a natural way buyers shop, and bucketing into ranges duplicates data like you said. I’m going to submit this as a feature request, and I’ll follow up here once I have any additional info to share.

Thank you @Wes-Dev-Shopify , much appreciated.