Shopify Theme Developer Cheatsheet (2025 Edition)

6 minutes read
Shopify Theme Development
Table of Contents
Key Takeaways
  • Learn how to build data-driven, dynamic Shopify themes with Liquid syntax.
  • Ensure clean, scoped codes with render over include.
  • Leverage dev tools and JSON output for smarter debugging.
  • Get unmatched user experience and speed with asset optimization.
  • Adhere to Shopify CLI and Theme Check.

Shopify has become the go-to destination for eCommerce development, with its best-in-class features, functionalities, marketplace, and more. While a lot of things come out of the box, you still need to make a few tweaks (especially in the themes) to go the extra mile.

Whether you’re just getting started with Shopify theme building and customization or you’re a Liquid wizard in disguise, having a quick-access cheatsheet can save your time, brain cells, and maybe even your caffeine budget.

That’s why we have handcrafted the 2025 version of the Shopify Theme Developer Cheatsheet, where you can find all essentials, from development best practices and Liquid syntax to must-know objects.

So, without further ado, let’s jump in! One {{ handle }} at a time.

1. What is Shopify Theme Development?

Before we start slinging Liquid tags, let’s define the basics. Shopify theme development refers to the process of developing and customizing the theme (the frontend presentation layer) of a store. It typically includes the following:

  • HTML, CSS, and JavaScript development
  • Development using Shopify’s open-source templating language – Liquid
  • Integration with Shopify’s data objects such as product, collection, cart, etc.
  • Cross-device and cross-browser compatibility
  • Following Shopify’s Online Store 2.0 guideline

Themes power the customer experience. A well-crafted theme improves conversion, enhances branding, and reduces bounce rate.

2. Must-Know Liquid Syntax for Theme Developers

Liquid is the secret sauce of Shopify themes. It’s logic-meets-template, designed for building dynamic storefronts without diving into heavy backend logic.

Here’s your essential syntax list:

SyntaxDescription
{{ variable }}Outputs a value
{% if condition %}Conditional logic
{% for item in array %}Loops through an array
{% assign x = y %}Sets a value
{% render ‘snippet’ %}Inserts a snippet

Pro Tip: Avoid using include (legacy). Use render for modular, maintainable code.

3. Key Liquid Objects Every Developer Should Know

Liquid comes with predefined objects that give you access to your store’s data. Here are the core ones you’ll use regularly:

Product Object (product)

These are some of the most commonly used product properties (from the PDF and Shopify Docs):

PropertyWhat It Does
{{ product.title }}Displays the product’s name
{{ product.handle }}Used to generate product URLs
{{ product.description }}Full product description
`{{ product.descriptiontruncate: 100 }}`
{{ product.type }}Displays product category
{{ product.vendor }}Brand or manufacturer name
{{ product.tags }}Array of tags for filtering/searching

These objects let you loop through collections, filter products, show dynamic content, and personalize product pages.

4. Folder & File Structure of Shopify Themes

Every theme follows a standardized file and folder structure. Let’s break it down:

FolderPurpose
/assetsCSS, JS, fonts, images
/configSettings data (e.g., settings_schema.json)
/layoutMain templates like theme.liquid
/localesTranslations for multi-language support
/sectionsReusable content blocks (e.g., hero, banner)
/snippetsSmall reusable code blocks (e.g., buttons, badges)
/templatesCore templates for pages (e.g., product.liquid, cart.liquid)

Understanding where everything goes helps you build organized and scalable themes.

5. The Online Store 2.0 (OS2.0) Paradigm Shift

Since its rollout, Online Store 2.0 has been a game-changer. This is what you get with it:

  • Sections Everywhere: Not just the homepage, you can now use sections on any page.
  • Dynamic Sources: Theme content can bind to dynamic store data, such as products or collections. 
  • App Blocks: Apps can now inject their widgets directly into the theme, via blocks.

What You need to know:

  • OS 2.0 now has templates like main-product.liquid and main-collection.liquid 
  • Every template should reference a JSON file (e.g., product.json) to enable block-based editing in the Theme Editor.

6. Best Practices for Shopify Theme Development

7. Theme Settings & Customization (settings_schema.json)

This file powers the Theme Editor’s UI, allowing merchants to toggle visibility, colors, images, and more.

Key Schema Blocks:

{

  "name": "Hero Image",

  "settings": [

    {

      "type": "image_picker",

      "id": "hero_image",

      "label": "Upload Hero Image"

    },

    {

      "type": "text",

      "id": "hero_text",

      "label": "Hero Text"

    }

  ]

}

Thanks to this, merchants don’t have to touch the code to customize themes. This is a huge benefit for store owners with little to no technical knowledge.

8. Advanced Liquid Filters & Operators

After you get a grip on the basics, you will be able to manipulate data with Liquid filters. These little tools help you modify strings, numbers, arrays, and objects right inside your templates.

Most-Used Filters for Theme Development

FilterPurpose
`upcase`
`downcase`
`capitalize`
`truncate: 50`
`slice: 0, 10`
`join: “, “`
`split: “, “`
`replace: “old”, “new”`

Example:

{{ product.title | upcase }}  

{{ product.description | truncate: 120 }}

Logical Operators in Liquid:

You’ll often need to evaluate logic. Here’s what you get:

  • == → Equal to
  • != → Not equal
  • > / < → Greater than / Less than
  • or, and, contains → Combine or check values
{% if product.tags contains 'featured' and product.available %}

  <span>Featured & In Stock</span>

{% endif %}

9. Useful Tools and Resources for Shopify Theme Devs

Shopify theme development isn’t just about code; it’s about using the right tools to build better and faster. Here are some essentials:

Shopify CLI (Command Line Interface)

Your must-have toolkit for:

  • Creating new themes
  • Watching local changes
  • Deploying to stores
  • Previewing themes without publishing

shopify theme dev

Theme Check

An official static analysis tool to catch Liquid errors, performance issues, and bad practices in your codebase.

  • Run it via CLI or integrate with VS Code
  • Helps keep themes compliant with Shopify’s standards

Online Store 2.0 Documentation

Always check Shopify’s dev docs for updates. OS2.0 is evolving fast and staying updated is critical.

GitHub + Git Workflow

Never build without version control. Branch often. Commit regularly. Avoid crying later.

10. Debugging Liquid

Something broken? No worries. Debugging Liquid is half instinct, half discipline.

Use {{ debug | json }}

Print complex variables in JSON format to understand their structure.

{{ product | json }}

Check for typos in tags

Remember, Liquid is whitespace-tolerant but case-sensitive.

{% if Product.title %} → ❌

{% if product.title %} → ✅

Comment out blocks to isolate issues

{% comment %}

  Debugging this block

{% endcomment %}

Use Shopify’s Preview + Console Logs

Open Theme Editor → Preview store → Inspect element → Watch errors, console logs, network activity.

11. Real-Life Scenarios You’ll Encounter (and How to Handle Them)

Let’s face it — developing Shopify themes means solving real, weird, edge-case puzzles.

Client wants different product badges for different tags

{% if product.tags contains 'bestseller' %}

  <div class="badge badge--bestseller">Bestseller</div>

{% elsif product.tags contains 'new' %}

  <div class="badge badge--new">New Arrival</div>

{% endif %}

Custom collection banner on only certain collections

{% if collection.handle == 'summer-sale' %}

  {% render 'collection-summer-banner' %}

{% endif %}

Homepage with dynamic blocks and call-to-action

Use section files and blocks inside schema to let merchants configure content without hardcoding.

{% schema %}

{

  "name": "Hero",

  "blocks": [

    {

      "type": "text",

      "name": "Headline"

    },

    {

      "type": "image_picker",

      "name": "Hero Image"

    }

  ]

}

{% endschema %}

12. Theme Performance Optimization Checklist

Slow themes are conversion killers. Here’s a quick performance tune-up plan:

  • Use lazy loading: <img loading=”lazy”>
  • Minify CSS & JS: Use build tools like Webpack or Gulp
  • Avoid excessive nested loops: Expensive in Liquid
  • Limit external scripts: Google Fonts? Analytics? Don’t overdo it
  • Compress images: Use WebP or compressed JPEGs

Shopify also recommends using the Lighthouse Report in Chrome DevTools to measure performance impact.

13. Print-Ready Cheatsheet for Quick Access

If you’re like most developers, you probably want something you can stick on your wall. Here’s a quick-print summary:

Syntax Shortlist

{{ variable }} → Output value

{% if condition %} → Logic

{% for item in array %} → Loop

{% assign x = y %} → Assign value

{% render 'snippet' %} → Include file

Product Object Snippets

{{ product.title }}

{{ product.handle }}

{{ product.description | truncate: 120 }}

{{ product.tags }}

CLI Commands

shopify theme init

shopify theme dev

shopify theme push

Final Thoughts

Being a Shopify theme developer in 2025 isn’t just about knowing Liquid — it’s about thinking modularly, developing for scalability, and building user-friendly experiences. Whether you’re debugging a Liquid loop or architecting a full Online Store 2.0 layout, the key is to stay curious, stay updated, and keep your workspace DRY (Don’t Repeat Yourself).

FAQs

Liquid is Shopify’s templating language used to output dynamic content in themes, like product titles, prices, and logic-based conditional layouts.

Always duplicate the theme before editing, use the Theme Editor for safe changes, and test everything locally using Shopify CLI and Theme Check.

render is the modern, recommended tag that scopes variables locally, unlike include which is now deprecated and can cause variable conflicts.

Yes! Thanks to Online Store 2.0, you can now use sections on any page using JSON templates -not just the homepage.

Use {{ variable | json }} to inspect data, check logic with comments, and preview your theme with browser dev tools and console logs.

Get eCommerce insights, tips, and best practices.

Picture of Mohammad Aamir

Mohammad Aamir

Seasoned Tech Lead with a balanced background in both service-based and product/SaaS environments, bringing over a decade of expertise in backend development, CRO, and analytics.

You May Also Like

Latest Blogs

Send Feedback

Request PWA Demo