# Customising a Shopify theme beyond the editor

> The Shopify theme editor only shows the settings a theme’s developer chose to expose in each section’s {% schema %} file. Once a request falls outside that scope — conditional layout, section-specific behaviour — it means editing Liquid, JSON or CSS directly, outside the visual editor.

- Source canonique : [https://allaux.fr/en/shopify/problemes/personnaliser-theme-au-dela-editeur](https://allaux.fr/en/shopify/problemes/personnaliser-theme-au-dela-editeur)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Duplicate the theme first, then open Online Store, Themes, Edit code. If the setting you want is absent from the visual editor, it simply is not declared in that section’s {% schema %} block: add the setting there, then read it back in the section’s Liquid. The values entered are stored in the JSON templates under templates/, not in the Liquid file.

## How I approach a customisation request

1. **Check whether the setting already exists** — Before writing any code, I check whether what’s wanted is already reachable in the editor on a recent Online Store 2.0 theme — a lot of requests turn out to be an existing setting nobody found.
2. **Work out what’s actually blocking it** — If nothing is exposed, I check whether the logic is achievable in plain Liquid (conditional display, section structure, content based on a metafield) or whether it depends on data Liquid can’t reach on its own.
3. **Edit the theme locally** — I work with the Shopify CLI locally or through the theme’s GitHub integration, not the online editor, to keep a change history and test before publishing.
4. **Separate a theme edit from a mini-app** — If the request depends on data Liquid can’t see — a customer’s order history, an external calculation — I say so before quoting: that’s no longer a theme edit, it’s an app calling the Admin API.
5. **Test, then publish** — I test on a duplicated theme, never the live one, then publish once the result is validated.

## What I hear regularly

- I can’t find any setting in the editor to do what I want
- The theme keeps showing the same thing no matter what I change in the settings
- My previous developer edited the theme directly and I don’t know what’s safe to touch now
- I want a section to display differently depending on which customer is logged in
- The agency that built my theme says it’s “not possible”, without explaining why

## Why the editor stops where it stops

An Online Store 2.0 Shopify theme is built from Liquid templates, JSON templates describing the sections and blocks of a page, and a {% schema %} file per section that declares which settings appear in the editor. Anything not declared there stays invisible in the customisation panel, even if the underlying logic exists in the theme’s code.

Liquid runs in a sandboxed environment: no direct database access, no arbitrary server-side code execution. That’s exactly why some requests that sound simple — “show different content based on a customer’s order history” — aren’t a theme edit at all: they need a small app calling Shopify’s Admin API and feeding the result back to the page.

Before quoting anything, I work out which side a request falls on: a self-contained Liquid, section-JSON or CSS/JS change limited to the theme; or a job that needs an app or a Shopify Function, which changes the tooling and the scope entirely.

## What a theme engagement covers, and what it doesn’t

> Restructuring a section’s Liquid, adding conditional display logic, building a new reusable section — that’s work I take on. Deep customisation of the information, shipping and payment steps, through Shopify Functions or Checkout Extensibility, needs a Shopify Plus plan and sits outside what I cover as a generalist — I’d rather say so upfront than have it surface halfway through a job. Thank you and Order status page extensions, by contrast, are open to the other plans.

## Worth reading next

- **Custom development** — For a feature that goes beyond the theme and touches the Admin API. ([/services/developpement-sur-mesure](/services/developpement-sur-mesure))
- **Integrations and APIs** — For connecting the theme to an external system through an app. ([/services/integrations-api](/services/integrations-api))
- **Shopify: overview** — The other kinds of Shopify work I take on. ([/shopify](/shopify))

## FAQ

### Why can’t I find a setting for what I want to do in the editor?

Because the editor only shows what the theme’s developer defined in each section’s schema. If the option wasn’t planned when the theme was built, it appears nowhere in the editor, even if the result is technically possible in Liquid.

### Is editing the theme directly risky?

Not if it’s done properly: I work on a copy of the theme or through the Shopify CLI locally, never on the published theme, and I test before switching it live.

### How do I know if my request is a simple theme edit or a bigger project?

If everything that needs to be shown already exists in Shopify (product, collection, logged-in customer, metafield), it’s Liquid. If it depends on an external calculation or data Shopify doesn’t store natively, it needs an app calling the API.

### Can you work on any Shopify theme?

On a standard Online Store 2.0 theme, yes. On a very old theme, or one heavily modified by several developers over time, I always start with a code audit before quoting anything.
