| [ Web Proxy ] |
| Viewing: https://shopify.dev/docs/apps/build/purchase-options | [Back] [Original] |
Purchase option apps provide merchants and customers with various ways to sell and buy products, beyond the "buy now, pay now, and ship now" experience. For example, customers can place an order for an album before it's released or place a subscription order to receive a bag of coffee beans every month.
This guide describes what purchase options are, how they work, and some tools and resources to consider before you get started.
A purchase option determines how customers can buy products from a store. Purchase options can help merchants manage cash flow and inventory, have flexibility on product launches, and diversify marketing strategies.
Purchase options include subscriptions and deferred purchase options.
Subscriptions enable customers to purchase products on a recurring basis. For example, customers can do the following:
Subscriptions can be sold through online channels and Shopify POS (requires POS app version 10.13+).
For more information, refer to Subscriptions.
Pre-order and TBYB enable customers to purchase products with deferred payments or deliveries. For example, customers can do the following:
You can enable deposits for pre-order and TBYB. Shopify stores a customer's payment method so that merchants can collect the remaining balance amount without contacting the customer.
For more information, refer to Pre-order and Try Before You Buy (TBYB) apps.
A purchase option defines how a product can be sold and specifies selling plan policies around pricing, delivery, and more.
For example, a subscription can include "Delivery every week, 15% off" and "Delivered every two weeks, 10% off" selling plans.
Selling plans include configurations of the following policies:
[Purchase option policies]You can create subscriptions by configuring pricing, delivery, and billing policies.
You can create deferred purchase options by configuring pricing, inventory, delivery, and billing policies.
For more information, refer to Subscriptions and Deferred purchase options.
The following diagram illustrates the GraphQL Admin API objects for purchase options:
[Graph Admin API object for purchase options]SellingPlanGroup object includes one or more SellingPlan objects.SellingPlan object specifies how a product can be sold, such as "Weekly delivery" or "Monthly delivery". Policies are organized into SellingPlan.SellingPlanGroup includes products (Product), product variants (ProductVariant), and policy configurations (SellingPlan).The category field represents the selling plan category that's used to filter orders by selling plan category on the order page. The category field supports the following approved categories:
SUBSCRIPTION
PRE_ORDER
TRY_BEFORE_YOU_BUY
If you want to offer a category that isn't listed above, then set the category field to OTHER, and fill out our request form, where we'll review your request for a new selling plan category.
Purchase option apps extend multiple Shopify surfaces. Choose where you want to add functionality:
The following are our principles for extending the Shopify platform to support purchase options.
Purchase option apps provide merchants and customers with various ways to sell and buy products, beyond the "buy now, pay now, and ship now" experience.
Checkout determines charge amounts, payment terms, and payment and shipping methods. Checkout needs to be accurate and have the highest standards of performance and reliability at global scale.
Ensuring that merchants are using Shopify's checkout guarantees performance and integration with Shopify's core feature set and ecosystem of apps. As Shopify and its ecosystem evolve, checkout is crucial to ensure a sustainable long-term journey for merchants.
To maximize merchant success, Shopify models and stores business operational data related to purchase options. A centralized location for key purchase option business data can help merchants mitigate integrity risks and reduce synchronization costs.
Both Shopify and apps should be able to access the purchase option business data to help merchants understand and grow their business. The following are examples of purchase option business data:
Merchants can use purchase options in various ways depending on the industry, product type (physical or digital), and business size. Shopify's role is to create a platform where developers can provide creative solutions for merchants to effectively manage their purchase options.
To use the GraphQL Admin API for purchase options, your app needs to request the following access scopes:
You must request permission for the access scopes that are marked with permissions required. To learn how to request permission, refer to orders permissions and subscriptions permissions.
You must request permission for the access scopes that are marked with permissions required. To learn how to request permission, refer to orders permissions and subscriptions permissions.
| Access scope | Description | Subscriptions | Deferred purchase options |
|---|---|---|---|
write_products |
Allows your app to write products | ||
read_all_orderspermissions required |
Allows your app to read all orders rather than the default window of 60 days worth of orders | ||
read_customer_payment_methodspermissions required |
Allows your app to read customer payment methods | ||
read_own_subscription_contractspermissions required |
Allows your app to read subscription contract mutations for contracts they own | ||
write_own_subscription_contractspermissions required |
Allows your app to write subscription contract mutations for contracts they own | ||
read_purchase_options |
Allows your app to read purchase options | ||
write_purchase_options |
Allows your app to write purchase options | ||
read_payment_mandatepermissions required |
Allows your app to read payment mandates | ||
write_payment_mandatepermissions required |
Allows your app to write payment mandates |
To help you build and manage purchase options, Shopify offers the following developer tools and resources.
| Tools/Resources | Description |
|---|---|
| App extensions | Surfaces your app's purchase options in the Shopify admin |
| App proxy | Fetches data from an app proxy server to display on a page of the online store. By using an app proxy, customers can have a seamless experience managing their existing agreements under the shop's domain. |
| Storefront Liquid drops and properties | Allows you to integrate purchase options into a store's theme |
For information on UX guidelines, refer to the following resources:
| Web Proxy Viewer | New URL | Original Page |