Dedicated to the Hydrogen framework, headless commerce, and building custom storefronts using the Storefront API.
Hi, let me get straight to an example:
I have a product linked on the webpage:
https://store.177milkstreet.com/products/fuji-cutlerly-fa-70-chinese-style-cleaver
When you visit, you'll find out that it redirects you to:
https://store.177milkstreet.com/products/fuji-cutlery-fa-70-chinese-style-cleaver
What is the difference? Well – a typo: "cutlerly" vs "cutlerly".
Shopify does the good job to discover that it is a typo, but in my system I'm using this product handle extracted from URL. When I get one from the link, API responds:
```
{ "data": { "productByHandle": null }}
```
What kind of mechanism is behind Shopify Store itself to discover the proper product? Is there any change to get it the same way in Storefront API?
Thanks!
Solved! Go to the solution
This is an accepted solution.
If anyone would look for an answer in this topic, this is what we ended up:
1. URL redirects are responsible for this mechanism, but they only work for Online Store and not API.
2. Storefront API actually defined UrlRedirect object to get a list of all redirects, but this is not yet available in any stable version of the API.
3. You can browse it and use it in Unstable API version.
As a solution we decided to drop UrlRedirect object API and create super-simple microservice that requests for broken URLs and listens if they respond with 301 Redirect. If they do – we return new URL in response, which contains a product handle that is queryable.
My personal opinion is that Shopify should store not "URL redirects" but whole handles for product history and use it for URL but also API requests.
This is an accepted solution.
If anyone would look for an answer in this topic, this is what we ended up:
1. URL redirects are responsible for this mechanism, but they only work for Online Store and not API.
2. Storefront API actually defined UrlRedirect object to get a list of all redirects, but this is not yet available in any stable version of the API.
3. You can browse it and use it in Unstable API version.
As a solution we decided to drop UrlRedirect object API and create super-simple microservice that requests for broken URLs and listens if they respond with 301 Redirect. If they do – we return new URL in response, which contains a product handle that is queryable.
My personal opinion is that Shopify should store not "URL redirects" but whole handles for product history and use it for URL but also API requests.