← Back to guides
ConverterHTML ConversionWorkflow · Published 2024-05-19 · 2 min read

How To Convert HTML To Shopify Liquid

Turn static HTML sections into editable Shopify OS 2.0 sections—without rewriting everything from scratch.

Share with Shopify developers — useful guides spread faster in theme dev communities.

Conversion workflow overview

Goal: static HTML/Figma export → merchant-editable OS 2.0 section with valid schema, scoped CSS, and theme editor QA. Treat conversion as a pipeline, not a single paste step.

Step 1: Inventory editable fields

Mark headlines, body copy, images, links, and spacing tokens merchants should control. Map each to a schema type: text, richtext, image_picker, url, range.

Step 2: Static-to-dynamic mapping

<!-- Before -->
<h2>Summer Sale</h2>
<img src="hero.jpg" alt="">

<!-- After -->
<h2>{{ section.settings.heading | escape }}</h2>
{% if section.settings.image != blank %}
  {{ section.settings.image | image_url: width: 1600 | image_tag: loading: 'eager' }}
{% endif %}

Step 3: Choose flat or block mode

Fixed heroes → flat indexed settings. Repeatable FAQ/logo rows → block loop. Decide before export: Flat vs Block Sections.

Step 4: Schema, CSS scoping, presets

  • Valid JSON in {% schema %} with at least one preset
  • Prefix CSS with #shopify-section-{{ section.id }}
  • Seed defaults so empty sections look intentional in demos

Step 5: QA in Shopify admin

  1. Deploy to duplicate theme sections/ folder
  2. Register on target JSON template
  3. Test add/remove/reorder blocks, mobile preview, blank images
  4. Run Theme Check on exported files

Takeaway

Generate first-pass structure via the converter workspace, then spend review time on theme tokens and merchant labels—not retyping JSON. Schema depth: Section Schema Explained.

Conversion is a pipeline, not a paste

Agencies that treat HTML→Liquid as one step ship hardcoded FAQ rows and missing presets. The pipeline: clean export → classify editable fields → choose Flat or Block → generate Liquid and schema → scope CSS → validate → register on JSON template → theme editor QA.

Preparing HTML from Figma or Tailwind

  • One section module per conversion pass
  • Remove inline scripts and fix unclosed tags
  • Identical sibling rows for Block mode detection
  • Note which images become image_picker settings

Field mapping reference

  • Headlines → text
  • Formatted copy → richtext
  • Images → image_picker + image_url
  • CTAs → text label + url link
  • Spacing → range or theme tokens

After export

Rename setting labels for merchants, add max_blocks, match parent theme CSS variables, run QA checklist. Timing target: under two hours per module once the pipeline is habitual.

Topic cluster

HTML Conversion

Converting HTML to Liquid sections and converter workflows.

Practice in the converter workspace

Optional utility after you understand sections—draft Liquid with schema and blocks.

Share

Share this guide

Found this guide useful? Share it with other Shopify developers on LinkedIn, X, or Reddit.