To interact with product data (defined in #42) we need an API that lets us query for products in a few ways:
1) Get product details by product name
2) Get all products by taxonomy (category, industry, brand tags -- should work the same way)
3) Leave a stub for getting product page url, but implementing that can be a different story.
It is really important we ensure the lookup is fast.
If there is a way to limit how much data we're loading, then we should explore that. The most obvious is if product sheets are by language, we only want the language of the current site we are rendering.
Only load the data once, it should be stored in memory as a singleton like we do with Placeholders already.
We also might consider using application storage for data cache with a TTL of, say, 30 minutes (or less if preview), if desired you may defer this to a follow-on story if the other requirements require a lot of work.
To interact with product data (defined in #42) we need an API that lets us query for products in a few ways: 1) Get product details by product name 2) Get all products by taxonomy (category, industry, brand tags -- should work the same way) 3) Leave a stub for getting product page url, but implementing that can be a different story.
It is really important we ensure the lookup is fast.