We have several products in a store starting with the sku JM-XL (JM-XL1, JM-XL2, etc) and we used to be able to just search “jm-xl” and multiple products would appear. Now those products only appear if we type in the exact sku. We are on the Dawn theme and we have done no updates to the theme that would cause this.
Does this seem to apply to your case?
For Dawn I’d change this line:
to something like
fetch(`${routes.predictive_search_url}`
+`?q=${encodeURIComponent(searchTerm)}`
+`§ion_id=predictive-search`
+`&${encodeURIComponent("resources[options][fields]=title,product_type,variants.title,vendor,variants.sku")}`, {
This may require testing though, so try it in a draft copy of your theme.
Worth isolating which search regressed, the admin one or the storefront one, since they’re different engines and only the storefront search runs through your theme. If admin search still surfaces JM-XL1 when you type jm-xl but the storefront doesn’t, it points to storefront indexing rather than Dawn, which fits with you not having touched the theme. Storefront search doesn’t guarantee partial or substring matching on variant SKUs, and hyphenated terms get split into separate tokens, so jm-xl can quietly stop behaving like one search term. The reliable workaround is to put the value you want findable into a field search actually indexes, like adding JM-XL as a product tag, instead of leaning on SKU matching. Did this change across all SKUs, or only the hyphenated ones?