We're a public app currently searching for products by querying Admin GraphQL QueryRoot.products with a search query + cursor pagination.
This works fine but we also need to retrieve presentment prices for each search result - both price and compareAtPrice. Our users want to see discounts if any and also same prices their customers are seeing in their currencies.
The product node doesn't have any concept of either compareAtPrice or presentmentPrices, so to achieve this, in the query we request that each product node also return its first variant and its presentmentPrices.
All works, but the API cost pre search result goes up from ~1-2 per result to ~8-10 per result. When searching for terms that result in large results this can drain the API budget quite quickly even when using pagination. 5 users doing a search that results in 20 results each (even w/o pagination) will max out the API budget.
Was wondering if anyone had any ideas of how to do this better. Unfortunately the only price info in the product node is priceRange/priceRangeV2 which are in shop currency (and don't show compareAt prices either). I am aware that the StorefrontAPI supports this but as a public app this isn't relevant for us.