The blog
Shopify development,
written down properly.
Tutorials and explanations from the team building learnshopify.dev. Production Liquid patterns, the object model, theme architecture, and the judgment AI tools still get wrong.
Shopify Smart Pricing, explained: how the AI price tips actually work
Shopify's Smart Pricing app suggests markups and markdowns from your own store data, and can A/B test prices on live traffic. Here's how it generates a tip, what data it uses (and ignores), and where it fits.
Latest posts
39 articles
Should you trust Shopify Smart Pricing? A developer's guide to reviewing AI price tips
Shopify Smart Pricing's AI suggests prices from your data, but a tip is a starting point, not an order. Here's the judgment a professional brings: the store-level trap, the conversion-vs-profit trap, and what the model can't see.
Shopify's new Collections API: the shift to composable, source-based collections
Shopify's 2026-07 Admin API rebuilds collections from the ground up. Collections are no longer 'custom' or 'smart', they're a union of composable sources. Here's the new model, what it unlocks, and what to watch.
Migrating to Shopify's flexible collections: a field-by-field guide for app developers
The 2026-07 collections model is non-breaking, but if your app reads or writes collections you still need to move. Here's what maps to what, the 404 gotcha with old API versions, and what stays the same.
Variant-level collections in Shopify: what theme developers can (and can't) build yet
The new 2026-07 collections model lets a collection hold individual variants, not whole products. Powerful, but the storefront side is still rolling out. Here's what works on a collection page today, and what to verify before you rely on it.
Shopify sub-collections and layered collections: what you can build now
Shopify's 2026 collections update lets one collection pull from others (sub-collections) and blend automated rules with hand-picked products in the same collection. Here's what that unlocks, in plain terms.
Do you need to migrate to Shopify's new collections? A decision guide
There's no deadline and existing collections keep working, so who actually needs to act on Shopify's 2026-07 collections change? A clear answer for merchants, theme developers, and app developers.
Shopify Spring '26 Edition for developers: what actually changed
Shopify's Spring '26 Edition (June 17, 2026) is a pivot to agentic commerce. Here's what actually changed for theme, app, and storefront developers, and what to do about each.
Shopify color_palette setting: replace color schemes (2026)
Shopify's new color_palette setting type replaces color schemes as the recommended way to model a theme's colors. Here's the schema, the Liquid, and when to migrate.
Shopify llms.txt and agents.md: make your store AI-readable
Shopify now lets you customize /llms.txt, /llms-full.txt and /agents.md from your theme. Here is how the agents.md.liquid template works and what to put in it.
Shopify standard storefront events and actions: a theme dev guide
Shopify themes now emit standard events and expose actions so apps and AI agents interact reliably with any storefront. What it is, why it matters, how to adopt it.
The Shopify Catalog API, explained: AI product search without scraping
Shopify's Catalog API (GA June 17, 2026) turns the product catalog into queryable infrastructure for AI agents: image search, multi-modal search, and URL lookup. Here's how it works.
What is the Universal Commerce Protocol (UCP)? A Shopify developer's guide
UCP is the open standard Shopify co-developed with Google to give AI agents one shared language for commerce, from discovery to checkout. Here is what it means for you.
The Shopify AI Toolkit: Shopify in Cursor, Claude Code, and VS Code
Shopify's AI Toolkit (GA June 2026) plugs Shopify's docs, schemas, and CLI into Cursor, Claude Code, and VS Code. What it is and how to use it well.
Shopify Static Apps, explained: serverless apps with hosting and auth handled
Shopify Static Apps let you ship a real app with no server: Shopify hosts it, App Bridge and Polaris are auto-injected, and auth is handled. Here is when to use one.
Shopify Hydrogen in 2026: framework-agnostic core, explained
Spring '26 moved Hydrogen's commerce logic out of React Router into a framework-agnostic core with agent skills. What changed, why, and whether Hydrogen is still React.
Dawn vs Horizon: which Shopify theme should you build on in 2026?
A developer's decision guide to Dawn vs Horizon in 2026. The real architectural differences (theme blocks, nested blocks, web components), what each is good at, and a clear recommendation on which one to fork and learn.
Shopify developer salary in 2026: what you can actually earn
A grounded look at Shopify developer pay in 2026: employed vs freelance, junior vs senior, US vs Europe vs remote, agency vs in-house, and how the AI era changes who earns what.
How to build a Shopify mega menu without an app (Liquid)
Build a multi-column Shopify mega menu in Liquid with no app, using the real navigation object: linklists, nested link.links, and link.active. Includes a section schema with a link_list setting and accessible markup.
Shopify announcement bar without an app (dismissible, with countdown)
Build a dismissible Shopify announcement bar as a theme section with a real {% schema %}: a merchant-editable message, link, and colors, dismissal that sticks via localStorage, and an optional sale countdown driven by a merchant-set date. No app required.
How to build a Shopify cart drawer without an app (the Ajax way)
Build a slide-out Shopify cart drawer with the Ajax API and no app: add to cart with no page reload, re-read /cart.js so totals are always right, then slide the drawer open. Full, production-grade code.

How to add a sticky add to cart bar in Shopify (no app)
Build a sticky add to cart bar in Shopify with Liquid, the real product form, and an IntersectionObserver, so it slides in only after the main button scrolls away. Keeps the buy action one tap away on long product pages. No app required.

How to show an estimated delivery date on a Shopify product page
Add a "Order today, get it between Jun 14 and Jun 17" delivery estimate to your Shopify product page with pure Liquid date math. Covers the Unix-timestamp trick, making the lead time a setting, and the timezone caveat. No app required.

How to add a size chart to a Shopify product page (with metafields)
Add a per-product size chart to your Shopify product page the right way: a metafield the merchant fills in per product, rendered in a collapsible details element. Covers the metafield setup, the Liquid, and why this beats hardcoding a table. No app required.

How to add breadcrumbs to a Shopify theme with Liquid (and the SEO schema)
Build accessible breadcrumb navigation in Shopify with Liquid: the template-aware markup, the routes object, BreadcrumbList structured data for Google, and the accessibility details most copy-pasted versions miss. No app required.

How to add a "Sold out" badge to Shopify product cards (no app)
Add a Sold out badge (and an optional "Only 3 left" low-stock badge) to Shopify product cards with a few lines of Liquid. Covers product.available, the inventory fields, where to place it, and the privacy trap of exposing raw stock counts.

How to show related products on a Shopify product page (without an app)
Two ways to add a "You may also like" row in Shopify: the quick collection-based Liquid version, and Shopify's native Product Recommendations API that returns genuinely related products. Includes the AJAX loader and where each approach fits.

How to show review stars on Shopify collection product cards
Add star ratings to the product cards in a Shopify collection grid by reading the reviews.rating metafield your review app maintains. Here's the Liquid for the stars, the review count, accessibility, and hiding the block for products with no reviews.

How to become a Shopify developer in 2026 (a realistic roadmap)
A step-by-step roadmap to becoming a Shopify developer in 2026: what to learn, in what order, what to skip, and how the job changed now that AI writes the code.

Do you still need to learn Shopify development in the AI era?
AI writes Liquid in seconds, so is learning Shopify development still worth it in 2026? Yes, but the skill shifted. Here's what actually makes a Shopify developer valuable now.

Shopify sections, blocks & theme blocks explained (Horizon, 2026)
Sections, blocks, and the newer theme blocks confuse almost everyone. Here's how they actually fit together in Shopify's current Horizon architecture, with when to reach for each.

How to build a free shipping progress bar in Shopify (no app)
A complete guide to building a "You're $12.00 away from free shipping" cart bar in Shopify with Liquid, the code, the cents-vs-dollars trap, live cart updates, styling, and how to make the threshold a merchant setting. No app required.

How to format money and currency in Shopify Liquid
Shopify stores prices in cents, so {{ product.price }} renders as 1899, not $18.99. Here's how the money filter works, the difference between money and money_with_currency, and why hardcoding a $ breaks international stores.

How to display product metafields in a Shopify theme
Metafields are how you add custom data to Shopify products, ingredients, specs, care instructions. Here's how to read them in Liquid, handle the different metafield types correctly, and render rich text and references without breaking.

How to add a sale badge in Shopify with compare_at_price
Show a "Sale" badge (or a percentage off) on discounted products in Shopify using compare_at_price. Here's the Liquid, how to calculate the discount percentage, and how to handle products with multiple variants correctly.

How to truncate product titles and text in Shopify Liquid
Keep long product titles from breaking your grid. Here's the difference between Shopify's truncate and truncatewords filters, how to set a custom ellipsis, and why you should strip HTML before truncating a description.

How to loop through products in a Shopify collection with Liquid
Render a grid of products from a collection using Liquid's for loop. Here's how to limit the count, access the loop index, handle empty collections, and why you should paginate large collections instead of looping all of them.

How to set fallback values in Shopify Liquid (the default filter)
Stop empty fields from leaving holes in your theme. Here's how Shopify's default filter works, the difference between empty, blank, and nil, and the allow_false gotcha that catches everyone with booleans.

How to show "from" pricing for products with variants in Shopify
When a product has variants at different prices, a single price is misleading. Here's how to show "From $18.99" with price_min and price_max in Shopify Liquid, and only when the variants actually differ.

How to show a low-stock warning in Shopify (Only 3 left)
Add urgency with a "Only 3 left in stock" message in Shopify using variant.inventory_quantity. Here's the Liquid, the inventory-tracking gotcha that shows negative or zero counts, and how to handle variants correctly.
Want to actually build this stuff?
Reading is one thing.
Shipping a real storefront is another.
Every post here gets a hands-on lesson in the interactive editor. You're hired at Northwind Coffee Co, tickets land, you write Liquid against a live storefront. Free to start.
