Welcome to the Custom Storefronts community board. Please read through this information prior to asking your question.
What is a custom storefront?
- Think mobile apps for your business, a custom front end for your website, adding commerce into a video game, offline commerce such as a smart mirror - and more.
- If you have questions about customizing your theme please post in the Shopify Design board.
Bug Reporting + Feedback:
- If you are reporting a bug with a specific SDK please utilize the Github repos. Otherwise, please post it here with the title [bug] followed by a brief description.
- For more discussion or to provide feedback, head to the Storefront API Feedback - Github Repo.
Setup Tips:
Rate Limiting:
- The Storefront API is rated limited by the buyer IP and can not be utilized server-side or with a proxy for this reason.
- The Storefront API utilizes a time-based leaky bucket algorithm and every request to the Storefront API costs at least 0.5 seconds to run.
Authentication:
- The Storefront API is an unauthenticated API and access is managed by scopes
- For a private app, you will utilize the storefront access token from the Admin. This is different from the API Key and Password used for the Admin API.
- For a custom app or public Sales Channel, make sure the app is first installed, then request a Storefront API access token from the Admin API using either the
StorefrontAccessToken
REST resource orstorefrontAccessTokenCreate
via GraphQL mutation.
Checkout + Performance:
- The Storefront API returns a Web URL field that your customer will complete the checkout process on.
- Sales Channels can request payment processing permissions to complete checkouts with mutations.
- It is best practice to only initialize a checkout when necessary.
Custom Domain:
- If you are having issues with your .myshopify.com URL being surfaced at checkout, please check that you are initializing the client and API with the custom domain such as https://backyardbotanicgoods.com/api/2020-04/graphql vs. coolstore.myshopify.com/api/2020-04/graphql
Flash Sales:
- The Storefront API is not designed to be used for flash sales for two main reasons:
- Bot protection is unavailable.
- The Storefront API has a limit on the amount of checkouts that can be created per minute. If an API client exceeds this throttle, then a
200 Throttled
error response is returned. Shopify recommends designing your app to be resilient to this scenario. For example, you could implement a request queue with an exponential backoff algorithm.