Theme architecture
Sellerlane themes use the Liquid template language with a structure familiar to anyone who has worked with Shopify themes.
Directory layout
| Folder | Contents |
|---|---|
layout/ | theme.liquid — the wrapper for every page (<head>, header/footer, {{ content_for_layout }}) |
templates/ | JSON templates per page type (index.json, product.json, collection.json, cart.json, blog.json, article.json, page.json, search.json, password.json, 404.json, plus customers/* and policy) |
sections/ | Reusable section files (.liquid) with a {% schema %} describing settings and blocks |
snippets/ | Partials included with {% render %} |
assets/ | CSS, JS, images — referenced with asset_url |
config/ | settings_schema.json (global theme settings) and settings_data.json (their values) |
locales/ | Translation files used by the t filter |
Sections and blocks
A JSON template lists sections in order; each section’s schema defines its settings and the block types it accepts. Merchants edit all of this visually in the theme editor — sections can be added, reordered, and configured without touching code.
{% schema %}{ "name": "Featured products", "settings": [ { "type": "text", "id": "heading", "label": "Heading" }, { "type": "collection", "id": "collection", "label": "Collection" } ], "blocks": [ { "type": "product", "name": "Product", "settings": [] } ], "max_blocks": 12, "presets": [{ "name": "Featured products" }]}{% endschema %}Setting types
Themes can use: text, textarea, richtext, html, liquid, number,
range, checkbox, select, radio, color, color_background,
color_scheme, font_picker, image_picker, video, url, link_list,
page, blog, article, collection, collection_list, product,
product_list, metaobject, and more.
Many text and resource settings support dynamic sources — binding the value to product fields or metafields so the right content renders per page automatically.
Editing code
Online store → Themes → Edit code opens the file editor. Themes can also be imported as a ZIP. Every change is versioned: drafts are previewed safely and applied to the live store only on publish.