Products and pricing
This section covers the APIs and extension points for working with a store's catalog, changing how buyers can purchase products, and adjusting prices at checkout.
Pages in this section are organized by the merchant problem they solve. A bundling app and a subscriptions app both write to the product catalog, but they solve different problems and use different parts of the platform.
Anchor to Product merchandisingProduct merchandising
Product merchandising covers reading and writing what the store sells. Beyond products and collections, Shopify has purpose-built models for common merchandising patterns:
- Product bundles sell several products as one purchasable unit, with inventory tracked against the components.
- Combined listings present separate products as one listing with shared options.
- Unlisted products exist in the catalog without appearing in the storefront.
Use these models instead of building your own with metafields and custom logic. Shopify needs to understand the structure to price and fulfill these products correctly at checkout.
Anchor to Purchase optionsPurchase options
Purchase options change the terms of a sale. The same product can be sold once, on a subscription, or deferred as a pre-order or Try Before You Buy.
Selling plans define the terms. Merchants create and edit those plans with purchase options extensions, which add an admin UI extension to the product and variant pages.
How you present the plans to customers depends on where the sale happens. Online, you present them in the storefront or theme. In person, staff can add a subscription to a Shopify POS order with a POS UI extension. In both cases, customers manage their subscriptions afterwards through a customer portal.
If your app manages subscriptions, then it also needs to handle the contracts, billing cycles, and fulfillments that follow the first order.
Anchor to DiscountsDiscounts
Discounts run as Shopify Functions inside Shopify's checkout, so your pricing logic applies reliably at the moment of purchase without a round trip to your backend. Because it runs while the buyer is checking out, discount logic needs to be fast and deterministic.
Anchor to Shopify CollectiveShopify Collective
Shopify Collective connects retailers and suppliers so merchants can sell products they don't hold. Apps can share and import products, define shipping rates, and manage fulfillment orders between the two stores.
Anchor to Next stepsNext steps
- Read the GraphQL Admin API product reference for the objects behind all of this.
- Attach your own attributes to products and orders with custom data.
- If you're changing what buyers see in checkout, then start from Checkout.