How to Support Vintage Themes for App Blocks Extension app with Schema Settings?

We have developed a Shopify app with theme app extensions that use app blocks with schema settings (color pickers, image
pickers, etc.). These blocks work perfectly in Online Store 2.0 themes where merchants can add them via the theme editor.

However, we need to support merchants using vintage themes. We understand that app blocks with “target”: “section” don’t work
in vintage themes.

Questions:

  1. Is there any way to make app blocks render programmatically in vintage themes?

  2. Can we create a dual-mode block that uses block.settings in OS 2.0 but falls back to default values or metafields in
    vintage themes?

  3. What is the recommended approach for providing the same functionality to vintage theme users without requiring them to
    manually copy/paste liquid code?

  4. Can snippets from theme app extensions access block.settings when rendered manually via {% render %}?

Current structure:

  • Extension type: “theme”
  • Blocks in /blocks/ folder with {% schema %} settings
  • Target: “section”
  • Snippets in /snippets/ folder

We want to provide a seamless experience for both OS 2.0 and vintage theme users. What is the best practice for achieving
this?

Thank you!

Rendering App Blocks Programmatically in Vintage Themes

Unfortunately, app blocks can’t be injected or rendered programmatically in vintage themes.

Vintage themes don’t support the JSON templates or the dynamic block architecture required by the Theme App Extension framework. App blocks only work in OS 2.0 because of the section schema structure (/templates/*.json and section.settings).

Workaround:

For vintage themes, the only way to show dynamic content from your app is through:

Manual snippet installation (via {% render ‘your-app-snippet’ %})

Or app embed blocks (though these also require OS 2.0)

So in short, app blocks cannot be programmatically rendered in vintage themes — the theme developer or merchant must include your snippet manually.

Dual-Mode Support (OS 2.0 + Vintage)

You can absolutely design a dual-mode architecture. Here’s how:

For OS 2.0 themes: Use the standard Theme App Extension block with schema settings (e.g., color pickers, image pickers, etc.).

For vintage themes: Fallback to reading from default settings, metafields, or Shopify App Proxy endpoints.

@Omactech thanx for you response,
{% render ‘your-app-snippet’ %} can you tell me how to achieve that. I hav

e a snippet name ‘example‘, i write that inside the online shopify editor {% render ‘example’ %}. But in preview it says, snippet not exists. My app is a shopify app store deployed app (shopify extension app).