Skip to content

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.

  1. Upload the theme in Storefront › Themes as a .zip. Fix the errors the theme check reports; most are invalid JSON or unknown setting types.
  2. Replace include with render, and pass the variables each snippet uses. include isn’t supported.
  3. Review escaping. Output is escaped by default. Search for filters applied to rich text (product.description | truncatewords, | replace) and for markup built with append, and fix them as the page explains.
  4. Split mixed and/or conditions. Sooquna checks them left to right.
  5. Fonts. font_picker and font_face do nothing: self-host the theme’s fonts in assets/ (Fonts).
  6. Colour settings give hex strings: replace settings.color.red and similar with the color_* filters.
  7. Remove customer templates. templates/customers/* aren’t used; account pages are drawn by Sooquna. Keep links to routes.account_*_url.
  8. Remove app blocks (@app) and app embeds; use Sooquna’s built-in store features instead (wishlist, reviews, back in stock…).
  9. Add Arabic. Add locales/ar.json, set dir on <html>, and switch physical CSS to logical properties (RTL guide).
  10. Check every template in the preview, in both languages, at phone width. Liquid errors show in place.

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?