Tutorials
Apps
Get started with Shopify apps
Learn the basics of building for Shopify’s platform
- Authenticate a public app with OAuth
- Authenticate a custom app with OAuth
- Authenticate a private app with Shopify admin
- Authenticate an embedded app using session tokens
API requests
API Versions
Partner Dashboard
Build apps
Build apps for Shopify’s growing merchant ecosystem
- Build a Shopify app with Node.js and React
- Build a Shopify app with Ruby and Sinatra
- Change your app’s visibility in the Shopify App Store
- Uninstall an app with an API call
Embedded apps
- Getting started with Shopify App Bridge
- Authenticate an embedded app using session tokens
- Build a Shopify app with Rails, React, and App Bridge
- Authenticate server-side rendered embedded apps using Rails and Turbolinks
- Get session tokens using App Bridge utilities
- Use session tokens with Axios
Channels
- Build a sales channel app
- Build a marketplace sales channel
- Build a sales channel onboarding and account connection flow
- Process a payment in a sales channel with the Checkout API
Webhooks
Use app extensions
Add your app’s features to the Shopify admin
- Add a new app extension
- Add an admin link to the Shopify admin with app extensions
- Add a bulk action link to the Shopify admin with app extensions
- Add secondary navigation to your sales channel
- Create a navigation link with app extensions
Embedded apps
Online store
Test and debug apps
Prevent and troubleshoot common development problems
Build a custom storefront
Use Shopify to provide a custom shopping experience on any platform
- Create a checkout with the Storefront API
- Get started with the JS Buy SDK
- Get started with the Storefront API
- Retrieve metafields with the Storefront API
- Support multiple currencies with the Storefront API
- Support multiple languages with the Storefront API
- Update customer data with the Storefront API
Manage data securely
Collect, store, and delete merchant and customer data responsibly
- Authenticate a public app with OAuth
- Authenticate a custom app with OAuth
- Authenticate a private app with Shopify admin
- Authenticate payments with 3D Secure
- Rotate or revoke API credentials
Customer data
Update and migrate apps
Add new functionality to existing apps
- Migrate from legacy authentication methods to OAuth
- Migrate your app from REST to GraphQL
- Migrate to manage fulfillments with the FulfillmentOrder resource
- Migrate your app from legacy SDKs to Shopify App Bridge
- Migrate your app to support Collection admin links
- Migrate your app to support delivery profiles
- Migrate your app to support multiple locations
- Migrate your app to support multi-currency
- Update your app to support localization
Charge for your app
Manage one-time sales and subscriptions for your app
- Bill for your app with the GraphQL Admin API
- Identify your app business model
- Implement your app business model with the Billing API
- Charge merchants for using your sales channel with the Billing API
- Make common queries with the Billing API
Subscriptions
Manage products and inventory
Add and update product and inventory data
- Manage product inventory with the Admin API
- Manage product cost with the Admin API
- Manage product media with the Admin API
- Manage variant media with the GraphQL Admin API
- Use statuses to identify, filter, and manage products
- Manage shop locales with the Admin API
- Sync sales channels with store inventories
Metafields
Manage orders and shipping
Add and update order, shipping, and fulfillment data
- Edit an existing order with the Admin API
- Manage advanced shipping information with delivery profiles
- Manage fulfillments with Fulfillment and FulfillmentOrder resources
- Manage fulfillments with Fulfillment and FulfillmentService resources
- Perform bulk operations with the Admin API
- Manage country fields using localization extensions
Manage payments and discounts
Process transactions and customize checkout flows
Manage marketing and SEO
Optimize and promote stores, products, and campaigns
- Create marketing events and engagements
- Manage SEO data with the Admin API
- Manage marketing activity app extensions
Analytics
Automate Shopify workflows
Use triggers and actions to help merchants work faster
Kit
Flow
Translate and localize content
Make apps and themes available in multiple languages
Build apps to manage subscriptions
Build apps that let merchants sell subscriptions in their Shopify store
- Shopify subscriptions overview
- Create and manage selling plans
- Create and manage subscription contracts
- Create and manage discounts on subscriptions
- Create and manage subscription shipping rates and delivery methods
- Create a secure customer-facing subscription portal
Shopify themes
- Showing selling plan groups and selling plans on a product page
- Online store UX guidelines for subscriptions
App extensions
- Product subscription app extension overview
- Getting started building a product subscription app extension
- Create and manage a product subscription app extension
- Version and publish your product subscription app extension
- Authenticate an extension built with Argo
- Shopify App CLI Extension commands
Managing fulfillments
- Create and manage fulfillments for a prepaid subscription order
- Handling advanced fulfillment scenarios for subscriptions
- Manage orders for prepaid subscriptions
Migration guides
Themes
Get started with Shopify themes
Set up your Shopify theme development environment
Theme editing
Theme settings
- Add theme info
- Find theme development resources
- SEO for theme developers
- Include JavaScript in Shopify themes
- Deprecated theme settings
- Getting started with the Shopify Ajax API
Theme store
Manage template files
Understand the template pages that make up a Shopify theme
Manage product pages
Customize the look and feel of product listing pages
- Add quantity selectors to product pages
- Add size charts to product pages
- Show SKU numbers on product pages
Product variants and options
- Find a variant ID
- Get customers to choose an option
- Hide sold-out variants
- Localize your product prices for search engines
- Show featured image until a variant is selected
- Select variants by clicking their images
- Use products with multiple options
- Add pickup availability to product pages
- Show the remaining inventory on product pages
Manage the shopping cart
Add features or customize the behavior of the shopping cart
- Add a “Continue shopping” link to your cart
- Add a delivery date picker to your cart
- Add a gift-wrap option to your cart page
- Add more checkout buttons to the cart page
- Disable your cart in the online store
- Hide product prices
Customer details
Manage collections pages
Make popular customizations
Implement some of the most commonly requested theme changes
- Add a security badge to your online store
- Add fonts to your theme
- Choose which payment icons show in your footer
- Display discount amounts
- Open external links in a new tab
- Remove the author’s name from blog posts
- Support multiple currencies in your theme
- Verify a domain with third-party services
- Personalize gift cards with a custom image
- Interacting with the AJAX API using jQuery
Store navigation
Manage search and recommendations
Customize search results and dynamic product recommendations
- Add predictive search to your theme
- Edit your storefront search results
- Use advanced query parameters in online store search
Recommendations
Collect customer information
Add features to collect customer information and stay in touch
- Add fields to the customer registration form
- Choose which page to show when customers log in to your store
- Get consent for promotional emails when customers register
Contact pages
Troubleshoot themes
Fix and prevent common theme problems
- About content delivery networks (CDNs)
- Optimize Liquid performance with the Shopify Theme Inspector
- Add multiple files to your theme assets
- Fix “can't be larger than 64 kilobytes” errors
- Fix HTML errors in your theme code
- Fix “Parameter Missing or Invalid” errors
- Fix the colors of uploaded images
- Roll back to an older version of your theme
- Using protocol-independent URLs
Manage images and media
Customize how your theme uses images and galleries