Porting a Shopify theme
Sooquna follows Shopify’s theme structure, so most of an Online Store 2.0 theme (Dawn and the themes built on it) works after a few changes. Work through this list, then use the compatibility matrix for anything else your theme uses.
Checklist
Section titled “Checklist”- Upload the theme in Storefront › Themes as a
.zip. Fix the errors the theme check reports; most are invalid JSON or unknown setting types. - Replace
includewithrender, and pass the variables each snippet uses.includeisn’t supported. - Review escaping. Output is escaped by default. Search for filters applied to rich text (
product.description | truncatewords,| replace) and for markup built withappend, and fix them as the page explains. - Split mixed
and/orconditions. Sooquna checks them left to right. - Fonts.
font_pickerandfont_facedo nothing: self-host the theme’s fonts inassets/(Fonts). - Colour settings give hex strings: replace
settings.color.redand similar with thecolor_*filters. - Remove customer templates.
templates/customers/*aren’t used; account pages are drawn by Sooquna. Keep links toroutes.account_*_url. - Remove app blocks (
@app) and app embeds; use Sooquna’s built-in store features instead (wishlist, reviews, back in stock…). - Add Arabic. Add
locales/ar.json, setdiron<html>, and switch physical CSS to logical properties (RTL guide). - Check every template in the preview, in both languages, at phone width. Liquid errors show in place.
What usually works unchanged
Section titled “What usually works unchanged”JSON templates, sections and section groups, theme blocks and content_for, schemas and presets, render, paginate, form, section, t with plurals, money filters, image_url and image_tag, the cart AJAX API, the section rendering API, predictive search, product recommendations, collection filters with the same URL parameters, and window.Shopify (an alias of window.Sooquna).
Next: Differences, and a worked example: porting a Dawn section.
Was this page helpful?

