Liquid, JavaScript, themes, sales channels
I am trying to display small images of the product variant on Collection Page with the help of this code but couldn't be able to fetch and display product variant images
{% if request.page_type == 'collection' %} {% if product.variants.size > 1 %} <div class="variant-images-row"> {% for variant in product.variants %} <div class="variant-image"> {% if variant.available %} <form action="/cart/add" method="post"> <input type="hidden" name="id" value="{{ variant.id }}" /> <button type="submit" class="variant-button"> <img src="{{ variant.image.src | asset_url }}" alt="{{ variant.title }}" width="100" height="100"> </button> </form> {% else %} <p>{{ variant.title }} - Sold Out</p> {% endif %} </div> {% endfor %} </div> {% endif %} {% endif %} {% if product.has_only_default_variant %} <form method="post" action="/cart/add"> <input type="hidden" name="id" value="{{ product.variants.first.id }}" /> <button type="submit" class "variant-button"> <img src="{{ product.variants.first.image.src | asset_url }}" alt="{{ product.variants.first.title }}" width="100" height="100"> </button> </form> {% endif %}
Please someone help me to correct this code if there is something that I need to add.
I want to display images instead of colors
Thanks in Advance
Hi @zain0712 ,
Please follow these steps:
- Themes -> Edit code -> Find the card-product.liquid file
-> Find code snippets that contain the following class "card__information"
- Add the following code below the lines containing class "card__information":
{% style %}
.variant-images-row {
display: flex;
width: 100%;
align-content: center;
flex-wrap: wrap;
justify-content: center;
}
{% endstyle %}
<div>
{% if card_product.media.size > 1 %}
<div class="variant-images-row">
{% for variant in card_product.media %}
<div class="variant-image">
{% if variant %}
<form action="/cart/add" method="post">
<input type="hidden" name="id" value="{{ variant.id }}" />
<button type="submit" class="variant-button">
<img src="{{ variant | image_url }}" alt="{{ variant.title }}" width="30" height="30">
</button>
</form>
{% else %}
<p>{{ variant.title }} - Sold Out</p>
{% endif %}
</div>
{% endfor %}
</div>
{% endif %}
</div>
Similar to the following photo:
Then press Save
The results you will achieve are similar to the following:
Hope it helps @zain0712 !
If our suggestions are useful, please let us know by giving it a like or marking it as a solution.
For B2B solutions and custom pricing, check out B2B Solution & Custom Pricing |
For adding product labels/badges, visit Product Labels by BSS
BSS Commerce - Shopify Apps & Store Development Service Provider
Hire a Shopify expert | Shopify Plus Store Development
User | RANK |
---|---|
37 | |
28 | |
13 | |
13 | |
10 |
On our Shopify Expert Marketplace, you can find many trusted third party developers and fr...
By Arno Nov 27, 2023You've downloaded the Search & Discovery app from the Shopify App store, and as you're ...
By Skye Nov 8, 2023The year-end shopping season is just around the corner. Is a flash sale on your radar? Are...
By Jasonh Nov 6, 2023