Category-specific achievement criteria
Not all apps are the same. Apps are built to address a wide variety of merchant workflows and serve many diverse functions. A great app for one workflow uses different APIs, has different extensions, and looks different from an app for another workflow.
To ensure that the Built for Shopify status represents the highest quality of apps, Shopify maintains category-specific criteria. These requirements are designed to ensure that each app that earns the Built for Shopify status excels in meeting the unique needs of the merchants it serves.
If your app belongs to one of the categories on this page, then it must meet all of the criteria listed for that category.
Product bundles apps
Anchor link to section titled "Product bundles apps"Any app that groups products together to be sold as a single unit.
Criterion | Description |
---|---|
Use bundles primitives |
Your app must either use the Admin API to create static bundles or use a However, if your app supports a bundles use case that is not yet supported through these APIs — such as selling bundles on unsupported sales channels, selling bundles as a part of a subscription, or editing orders to add or remove bundles after purchase — you may use other methods to create a bundle. |
Subscriptions apps
Anchor link to section titled "Subscriptions apps"Any app that enables customers to purchase products on a recurring basis.
Criterion | Description |
---|---|
Use subscription primitives and APIs |
Your app must use the following subscriptions primitives and APIs:
|
Use theme app block extensions |
Your app must add subscriptions on product detail pages by using an App block for themes that is compatible with Online Store 2.0. |
Follow subscriptions UX guidelines |
Your app must obey the following subscriptions UX guidelines:
|
Discounts apps
Anchor link to section titled "Discounts apps"Any app that enables merchants to define and configure price reductions.
Criterion | Description |
---|---|
Use discount primitives |
Your app must either use discount functions to define custom discount types or use the native discount APIs to create discounts. |
Do not use draft orders with custom discounts |
Your app must not create draft orders to give custom discounts. Drafts with custom discounts are designed for one-off merchant-driven flows rather than automated customer-driven flows and do not have the same reporting tools. |
Use a single redeem code per discount |
Your app must use the |
Create high quality links |
All links to your app from the Create discount button on the discounts page must direct to a page in your embedded app where merchants can create the corresponding discount. These pages must follow all relevant App Design Guidelines. |
Product reviews apps
Anchor link to section titled "Product reviews apps"Any app that enables merchants to collect product reviews.
Criterion | Description |
---|---|
Provide a flow trigger |
Your app must provide a Flow trigger that starts a workflow whenever a new review is collected. |
Use block extensions |
Your app must provide an admin block extension on customer detail pages that allows merchants to see any reviews submitted by the customer. |
Fulfillment services apps
Anchor link to section titled "Fulfillment services apps"Any app that uses its own location to prepare and ship orders on behalf of merchants.
Criterion | Description |
---|---|
Actively fulfill orders |
Your app must be active and have fulfilled 100 or more fulfillment orders in the last 28 days. If an app is not active, then it's not possible to accurately assess the other criteria for fulfillment services apps. |
Complete fulfillment orders |
Your app must have completed 99% of the fulfillment orders assigned to it in the last 28 days. New fulfillment orders that were created in the last 7 days are excluded. A fulfillment order is considered incomplete if it is in one of the following states:
|
Respond to callback requests |
In the last 28 days, your app must have responded successfully to 99% of Shopify callback requests that are sent to it, so merchants are not alerted to failing callback requests. |
Wait for merchant requests |
Your app must only fulfill fulfillment orders after a merchant requests fulfillment. |
Add tracking information |
In the last 28 days, your app must have added tracking information to 80% of the fulfillments that it creates within one hour of creation. In cases where precise tracking information isn't available from a shipping carrier URL, you can provide a custom URL to your app's site under the |
Respond to fulfillment requests |
In the last 28 days, your app must have responded to 99% of fulfillment requests within four hours by either accepting or rejecting the fulfillment request. |
Respond to cancellation requests |
In the last 28 days, your app must have responded to 99% of cancellation requests within 1 hour by either accepting or rejecting the cancellation request. |
Carrier services apps
Anchor link to section titled "Carrier services apps"Any app that connects to a carrier service (also known as a carrier calculated service or shipping service) to provide real-time shipping rates to buyers. Learn more about how to optimize your app's carrier rates performance. To assess your app's performance, your must make a minimum of 1000 requests in the last 28 days.
Criterion | Description |
---|---|
Respond quickly to rate requests |
Over the last 28 days, the carrier rate endpoint provided by your app must respond in fewer than 500 milliseconds for 95% of calls. |
Complete rate requests reliably |
Over the last 28 days, the carrier rate endpoint provided by your app must successfully respond to 99.9% of requests. |
Returns and exchanges apps
Anchor link to section titled "Returns and exchanges apps"Any app that facilitates the process of managing and processing product returns, exchanges, and refunds for customers.
Criterion | Description | |
---|---|---|
Sync returns information |
Your app must use the appropriate APIs to communicate all lifecycle events of a return to Shopify. These include: | |
Include exchange line items |
Your app must create exchange line items on an order when managing exchanges. You must also remove exchange lines from the order if they are no longer needed. |
|
Include shipping and restocking fees |
Your app must add shipping fees and restocking fees on an order when applicable. |
Invoices and receipts apps
Anchor link to section titled "Invoices and receipts apps"Any app that generates invoices or packing slips for orders
Criterion | Description |
---|---|
Enable printing on orders pages |
Your app must use an admin print action extension to let merchants print invoices or packing slips for an individual order directly from the orders detail page as well as for any selected orders from the orders index page. |