[Special Summer Sale] 40% OFF All Magento 2 Themes

Cart

Looping through metafields in shopify

  • This topic is empty.
Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #9612
    alok-jain
    Participant

    I need to display n number of images for a product in shopify.

    I have stored number of images in a metafields and created a loop for it.

    Then each image’s name is stored in a metafield, which i am trying to get with help of loop.

    {% assign earrings = product.metafields.earrings %}
    
    {% for i in (1..earrings.total-earrings) %}
      {% assign earring = 'product.metafields.earring-' | append:i %}
      {{ earring.name }}
    {% endfor %}
    

    This loop is giving me values for earring like:
    product.metafields.earring-1
    product.metafields.earring-2

    but when i am trying to read value of metafield earring.name, i am not getting any output. I think because product.metafields.earring-1 is a string.

    Is there any possible way to loop through metafields like this and get values?

    #9614
    alok-jain
    Participant

    Just in case it’s helpful for someone.

    Here’s the updated code:

    {% assign earrings = product.metafields.earrings %}
    
    {% for i in (1..earrings.total-earrings) %}
      {% assign dummy = 'earring-' | append:i %}
      {% assign earring = product.metafields[dummy] %}
      {{ earring.name }}
    {% endfor %}
    
    #9613
    musaib-mushtaq
    Participant

    So the simple way to loop through all the metafields is here:

    CONDITIONS To loop through metafields, you should keep the same namespace, by default Shopify sets "custom" namespace to all metafields. You can keep anything while creating a metafield. Let’s assume we will loop through all the metafields with the namespace added as "option", so we have product.metafields.option.KEY.

    {% for metafield in product.metafields.option %}
     {% assign key = metafield[0] %}
     {% assign type = product.metafields.option[key].type %}
    
    <!--// Now you got the meta-field's KEY & TYPE, handle it according to its access syntax; for example below, I am printing text of type text-multiline(list.single_line_text_field) meta-field values -->
    
     {% assign values = product.metafields.option[key].value %}
      {% for value in values %}
       {{ value }}
      {% endfor %}
    
     {% endfor %}
    
Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.