Last updated: October 5, 2026 · 3 min read · By Ali Raza
Use theme customisation for how your Shopify store looks: layouts, sections, product pages and styling. Use a custom app when you need new behaviour: pricing or discount logic (Shopify Functions), checkout additions (checkout UI extensions), data syncing with other systems, or features that must survive a theme change. Since Shopify retired checkout.liquid in 2024 and 2025, checkout changes must go through apps and Checkout Extensibility.
Shopify store owners often ask a developer to “add a feature” without knowing whether it belongs in the theme or in an app. The choice matters: features built in the wrong place break when the theme changes, slow the store, or cannot do what you need at all.
This guide explains the difference, what changed with Shopify’s checkout, and how to decide, based on the Shopify apps and bundle features Upstack Web has built.
Theme or app?
What is theme customisation good for?
- Page layouts, sections and blocks.
- Product page design, collections and navigation.
- Branding, typography and styling.
- Content-driven features using metafields.
Theme changes are tied to the theme. If you switch or heavily update your theme, custom code there may need to be redone.
When do you need a custom Shopify app?
- Pricing and discount logic that built-in discounts cannot handle, using Shopify Functions.
- Checkout changes such as extra fields, banners or validations, using checkout UI extensions.
- Integrations with your CRM, ERP, inventory or fulfilment systems.
- Back-office tools for your team inside the Shopify admin.
- Features that must survive theme changes, delivered as theme app extensions.
What changed with Shopify checkout?
Shopify deprecated checkout.liquid, the old way of customising checkout with code. For Shopify Plus stores, the information, shipping and payment pages had to move by August 13, 2024, and the Thank you and Order status pages by August 28, 2025. Checkout Extensibility is now the only way to customise checkout: the checkout editor for branding, plus apps built with checkout UI extensions, Shopify Functions, web pixels and post-purchase extensions.
Public app, custom app or theme app extension?
- Public apps from the App Store are the first thing to try; many features already exist. See our build vs buy guide, which applies to Shopify apps too.
- Custom apps are built for one store, for features or integrations no public app offers.
- Theme app extensions let an app add blocks to your theme without editing theme code, so they survive theme changes.
What about product bundles on Shopify?
Bundles are a common case. Shopify’s free Bundles app covers fixed bundles and multipacks; mix-and-match and complex pricing need a third-party or custom app. Our guide to product bundles on WooCommerce and Shopify compares the options.
How do you decide?
- Describe the feature in one sentence: does it change appearance or behaviour?
- Search the App Store for an existing public app.
- If it touches checkout, pricing or other systems, plan for an app.
- If it is visual and theme-specific, customise the theme.
Upstack Web builds Shopify custom apps, theme app extensions and Functions through our plugin and app development service.
Frequently asked questions
Should I customise my Shopify theme or build an app?
Customise the theme for appearance and layout. Build an app for new behaviour such as pricing logic, checkout changes, integrations or features that must survive a theme change.
Can I still edit checkout.liquid on Shopify?
No. Shopify deprecated checkout.liquid; Plus stores had to upgrade the checkout pages by August 13, 2024 and the Thank you and Order status pages by August 28, 2025. Checkout is now customised through Checkout Extensibility.
What is a Shopify theme app extension?
A way for an app to add blocks to your theme without editing theme code, so the feature keeps working when you change or update your theme.
What are Shopify Functions?
Shopify Functions let developers customise back-end logic such as discounts, payment and delivery options, and checkout validations inside a custom app.
