Variant metafields are not updated

I’ve created Custom liquid,

{% if product.selected_variant %}
    {{ product.selected_variant.metafields.custom.new_desc}}
  {% else %}
    {{ product.description }}
  {% endif %}

but if I change the variant, the content doesn’t change.

Anyone know how to fix this?

Liquid code runs only on the Shopify servers. When people change selectors on your product page theme Javascript updates your page to reflect those changes.

Theme JS has no idea that it needs to update your text. You’d need to have your own JS to do it.

This would be different for different themes.

Say, for Dawn I’d be doing something like, but this should be a “Custom liquid” block under Product Information section, not a separate section.


  {{ product.selected_or_first_available_variant.option1 }}
 

 

Also – you may consider using an app for this https://apps.shopify.com/dynamic-variant-description

1 Like

Hi @matusmachus ,

Please send me the store link, I will check it for you

It works!
Thank you

I tried to adopt the solution, but I can’t access the new metafields value when the selected option has changed.

The critical line is:

var variant_specs= “{{ variant.metafields[‘custom’][‘variant_specs’] }}”;

This should contain the value of the newly selected variant. But it doesn’t work. It still needs a manual refresh to update the Custom Liquid’s content. Any ideas? Thank you!

Here is the entire code:

{{ product.selected_or_first_available_variant.metafields.custom.variant_specs }}