Theme app extensions

An overview of how Customer Fields uses Shopfiy's Theme App Extensions

Kyle Weiskopf avatar
Written by Kyle Weiskopf
Updated over a week ago

Customer Fields forms installed prior to November 8, 2022, used the vintage installation method. Below, you'll find the benefits of using the new method: Theme App Extensions.

Modularity, better theme support, and no more leftover code

On November 8, 2022, the Customer Fields app was updated to utilize Shopify's new theme app extensions!

This powerful feature makes it possible to install Customer Fields on your storefront without making any changes to a theme's code. There are lots of benefits when using this new process, but here's what we're most excited about:

  • Modularity and ease of use. Forms can now be easily installed in all sorts of different places on your storefront by making a couple of quick changes inside Shopify's theme editor.

  • Transportability. Forms installed via theme app extensions are also transportable between themes, so when you duplicate a theme that has a CF form, any form changes made in the app's form builder will be automatically available to all of your store's themes.

  • Better theme support. The old method of installing forms involved a lot of (automated) edits to a theme's code, and due to the nature of themes, this was not a one-size-fits-all solution. Since the app no longer needs to edit theme code, you'll run into fewer issues when installing a form -- even when using an unofficial or custom-built theme.

  • No more leftover code. You'll no longer have to worry about removing the app's code from your store's theme(s) if you decide to delete/uninstall our Customer Fields app.

Three methods to choose from

There are three (3) different methods you can use to install a form using theme app extensions, all of which start by enabling the app embed for Customer Fields via the theme editor in Shopify. As a quick reminder, you can access the theme editor in the Shopify admin by going to Sales channels > Online Store > Themes > Customize.

A brief overview of each method is below:

App embed

Use the app embed for Customer Fields to replace your theme's native registration form, enable an edit account page, or simply load in our frontend JavaScript API.

πŸ’‘ Learn more about our app embed using this help article.

App blocks

If you're using a theme designed for Online Store 2.0, then you can use an app block to install a customer form in other places on your storefront outside of the typical registration/edit account flow handled by the app embed.

πŸ’‘ Learn more about our 'Customer form' app block using this help article.


Shortcodes are great for corner cases that aren't supported by the app embed or an app block. You can use a shortcode virtually anywhere, including things like a product description.

πŸ’‘ Learn more about shortcodes using this help article.

Removing vintage Liquid install code

Old shops (installed before November 8th, 2022)

If you've installed a Customer Fields form on one or more of your store's themes using the old installation process (docs here), then you will want to remove the app's code since it's no longer needed.

Once you've installed your forms on the desired themes using theme app extensions, removing the app's old liquid code from your store's themes is quick and easy. When using the new install process for the first time on a form with a vintage installation, the app's form builder will prompt you to remove the leftover code from the store's theme. Simply click the button in the prompt, and the app will take care of the rest!

πŸ’‘ Learn more about Liquid uninstall using this help article.

New shops (installed after November 8th, 2022)

If you're new to the app and have only installed Customer Fields forms using theme app extensions, then you don't have to worry about removing any vintage Liquid install code.

The only leftover code for a form would be the result of a shortcode install. In those cases, simply remove the shortcode wherever it was added if you no longer wish to use Customer Fields.

Did this answer your question?