checkout class

How To Add Product Tabs with Metafields [No App Needed]

Step 1: Go To Online StoreThemes and Click Customize

Step 2: Click the dropdown that says “Home Page” in the top barClick Products and Select Default Products

Step 3: Click Add Block under the section Product Information or something similar → Select Custom Liquid from the list

Step 4: Copy the below code and paste it in the text field→ Don’t forget to hit Save

{% assign benefits =  product.metafields.custom.product_benefits %}
{% assign bestFor =  product.metafields.custom.product_best_for %}
{% assign bonuses =  product.metafields.custom.product_bonuses %}

{% if  benefits != blank or  bestFor != blank or bonuses != blank %}
		<div class="advance-product-tabs">
						{% if benefits != blank %}
	            <div class="advance-product-tab" data-target="content1">Benefits</div>
            {% endif %}
            {% if bestFor != blank %}
	            <div class="advance-product-tab" data-target="content2">Best For</div>
            {% endif %}
            {% if bonuses != blank %}
	            <div class="advance-product-tab" data-target="content3">Bonuses</div>
            {% endif %}
	 </div>
	      {% if benefits != blank %}
	        <div id="content1" class="advance-product-tab-content">
	             {{ benefits | metafield_tag }}
	        </div>
        {% endif %}
        {% if bestFor != blank %}
	        <div id="content2" class="advance-product-tab-content">
	            {{ bestFor | metafield_tag }}
	        </div>
        {% endif %}
        {% if bonuses != blank %}
	        <div id="content3" class="advance-product-tab-content">
	            {{ bonuses | metafield_tag }}
	        </div>
	      {% endif %}
{% endif %}

                  
 <script>
        document.addEventListener('DOMContentLoaded', function() {
            const tabs = document.querySelectorAll('.advance-product-tab');
            const tabContents = document.querySelectorAll('.advance-product-tab-content');

            tabs.forEach(tab => {
                tab.addEventListener('click', function() {
                    const target = this.getAttribute('data-target');

                    tabs.forEach(t => t.classList.remove('active'));
                    tabContents.forEach(content => content.classList.remove('active'));

                    this.classList.add('active');
                    document.getElementById(target).classList.add('active');
                });
            });

            // Set the first tab active by default
            if (tabs.length > 0) {
                tabs[0].classList.add('active');
                tabContents[0].classList.add('active');
            }
        });
 </script>

<style>
	 .advance-product-tabs {
	  display: flex;
	  border-bottom: 1px solid #e2e2e2;
	  margin: 5px 0px;
	}
	.advance-product-tab {
	  flex-basis: 50%;
	  padding: 5px 20px;
	  cursor: pointer;
	  text-align: center;
	}
	.advance-product-tab-content ul {
	  margin: 0px;
	}
	.advance-product-tab:hover {
	  border-bottom: 3px solid #333;
	}
	.advance-product-tab.active {
	  border-bottom: 3px solid #333;
	}
	.advance-product-tab-content {
	  display: none;
	  padding: 0px;
	  margin-top: 15px;
	  margin-bottom: 25px;
	}
	.advance-product-tab-content.active {
	  display: block;
	}
</style>

Final Step: You will need to add 3 product metafields. You can follow the video to set it up:

  • Namespace and Key Value for Metafield 1: custom.product_benefits
  • Namespace and Key Value for Metafield 2: custom.product_best_for
  • Namespace and Key Value for Metafield 3: custom.product_bonuses

Customize Your Shopify Store without Paying for Apps

Enter your email below and I will send you detailed coding tutorials you can follow and implement even if you don't understand coding.

    We won't send you spam. Unsubscribe at any time.