Migration to Theme App Extensions

This page describes how you can migrate your Nosto installation from the outdated approach to using Theme App Extensions.

Why this is needed

Shopify has deprecated legacy Script Tag methods for app integration as well as their Asset API, in favor of Theme App Extensions. This is not just a technical change it’s a shift toward a more robust, standardized, and merchant-friendly integration model.

Following this, Nosto launched Theme App Extensions support in spring 2024 as the new Integration-Standart. Since then, this approach prooved highly valuable, introducing many upsides

Key Benefits

  • Performance: Faster script loading and natively embedded Placements reduce Nosto's affect on site speed drastically.

  • Modern standard: Theme App Extensions are the new default for Theme adjustments in Shopify.

  • Unified Theme-Management: Nosto automatically works across all of your Themes, reducing the time to bring your Nosto Experience to new Theme Versions.

  • Full Control: Nosto Placements are fully embedded, allowing control and previewing in Shopify's Theme Editor.

  • Future-proof: Script Tags are no longer considered a supported or recommended method. All new features will be built with Theme App Extensions in mind.

Before you start

Before proceeding, please verify the following conditions to avoid issues or downtimes when in the process.

  1. Navigate to "App Embeds" in your Theme

    • In Shopify, open your Theme Editor

    • Navigate to "App Embeds"

  2. Enable Nosto-Settings in "App Embeds"

    • Nosto Script (Mandatory):

      • This functionality embeds the Nosto script into your theme, enabling all Nosto functionality. This is mandatory - Nosto cannot load otherwise.

    • Nosto Tagging (Mandatory):

      • This embeds Nosto Tagging (e.g. for page types) in your theme. This is required to share needed context with Nosto, allowing you to contexually load Nosto placements & more.

    • Multi-currency Settings (Optional):

      • This functionality will embed Multi-Currency tagging in your theme, allowing Nosto to understand your currencies as well as fetching conversion rates. Only needed when opperating in Multi-Currency setups.

If you can't find this App Embed in your Theme, or in case either of these Toggles is missing, please reach out to Nosto Support!

Starting the Migration

There are two main paths to complete your migration. You can choose between a Quick Version or a Clean Version (Recommended). Your choice depends on whether you’re aiming for minimal disruption or a long-term clean setup. Both options will be outlined in the follwing section.

Quick Version

This version is for you, if you want to migrate with the least possible effort.

Using this approach, you will retain all out-of-the box & hard-coded placements, that initially have been added to your when you first installed Nosto to your theme, and only remove the old Tagging- and Script-Version.

Quick Version - Details

Upsides:

  • Migration only takes a couple of minutes

  • You will not need to replace existing Placements in any way

  • Future-Placements can be added using Theme Blocks

Downsides:

  • Existing Placements that have been hard-coded (Static Placements) into your theme will stay there, making Placements spread in different places

  • Those older Placements will live outside of Nosto's control, and can't be removed or controlled by Nosto anymore

  • You will need to access your Theme files in order to move these Placements, or to remove them

How to do it

  1. Go to your Nosto Dashboard -> click "Go to Shopify Settings" (upper right corner)

  2. In your Theme Management Section, click on "Partially remove Nosto", which will remove the old script and old tagging from your Theme code, but retains your Placements fully

This version is for you, if you want to migrate in a structured way, that allows you full control and easy usability going forward.

Using this approach, you will replace all hard-coded/static placements manually, and instead fully migrate to App-Sections, embedding Nosto Placements in Theme Blocks. This ensures a consistend integration, removing unclarity on where a placement actually sits going forward.

Clean Version - Details

Upsides:

  • Going forward, you will have all of your Nosto Placements fully embedded in Theme Blocks, unlocking all the flexibility of Shopify's Theme Editor.

    • Dynamic Placements can still be created to target CSS selectors of course.

  • You will avoid unclarity about where a Nosto campaign can be controlled, avoiding a mixture of hard-coded/static Placements & Theme Blocks

  • Placements embedded in Theme Blocks, will allow you to preview Nosto campaigns right in your Theme Editor

  • This will ensure you're getting the most out of Nosto, minimising Nosto's site-speed impact automatically

  • You will run your setup fully in latest technology, ensuring you have all upcoming improvements and capabilities available as well

  • When you would uninstall Nosto, these Placements would be fully removed as well

Downsides:

  • Migration is more manual, requiring you to replace your existing Placements one by one Depending on your amount of hard-coded/static placements, this might take a while

  • Nosto can't detect the exact spots where your old Placements sit, so you will need to manually capture them

  • There will be a short down-time for Placement-related campaigns (Recommendations, Bundles, OCP)

How to do it

  1. Capture your current Placements, ensuring you know where on the site they appear. (You can find a list of all out-of-the-box placements here[LINK])

    • You could e.g. take Screenshots, make a list or similar. You will need the Placement ID later on, so make sure to capture this as well

    • Important: Nosto will not be able to remove manually created Placements that you hard-coded into your theme files - if you have other placements than mentioned here[LINK], you will need to manually remove them)

  2. When you're done, go to your Nosto Dashboard -> click "Go to Shopify Settings" (upper right corner)

  3. In your Theme Management Section, click on "Fully remove Nosto", which will remove the old script, old tagging and your out-of-the-box placements fully.

  4. Now go back to your Theme Editor in Shopify, and use your captured list to add your campaigns back where your old Placements used to be.

  • Find the place a campaign should appear

  • Add a Section & choose Apps -> Nosto

  • Add your placement ID

💡 Note: If you want to minimize downtimes, you can also replace Placements one-by one

  • Open two tabs in your browser

    • One for your Theme Editor

    • One for your Theme Files

  • Identify your Placement in the Files, as well as the same place in the Theme Editor

  • Remove the hard-coded Placement

  • Immidiately replace it with a Theme Block

Using this approach, you will only have seconds without having a campaign in live.

In case you have any questions or concerns, please let us know.

Last updated

Was this helpful?