Skip to main content

Dynamic text

Bind text elements to Shopify fields like product titles, prices, and cart totals.

Dynamic text replaces the text you type with a live value from Shopify — a product title, price, collection description, cart total, and more. The value updates automatically as your catalog and each shopper's context change.

Connect a text element

  1. Select a text element and open Content in the Design panel.

  2. Click the link control to open the Dynamic content popover.

  3. Search or scroll the list, then pick a source.

You can do the same from the in-canvas toolbar: select text and use the content control that appears above the element.

Each option previews a sample value from your current preview resource, so you can confirm the binding before publishing. Options that don't apply to the current context are hidden — if the list is empty, connect Shopify content on a parent container first.

What you can bind

The available sources depend on what the element is connected to:

  • Product — Title, Description, Description HTML, Vendor, Price, Compare price, Unit price, Saved amount, Saved percentage, Variant title, Variant SKU, Quantity available, selected options, and option names

  • Collection — Title, Description, Description HTML, and product count

  • Store and localization — Cart count, cart subtotal/original/total price, cart total discount, and country, currency, and language values

  • Metafields — text-based metafields defined on the connected resource (see Use metafields)

Inside cart drawers and cart-line repeaters, additional cart-specific sources become available.

Switch back to static text

To type fixed copy again, open the popover and choose Unlink field. This restores an editable text element you can type into directly.

Styling stays separate

A dynamic binding only changes what the element shows, not how it looks. Set font, size, color, and Brand styles in the Text section as usual. Use a separate text element per field — for example price in one and title in another — so each can carry its own styling and Conditional visibility.

Related articles

Did this answer your question?