Hi,
Theme : envy
It’s currently pulling the data from the hidden variant not the one that we want to use..
So the first size/quantity and colors will be selected as default.
any help on getting this fixed?
here is the link: https://waycaps.com/
here is my theme. liquid
{% unless request.path contains '/account' %} {% assign restrict_page = true %} {% endunless %}
{% if shop.metafields.adv_reg.noFraming == 'on' %} {% assign restrict_page = true %}{% endif %}
{% if shop.metafields.adv_reg.useBlacklist == 'on' %}
{% assign restrict_page = false %}
{% assign blockPages = shop.metafields.adv_reg.blockPageUrls | split: "|" %}
{% for url in blockPages %}
{% if request.path == url %}{% assign restrict_page = true %} {% endif %}
{% endfor %}
{% else %}
{% assign exceptionUrls = shop.metafields.adv_reg.lockShopExceptionUrls | split: "|" %}
{% for url in exceptionUrls %}
{% if request.path == url %}{% assign restrict_page = false %} {% endif %}
{% endfor %}
{% endif %}
<!-- using block list: {{shop.metafields.adv_reg.useBlacklist}} -->
<!-- current request path:{{request.path}} -->
<!-- shop lock exceptions:{{shop.metafields.adv_reg.lockShopExceptionUrls }} -->
<!--restricting page: {{restrict_page}} -->
<!--shop locking: {{shop.metafields.adv_reg.lockShop}} -->
{% if request.path == '/challenge' %} {% assign restrict_page = false %} {% endif %}
{% if request.path == '/password' %} {% assign restrict_page = false %} {% endif %}
{% if request.path == '/account/recover' %} {% assign restrict_page = false %} {% endif %}
{% if request.path contains '/tools/emails' %} {% assign restrict_page = false %} {% endif %}
{% if request.path contains '/account/reset' %} {% assign restrict_page = false %} {% endif %}
{% if request.path contains '/account/activate' %} {% assign restrict_page = false %} {% endif %}
{% if request.path contains '/reset-password' %} {% assign restrict_page = false %} {% endif %}
{% if request.path contains '/customer-account-password-reset' %} {% assign restrict_page = false %} {% endif %}
{% if shop.metafields.adv_reg.lockShop == 'on' and customer == nil and restrict_page and request.design_mode == false %}
{% if shop.metafields.adv_reg.noFraming == 'on' %}
{% include 'advanced_registration_locked_page' %}
{% else %}
<!DOCTYPE html>
<head>
<title>{{page_title}}</title>
<meta name="title" content="{{ page_title | escape }}">
{% if page_description %}
<meta name="description" content="{{ page_description | escape }}">
{% endif %}
{% if shop.metafields.adv_reg.showRegistrationPageFirst == 'on' %}
<script>window.location='/account/register?checkout_url='+window.location.pathname</script>
{% else %}
<script>window.location='/account/login?checkout_url='+window.location.pathname</script>
{% endif %}
</head>
{% endif %}
{% else %}<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<html class="no-js" lang="{{ request.locale.iso_code }}">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
{%- comment -%}DemoStoreRequirements{%- endcomment -%}
<title>
{{ page_title }}{% if current_tags %}{% assign meta_tags = current_tags | join: ', ' %} – {{
'general.meta.tags' | t: tags: meta_tags }}{% endif %}{% if current_page != 1 %} – {{ 'general.meta.page' | t:
page: current_page }}{% endif %}{% unless page_title contains shop.name %} – {{ shop.name }}{% endunless %}
</title>
<link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
<script type="text/javascript">
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
</script>
{% if page_description %}
<meta name="description" content="{{ page_description | escape }}">
{% endif %}
{% if template contains 'product' %}
<meta name="viewport" content="width=device-width, initial-scale=1" />
{% else %}
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% endif %}
{% render 'social-meta-tags' %}
<link rel="canonical" href="{{ canonical_url }}" />
<!-- CSS -->
{% render 'css-variables' %}
{% if template == 'index' %}
<link rel="preload" href="{{ 'theme-index.min.css' | asset_url }}" as="style">
{{ 'theme-index.min.css' | asset_url | stylesheet_tag }}
{% elsif template == 'collection' %}
<link rel="preload" href="{{ 'theme-collection.min.css' | asset_url }}" as="style">
{{ 'theme-collection.min.css' | asset_url | stylesheet_tag }}
{% elsif template == 'list-collections' %}
<link rel="preload" href="{{ 'theme-collection-list.min.css' | asset_url }}" as="style">
{{ 'theme-collection-list.min.css' | asset_url | stylesheet_tag }}
{% elsif template == 'product' %}
<link rel="preload" href="{{ 'theme-product.min.css' | asset_url }}" as="style">
{{ 'theme-product.min.css' | asset_url | stylesheet_tag }}
{% elsif template == 'blog' %}
<link rel="preload" href="{{ 'theme-blog.min.css' | asset_url }}" as="style">
{{ 'theme-blog.min.css' | asset_url | stylesheet_tag }}
{% elsif template == 'cart' %}
<link rel="preload" href="{{ 'theme-cart.min.css' | asset_url }}" as="style">
{{ 'theme-cart.min.css' | asset_url | stylesheet_tag }}
{% else %}
<link rel="preload" href="{{ 'theme.min.css' | asset_url }}" as="style">
{{ 'theme.min.css' | asset_url | stylesheet_tag }}
{% endif %}
{{ 'custom.css' | asset_url | stylesheet_tag }}
{% if settings.type_base_font contains 'Google' %}
{%- assign type_body_parts = settings.type_base_font | split: '_' -%}
{% capture bodyGoogleUrl %}{{ type_body_parts[1] }}:400,700{% endcapture %}
{{ '//fonts.googleapis.com/css?family=' | append: bodyGoogleUrl | stylesheet_tag }}
{% endif %}
{% if settings.type_header_font contains 'Google' %}
{% unless settings.type_header_font contains type_body_parts[1] and settings.type_header_font contains '700' %}
{%- assign type_heading_parts = settings.type_header_font | split: '_' -%}
{% capture headingGoogleUrl %}{{ type_heading_parts[1] }}:{{ type_heading_parts[2] }}{% endcapture %}
{{ '//fonts.googleapis.com/css?family=' | append: headingGoogleUrl | stylesheet_tag }}
{% endunless %}
{% endif %}
{% if settings.favicon != blank %}
<link rel="shortcut icon" href="{{ settings.favicon | img_url: '32x32' }}" type="image/png">
{% endif %}
<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml" />
{{ content_for_header }}
<script type="text/javascript">
window.wetheme = {
name: 'Envy',
};
</script>
{% if template contains 'customers' %}
{{ "shopify_common.js" | shopify_asset_url | script_tag }}
{{ "customer_area.js" | shopify_asset_url | script_tag }}
{% endif %}
</head>
<body id="{{ page_title | handle }}"
class="page-title--{{ page_title | handle }} {% if customer %}customer-logged-in {% endif %}template-{{ template | replace: '.', ' ' | truncatewords: 1, '' | handle }} flexbox-wrapper{% unless settings.animations_enabled %} animations-disabled{% endunless %}">
{% if template != 'cart' and settings.cart-type == "drawer" %}
{% render 'cart-drawer' %}
{% endif %}
<div id="main-body" class="{% if template == 'search' %} search-template{% elsif template == 'collection' %} collection-template{% endif %}" data-editor-open="{{ request.design_mode }}">
<div class="no-js disclaimer container">
<p>{{ "general.homepage.javascript_disabled" | t }}</p>
</div>
<div id="slideout-overlay"></div>
{% section 'announcement-bar' %}
{% section 'header' %}
<main id="main">
{{ content_for_layout }}
</main>
{% section 'footer' %}
</div>
{% if settings.enable_verification_popup %}
{% render 'verification-popup' %}
{% endif %}
{% if settings.popup--enable %}
{% render 'popup' %}
{% endif %}
<script type="application/json" id="wetheme-global">
{
{% comment %}Translations that will be used in javascript section handling{% endcomment %}
"translations": {
"addToCart": {{ 'products.product.add_to_cart' | t | json }},
"added": {{ 'products.product.added' | t | json }},
"soldOut": {{ 'products.product.sold_out' | t | json }},
"unavailable": {{ 'products.product.unavailable' | t | json }},
"makeASelection": {{ 'products.product.make_a_selection' | t | json }},
"showMore": {{ 'general.filters.show_more' | t | json }},
"showLess": {{ 'general.filters.show_less' | t | json }},
"saving": {{ 'products.general.saving' | t | json }},
"products": {{ 'general.search.products' | t | json }},
"pages": {{ 'general.search.pages' | t | json }},
"collections": {{ 'general.search.collections' | t | json }},
"articles": {{ 'general.search.articles' | t | json }},
"loading": {{ 'collections.paginate.loading' | t | json }},
"no_results_html": {{ 'general.search.no_results_html' | t | json }},
"view_all": {{ 'general.search.view_all' | t | json }},
"clear": {{ 'general.search.clear' | t | json }},
"cart_title": {{ 'cart.general.title' | t | json }},
"cart_subtotal": {{ 'cart.general.subtotal' | t | json }},
"added_to_cart": {{ 'cart.general.added_to' | t | json }},
"removed_from_cart": {{ 'cart.general.removed_from' | t | json }},
"cart_item": {{ 'cart.general.item' | t | json }},
"slide": {{ 'general.slider.slide' | t | json }},
"pause": {{ 'general.slider.pause' | t | json }},
"search_found": {{ 'general.search.search_found' | t | json }},
"none_found": {{ 'general.search.none_found' | t | json }},
"search_result": {{ 'general.search.search_result' | t | json }},
"search_result_plural": {{ 'general.search.search_result_plural' | t | json }}
},
"moneyFormat": {{ shop.money_format | json }}
}
</script>
{% render 'structured-data' %}
<script defer type="module" src="{{ 'theme.min.js' | asset_url }}"></script>
<script defer nomodule src="{{ 'theme.legacy.min.js' | asset_url }}"></script>
</body>
</html>{% endif %}
Here is product template liquid
{{ 'section-store-availability.min.css' | asset_url | stylesheet_tag }}
{%- assign product_thumb_size = '160x160' -%}
{%- assign product_image_zoom_size = '1024x1024' -%}
{% comment %}Pick an option only makes sense together with dropdowns{% endcomment %}
{% assign pick_an_option = false %}
{%- assign current_variant = product.selected_or_first_available_variant -%}
{%- assign featured_image = current_variant.image | default: product.featured_image -%}
{% comment %}
Check if the product is on sale and set a variable to be used below.
{% endcomment %}
{% assign on_sale = false %}
{% if current_variant.compare_at_price > current_variant.price %}
{% assign on_sale = true %}
{% endif %}
{% assign full_width = false %}
{% if section.settings.image_size == 'full-width' %}
{% assign full_width = true %}
{% endif %}
<meta itemprop="name" content="{{ product.title }}{% unless current_variant.title == 'Default Title' %} - {{ current_variant.title }}{% endunless %}">
<meta itemprop="url" content="{{ shop.url }}{{ current_variant.url }}">
<meta itemprop="brand" content="{{ product.vendor }}">
<meta itemprop="image" content="{{ featured_image | img_url: '600x600' }}">
<meta itemprop="description" content="{{ product.description | strip_html | escape }}">
{% case section.settings.image_size %}
{% when 'small' %}
{%- assign product_image_width = 6 -%}
{%- assign product_image_size = '345x' -%}
{% when 'medium' %}
{%- assign product_image_width = 7 -%}
{%- assign product_image_size = '530x' -%}
{% when 'large' %}
{%- assign product_image_width = 8 -%}
{%- assign product_image_size = '720x' -%}
{% when 'full-width' %}
{%- assign product_image_width = 12 -%}
{%- assign product_image_size = '900x' -%}
{% endcase %}
{% if section.settings.thumbnail_position == 'below' or product.images.size <= 1 %}
{% case section.settings.image_size %}
{% when 'small' %}
{%- assign product_description_width = 'col-md-6' -%}
{% when 'medium' %}
{%- assign product_description_width = 'col-md-5' -%}
{% when 'large' %}
{%- assign product_description_width = 'col-md-4' -%}
{% when 'full-width' %}
{%- assign product_description_width = 'col-md-12' -%}
{% endcase %}
{% else %}
{% case section.settings.image_size %}
{% when 'small' %}
{%- assign product_description_width = 'col-md-5' -%}
{% when 'medium' %}
{%- assign product_description_width = 'col-md-4' -%}
{% when 'large' %}
{%- assign product_description_width = 'col-md-3' -%}
{% when 'full-width' %}
{%- assign product_description_width = 'col-md-12' -%}
{% endcase %}
{% endif %}
<div class="row">
<div class="col-md-12">
<nav class="breadcrumb" aria-label="breadcrumbs">
<a href="{{ routes.root_url }}" title="{{ 'general.breadcrumbs.back_home' | t }}">{{ 'general.breadcrumbs.home' | t }}</a>
{% if collection %}
<span aria-hidden="true">›</span>
{% if collection.handle %}
{% capture url %}/collections/{{ collection.handle }}{% endcapture %}
{{ collection.title | link_to: url }}
{% endif %}
{% endif %}
<span aria-hidden="true">›</span>
<span>{{ product.title }}</span>
</nav>
</div>
</div>
{% capture thumbnails %}
<div class="product-single__thumbnails product-single__thumbnails--{{ section.settings.thumbnail_position }} product-page--thumb-slider
{% if section.settings.thumbnail_position != 'below' %}
{% if product.media.size <= 4 %} no-arrows{% endif %}
vertical col-md-2
{% else %}
{% if product.media.size <= 5 %} no-arrows{% endif %}
horizontal
{% endif %}">
{% if settings.sale_badge %}
<div class="sale-badge mobile product-price__sale-label-{{ section.id }}{% unless on_sale %} hide{% endunless %}">{{ 'products.general.sale' | t }}</div>
{% endif %}
{% if product.media.size > 0 %}
<div class="thumbs-direction-nav">
<a class="thumbs-direction-nav--prev" href="#">
{% if section.settings.thumbnail_position == 'below' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-left"><polyline points="15 18 9 12 15 6"></polyline></svg>
{% else %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-up"><polyline points="18 15 12 9 6 15"></polyline></svg>
{% endif %}
</a>
</div>
<div style="height: 100%"
{% comment %}
data-direction="{% if section.settings.thumbnail_position == 'below' %}horizontal{% else %}vertical{% endif %}"
data-slides-per-view="{% if section.settings.thumbnail_position != 'below' %}4{% else %}5{% endif %}"
data-swiper-container {% endcomment %}
>
<div {% comment %} data-swiper-wrapper {% endcomment %} class="thumbnail_slider"
>
{% assign featured_media = current_variant.featured_media | default: product.featured_media %}
{% render 'product-media', product: product, section_id: section.id, featured_media_id: featured_media.id, enable_image_zoom: section.settings.enable_zoom, enable_video_loop: section.settings.enable_video_loop, autoplay:false %}
</div>
</div>
<div class="thumbs-direction-nav">
<a class="thumbs-direction-nav--next" href="#">
{% if section.settings.thumbnail_position == 'below' %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
{% else %}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
{% endif %}
</a>
</div>
<div class="swiper-pagination"></div>
{% endif %}
</div>
{% endcapture %}
<div class="row media-size-{{ section.settings.image_size }}" id="product-box" data-section-id="{{ section.id }}" data-wetheme-section-type="template--product" data-wetheme-section-id="{{ section.id }}">
<div class="media_size_column">
{% if section.settings.thumbnail_position == 'left' %}
{{ thumbnails }}
{% endif %}
<div class="product-medias{% if section.settings.thumbnail_position != 'below' and product.media.size > 1 %} col-sm-12 col-md-{{ product_image_width | minus: 2 }}{% else %} col-md-{{ product_image_width }}{% endif %}">
{% if settings.sale_badge %}
<div class="sale-badge desktop product-price__sale-label-{{ section.id }}{% unless on_sale %} hide{% endunless %}">{{ 'products.general.sale' | t }}</div>
{% endif %}
<div class="product-single__medias">
{% comment %}Medias for thumbnails will go here on desktop{% endcomment %}
{% if product.media.size == 0 %}
{% comment %}
{{ 'product-1' | append: current | placeholder_svg_tag: 'icon--placeholder' }}
{% endcomment %}
{% else %}
{% if product.selected_variant.metafields.custom.variant_images.value != blank %}
{% assign gallery_media = product.selected_variant.metafields.custom.variant_images.value %}
{% else %}
{% assign gallery_media = product.media %}
{% endif %}
<div class="main_product_slider">
{% for media in gallery_media %}
<div class="{% if section.settings.enable_zoom %} zoom {% endif %} prd_media product-single__media__image" data-image-zoom-enable="{% if section.settings.enable_zoom %}true{% else %}false{% endif %}"
style="background-image: url('{{ media | img_url: 'master' }}')">
{% capture props %}
style="max-width: {{ media.width }}px"
id="ProductPhotoImg"
data-image-id="{{ media.id }}"
data-zoom-img="{{ media | img_url: 'master' }}"
data-fancybox="images"
{% endcapture %}
{% render 'responsive-image' with media, class: 'product-single__photo', alt: media.alt, props: props, sizes: '90vw' %}
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% if section.settings.thumbnail_position == 'below' %}
{{ thumbnails }}
{% endif %}
</div>
{% if section.settings.thumbnail_position == 'right' %}
{{ thumbnails }}
{% endif %}
</div>
{% capture out_of_stock_email_form %}
<div class="sold-out-notification" id="sold-out">
{% form 'contact', class: 'product-page-form' %}
<p class="accent-text success-msg form-success {% unless form.posted_successfully? %}hide{% endunless %}">
{{ 'products.product.thanks' | t }}
</p>
{% capture var_title %}
<span id="variant_title" style="{% if product.has_only_default_variant %}display:none;{% endif %}"></span>
{% endcapture %}
<span id="notify-me">{{ 'products.product.out-stock_html' | t: product: product.title, variant: var_title }}</span>
{% if form.errors %}
<div class="error feedback accent-text">
<span>{{ 'products.product.wrong-email' | t }}</span>
</div>
{% endif %}
<div id="notify-me-wrapper" class="clearfix">
{% if customer %}
<input type="hidden" value="0">
<input type="email" name="contact[email]" value="{{ customer.email }}" class="form-control{% if form.errors contains 'email' %} error{% endif %} notify-me_input" />
{% else %}
<input style="position:relative;" required="required" type="email" name="contact[email]" placeholder="your@email.com" class="form-control{% if form.errors contains 'email' %} error{% endif %} notify-me_input" value="" autocorrect="off" autocapitalize="off" />
{% endif %}
<div>
<input type="hidden" name="contact[body]" value="Please notify me when {{ product.title | escape }}, variant: [X] becomes available." />
</div>
<div class="notify-me_submit">
<input class="btn custom-font" type="submit" value="Send" />
<span class="lds-dual-ring newsletter-spinner hide"></span>
</div>
</div>
{{ 'shopify.online_store.spam_detection.disclaimer_html' | t }}
{% endform %}
</div>
{% endcapture %}
<div class="col-sm-12 {{ product_description_width }}">
<section class="entry-content product-description-main-wrapper{% if settings.show_swatches %} variant-swatches-enabled{% else %} variant-dropdown-enabled{% endif %}{% if settings.enable_store_pickup %} store-pickup-enabled{% endif %}"
{% if section.settings.show_out_of_stock_email %}data-stock-email-enabled="true"{% endif %}>
{% if full_width %}
<div class="col-sm-12 col-md-6 col-lg-4">
{% endif %}
{% if section.settings.form_position == "above-details" and section.settings.show_out_of_stock_email %}
<div class="variant-out-of-stock" style="display:none;">
{{ out_of_stock_email_form }}
</div>
{% endif %}
{% form 'product', product, id: "add-to-cart-form" %}
<input type="hidden" id="cart-link" value="{{ routes.cart_url }}" />
{% assign hide_default_title = false %}
{% if product.variants.size == 1 and product.variants.first.title contains 'Default' %}
{% assign hide_default_title = true %}
{% endif %}
<div class="product-info-wrapper">
{% for block in section.blocks %}
{% case block.type %}
{% when '@app' %}
{% render block %}
{% when 'quantity-selector' %}
<div class="quantity-controls__outer {% if settings.show_swatches %}swatches-wrapper{% else %}selector-wrapper{% endif %}">
<label for="quantity">{{ 'products.product.quantity' | t }}</label>
<div class="quantity-controls">
<button
type="button"
class="qty-minus alt-focus"
aria-label="Reduce item quantity by one"
>-</button>
<input
id="quantity"
class="quantity-selector"
value="1"
min="1"
type="text"
name="quantity"
>
<button
type="button"
class="qty-plus alt-focus"
aria-label="Increase item quantity by one"
>+</button>
</div>
</div>
{% when 'vendor-sku' %}
<div class="product-vendor-sku">
{% if block.settings.show_vendor %}
<div class="indiv-product-vendor-text">{{ product.vendor }}</div>
{% endif %}
{% if block.settings.show_sku %}
<div class="indiv-product-sku-text{% unless current_variant.sku %} hide{% endunless %}">{{ current_variant.sku }}</div>
{% endif %}
</div>
{% when 'product-title' %}
<h1 class="custom-font product-description-header">{{ product.title }}</h1>
{% when 'product-price' %}
<ul class="product-page--pricing{% unless block.settings.show_discount == 'hide' %} discount-badge{% endunless %}">
<!-- Variant price -->
<li class="product-page--pricing--variant-price">
<span class="js" id="price-field">
{% if pick_an_option %}
<span class="type-subheading">{{ 'products.product.make_a_selection' | t }}</span>
{% elsif current_variant.available %}
<span class="money">{{ current_variant.price | money }}</span>
{% else %}
{{ "products.product.sold_out" | t }}
{% assign on_sale = false %}
{% endif %}
</span>
</li>
<!-- Variant 'compare at' price -->
<li class="product-page--pricing--variant-compare-at-price">
<span class="compare-at-price js{% unless on_sale %} hide{% endunless %}">
<span class="money">{{ current_variant.compare_at_price | money }}</span>
</span>
</li>
{% render 'unit-price-measurement-variant', current_variant: current_variant %}
</ul>
<!-- <span class="price-message">Please <a href="/account/login" class="price-message-link">login</a> to view the price</span> -->
{% unless block.settings.show_discount == 'hide' %}
{% if current_variant.compare_at_price > current_variant.price %}
<div class="product-page--pricing--discount">
{% case block.settings.show_discount %}
{% when 'percentage' %}
<span class="variant-percentage-wrapper hide">
- <span class="variant-percentage">{{ current_variant.compare_at_price | minus: current_variant.price | times: 100.0 | divided_by: current_variant.compare_at_price | money_without_currency | times: 100 | remove: '.0'}}%</span>
</span>
{% when 'value' %}
<span class="variant-value-wrapper hide">
- <span class="variant-value"><span class="money">{{ current_variant.compare_at_price | minus: current_variant.price | money }}</span></span>
</span>
{% endcase %}
</div>
{% endif %}
{% endunless %}
{%- if shop.taxes_included or shop.shipping_policy.body != blank -%}
<div class="product-page__policies rte">
{%- if shop.taxes_included and block.settings.tax_included -%}
{{ 'products.product.include_taxes' | t }}
{%- endif -%}
{%- if shop.shipping_policy.body != blank and block.settings.shipping_policy -%}
{{ 'products.product.shipping_policy_html' | t: link: shop.shipping_policy.url }}
{%- endif -%}
</div>
{%- endif -%}
{% when 'product-options' %}
{% if settings.show_swatches == false and block.settings.pick_an_option %}
{% unless product.has_only_default_variant %}
{% assign pick_an_option = true %}
{% endunless %}
{% endif %}
{% if pick_an_option %}
{%- assign current_variant = product.selected_variant -%}
{% else %}
{%- assign current_variant = product.selected_or_first_available_variant -%}
{% endif %}
{% if product.variants.size > 0 %}
<div {% unless block.settings.show_variant_labels %}class="hide-variant-labels"{% endunless %}>
{% if settings.show_swatches %}
{% unless product.has_only_default_variant %}
{% for option in product.options %}
{% render 'swatch' with option, product: product, section: section, block: block %}
{% endfor %}
{% endunless %}
{% else %}
{% for option in product.options_with_values %}
{% unless swatches_to_show contains option.name %}
<div class="product-form-option{% if hide_default_title == true %} hide{% endif %}">
<div class="input-field product-option-select">
<wetheme-dropdown fit="parent">
<select id="SingleOptionSelector-{{ forloop.index0 }}" class="wetheme-dropdown__select"{% if option.values.size == 1 %} disabled{% endif %}>
{% if pick_an_option and option.values.size > 0 %}
<option value="" selected data-placeholder>Pick a {{ option.name }}</option>
{% endif %}
{% for value in option.values %}
{% if pick_an_option and option.values.size > 0 %}
{% assign props = '' %}
{% elsif option.selected_value == value %}
{% assign props = 'selected' %}
{% else %}
{% assign props = '' %}
{% endif %}
<pre>{{ product.options_with_values.size }}</pre>
{% comment %}Hide out of stock variants{% endcomment %}
{% if product.options_with_values.size == 1 and block.settings.hide_out_of_stock %}
{% assign hide = true %}
{% for v in product.variants %}
{% if v.option1 == value and v.available %}
{% assign hide = false %}
{% endif %}
{% endfor %}
{% else %}
{% assign hide = false %}
{% endif %}
{% unless hide %}
<option {{ props }} value="{{ value | escape }}">{{ value }}</option>
{% endunless %}
{% endfor %}
</select>
<label for="SingleOptionSelector-{{ forloop.index0 }}">{{ option.name }}</label>
</wetheme-dropdown>
<!-- Size guide link (specific variant - dropdown) -->
{% if section.settings.size_guide_link != blank and section.settings.size_guide_message != blank %}
{% assign option_name = option.name | downcase %}
{% assign size_guide_variant = section.settings.size_guide_variant | downcase %}
{% if option_name == size_guide_variant %}
<a href="{{ section.settings.size_guide_link }}" class="size-guide-link">
{{ section.settings.size_guide_message }}
</a>
{% endif %}
{% endif %}
</div>
</div>
{% endunless %}
{% endfor %}
{% endif %}
{% endif %}
<select name="id" id="ProductSelect-{{ section.id }}" data-section="{{ section.id }}" class="productSelect form-control original-select product-form__variants no-js">
{% for variant in product.variants %}
{% if variant.available %}
<option {% if variant == current_variant %} selected {% endif %} value="{{ variant.id }}" data-qty="{{ variant.inventory_quantity }}" data-value="{{ variant.title }}">
{{ variant.title }} - <span class="money">{{ variant.price | money }}</span>
</option>
{% else %}
<option disabled>{{ variant.title }} - {{ 'products.product.sold_out' | t }}</option>
{% endif %}
{% endfor %}
</select>
<!-- Size guide -->
{% if section.settings.size_guide_link != blank and section.settings.size_guide_message != blank %}
<div class="size-guide__wrapper">
{% render 'size-guide' with section: section %}
<!-- Size guide link (no specific variant) -->
{% if section.settings.size_guide_variant == blank %}
<div class="col-md-12">
<a href="{{ section.settings.size_guide_link }}" class="size-guide-link">
{{ section.settings.size_guide_message }}
</a>
</div>
{% endif %}
</div>
{% endif %}
{% when 'payment-buttons' %}
<div class="product-page--submit-action">
{% assign disabled = pick_an_option %}
{% unless current_variant.available %}
{% assign disabled = true %}
{% endunless %}
<button
type="submit"
name="add"
id="purchase"
class="btn {% if block.settings.show_smart_checkout and product.selling_plan_groups.size == 0 %} secondary-button{% endif %}"{% if disabled %}
disabled{% endif %}
data-cart-action="{{ section.settings.cart-action }}"
>
{% if pick_an_option or current_variant.available %}
{{ 'products.product.add_to_cart' | t }}
{% else %}
{{ 'products.product.sold_out' | t }}
{% endif %}
</button>
{% if block.settings.show_smart_checkout %}
{{ form | payment_button }}
{% endif %}
</div>
{% when 'product-description' %}
<div class="product-description-wrapper">
{{ product.description }}
</div>
{% when 'social-sharing' %}
{% render 'social-sharing' with block: block %}
{% when 'local-pickup' %}
<div class="product-page--local-pickup"></div>
{% when 'shop-pay' %}
<div class="shopify-payment-terms__container">
{{ form | payment_terms }}
</div>
{% when 'custom-liquid' %}
{{ block.settings.custom-liquid }}
{% when 'product-rating' %}
{% if block.settings.rating != blank %}
{% if block.settings.rating-label != blank %}
<p class="rating-label">{{ block.settings.rating-label }}</p>
{% assign rating_aria_label = block.settings.rating-label %}
{% else %}
{% assign rating_aria_label = "Rating" %}
{% endif %}
{% if block.settings.rating-icon-full %}
{% liquid
assign rating_decimal = 0
assign decimal = block.settings.rating | modulo: 1
if decimal >= 0.3 and decimal <= 0.7
assign rating_decimal = 0.5
elsif decimal > 0.7
assign rating_decimal = 1
endif
assign full_icons = block.settings.rating | floor | plus: rating_decimal | floor
assign empty_icons = block.settings.rating-max | round | minus: full_icons
if rating_decimal == 0.5
assign empty_icons = empty_icons | minus: 1
endif
assign full_alt = block.settings.rating-icon-full.alt | default: "Full icon"
assign empty_alt = block.setting.rating-icon-empty.alt | default: "Empty icon"
%}
<div class="rating-icons" role="img" aria-label="{{ rating_aria_label }} - {{ block.settings.rating }} out of {{ block.settings.rating-max }}">
{% for i in (1..full_icons) %}
<div class="rating-icons__icon" aria-hidden="true">
{% render 'responsive-image' with block.settings.rating-icon-full, alt: full_alt %}
</div>
{% endfor %}
{% if block.settings.rating-icon-empty %}
{% if rating_decimal == 0.5 %}
<div class="rating-icons__icon rating-icons__icon--half" aria-hidden="true">
<div class="rating-icons__image--full">
{% render 'responsive-image' with block.settings.rating-icon-full, alt: full_alt %}
</div>
<div class="rating-icons__image--empty">
{% render 'responsive-image' with block.settings.rating-icon-empty, alt: empty_alt %}
</div>
</div>
{% endif %}
{% for i in (1..empty_icons) %}
<div class="rating-icons__icon" aria-hidden="true">
{% render 'responsive-image' with block.settings.rating-icon-empty, alt: empty_alt %}
</div>
{% endfor %}
{% endif %}
</div>
{% else %}
<p>{{ block.settings.rating }} / {{ block.settings.rating-max }}</p>
{% endif %}
{% endif %}
{% endcase %}
{% endfor %}
</div>
{% endform %}
{% if section.settings.form_position == "below-details" and section.settings.show_out_of_stock_email %}
<div class="variant-out-of-stock" style="display:none;">
{{ out_of_stock_email_form }}
</div>
{% endif %}
{% if full_width %}
</div>
{% endif %}
</section>
</div>
{% unless product == empty %}
<script type="application/json" class="product-json">
{{ product | json }}
</script>
{% endunless %}
</div>
{% schema %}
{
"name": {
"en": "Product pages",
"de": "Produktseiten",
"es": "Páginas de producto",
"fr": "Pages des produits",
"pt-PT": "Páginas de produtos"
},
"class": "container",
"settings": [
{
"type": "checkbox",
"id": "show_out_of_stock_email",
"label": {
"en": "Show out of stock email",
"de": "Die E-Mail \"Nicht lieferbar\" aktivieren",
"es": "Habilitar correo electrónico agotado",
"fr": "Activer le courriel Rupture de stock",
"pt-PT": "Ativar e-mail de esgotado"
},
"default": true
},
{
"type": "radio",
"id": "form_position",
"label": {
"en": "Out of stock form position"
},
"default": "below-details",
"options": [
{
"value": "above-details",
"label": {
"en": "Above product details"
}
},
{
"value": "below-details",
"label": {
"en": "Below product details"
}
}
]
},
{
"type": "radio",
"id": "cart-action",
"label": {
"en": "Add to Cart action",
"de": "Aktion „Zum Einkaufswagen hinzufügen“",
"es": "Acción de Añadir al carrito",
"fr": "Action d'ajout au panier",
"pt-PT": "Ação Adicionar ao Carrinho"
},
"default": "cart",
"options": [
{
"value": "drawer",
"label": {
"en": "Show drawer",
"de": "Schublade zeigen",
"es": "Mostrar cajón",
"fr": "Afficher le tiroir",
"pt-PT": "Mostrar gaveta"
}
},
{
"value": "added",
"label": {
"en": "Show 'Added' message",
"de": "„Hinzugefügt“-Mitteilung zeigen",
"es": "Mostar el mensaje de «Añadido»",
"fr": "Afficher le message « Ajouté »",
"pt-PT": "Mostrar mensagem \"Adicionado\""
}
},
{
"value": "cart",
"label": {
"en": "Go to cart",
"de": "Zum Einkaufswagen gehen",
"es": "Ir al carrito",
"fr": "Aller au panier",
"pt-PT": "Ir para o carrinho"
}
}
]
},
{
"type": "header",
"content": {
"en": "Size guide",
"de": "Größenratgeber",
"es": "Guía de tallaje",
"fr": "Guide des tailles",
"pt-PT": "Guia de tamanhos"
}
},
{
"type": "url",
"id": "size_guide_link",
"label": {
"en": "Size guide page",
"de": "Größenratgeberseite",
"es": "Página con la guía de tallaje",
"fr": "Page du guide des tailles",
"pt-PT": "Página de guia de tamanhos"
},
"info": {
"en": "You will need to create a page to link to. [Learn more](https://help.shopify.com/en/manual/online-store/os/pages)",
"de": "Sie müssen eine Seite erstellen, auf die verlinkt wird. [Mehr erfahren](https://help.shopify.com/de/manual/online-store/os/pages)",
"es": "Deberá crear una página que vincular. [Más información](https://help.shopify.com/es/manual/online-store/os/pages)",
"fr": "Vous devrez créer une page à mettre en lien. [En savoir plus](https://help.shopify.com/fr/manual/online-store/os/pages)",
"pt-PT": "Tem de criar uma página para ligar. [Saber mais](https://help.shopify.com/pt-PT/manual/sell-online/online-store/pages)"
}
},
{
"type": "text",
"id": "size_guide_message",
"label": {
"en": "Size guide message",
"de": "Größenratgeber-Nachricht",
"es": "Mensaje de la guía de tallaje",
"fr": "Message du guide des tailles",
"pt-PT": "Mensagem de guia de tamanhos"
},
"default": {
"en": "What's my size?",
"de": "Was ist meine Größe?",
"es": "¿Cuál es mi talla?",
"fr": "Quelle est ma taille ?",
"pt-PT": "Qual é o meu tamanho?"
}
},
{
"type": "text",
"id": "size_guide_variant",
"label": {
"en": "Show on a specified variant option",
"de": "Bei einer bestimmten Variantenoption anzeigen",
"es": "Mostrar en una opción de variante especificada",
"fr": "Afficher sur une option de variante spécifiée",
"pt-PT": "Mostrar numa opção de variante especificada"
},
"default": {
"en": "Size",
"de": "Größe",
"es": "Talla",
"fr": "Taille",
"pt-PT": "Tamanho"
}
},
{
"type": "header",
"content": {
"en": "Media",
"de": "Medien",
"es": "Medios de comunicación",
"fr": "Médias",
"pt-PT": "Multimédia"
},
"info": {
"en": "Learn more about [media types](https://help.shopify.com/manual/products/product-media)",
"de": "Mehr Informationen über [Medientypen ](https://help.shopify.com/manual/products/product-media)",
"es": "Más información sobre [tipos de archivos multimedia](https://help.shopify.com/manual/products/product-media)",
"fr": "En savoir plus sur les [types de supports multimédia](https://help.shopify.com/manual/products/product-media)",
"pt-PT": "Saiba mais sobre [media types](https://help.shopify.com/manual/products/product-media)"
}
},
{
"type": "select",
"id": "image_size",
"label": {
"en": "Size",
"de": "Größe",
"es": "Tamaño",
"fr": "Taille",
"pt-PT": "Tamanho"
},
"options": [
{
"value": "small",
"label": {
"en": "Small",
"de": "Klein",
"es": "Pequeño",
"fr": "Petite",
"pt-PT": "Pequeno"
}
},
{
"value": "medium",
"label": {
"en": "Medium",
"de": "Mittel",
"es": "Mediano",
"fr": "Moyenne",
"pt-PT": "Médio"
}
},
{
"value": "large",
"label": {
"en": "Large",
"de": "Groß",
"es": "Grande",
"fr": "Grande",
"pt-PT": "Grande"
}
},
{
"value": "full-width",
"label": {
"en": "Full width",
"de": "Volle Breite",
"es": "Ancho completo",
"fr": "Pleine largeur",
"pt-PT": "Largura total"
}
}
],
"default": "medium"
},
{
"type": "select",
"id": "thumbnail_position",
"label": {
"en": "Thumbnail position",
"de": "Thumbnail-Position",
"es": "Posición de la imagen en miniatura",
"fr": "Position de la vignette",
"pt-PT": "Posição da imagem em miniatura"
},
"options": [
{
"value": "below",
"label": {
"en": "Below main image",
"de": "Unter Hauptbild",
"es": "Debajo de la imagen principal",
"fr": "Image principale ci-dessous",
"pt-PT": "Imagem principal abaixo"
}
},
{
"value": "left",
"label": {
"en": "Left of main image",
"de": "Links auf Hauptbild",
"es": "A la izquierda de la imagen principal",
"fr": "Partie gauche de l'image principale",
"pt-PT": "Esquerda da imagem principal"
}
},
{
"value": "right",
"label": {
"en": "Right of main image",
"de": "Rechts auf Hauptbild",
"es": "A la derecha de la imagen principal",
"fr": "Partie droite de l'image principale",
"pt-PT": "Direita da imagem principal"
}
}
],
"default": "below"
},
{
"type": "checkbox",
"id": "enable_zoom",
"label": {
"en": "Enable image zoom",
"de": "Bildzoom aktivieren",
"es": "Habilitar zoom sobre la imagen",
"fr": "Activer le zoom de l'image",
"pt-PT": "Ativar zoom de imagem"
},
"default": true
},
{
"type": "checkbox",
"id": "enable_video_loop",
"label": {
"de": "Videschleife aktivieren",
"en": "Enable video looping",
"es": "Habilitar la reproducción de video en bucle",
"fr": "Activer le bouclage de la vidéo",
"pt-PT": "Ativar ciclo de vídeo"
},
"default": false
}
],
"blocks": [
{
"type": "@app"
},
{
"name": "Product Vendor/SKU",
"type": "vendor-sku",
"limit": 1,
"settings": [
{
"id": "show_vendor",
"type": "checkbox",
"default": false,
"label": "Show vendor"
},
{
"id": "show_sku",
"type": "checkbox",
"default": false,
"label": "Show SKU"
}
]
},
{
"name": "Product heading",
"type": "product-title",
"limit": 1,
"settings": [
]
},
{
"name": "Product price",
"type": "product-price",
"limit": 1,
"settings": [
{
"type": "select",
"id": "show_discount",
"label": {
"en": "Show discount savings",
"de": "Rabattersparnisse aktivieren",
"es": "¿Habilitar ahorros por descuentos",
"fr": "Permettre des économies de rabais",
"pt-PT": "Ativar promoções"
},
"options": [
{
"value": "hide",
"label": {
"en": "Hide",
"de": "Verbergen",
"es": "Ocultar",
"fr": "Cacher",
"pt-PT": "Ocultar"
}
},
{
"value": "percentage",
"label": {
"en": "Percentage",
"de": "Prozentsatz",
"es": "Porcentaje",
"fr": "Pourcentage",
"pt-PT": "Percentagem"
}
},
{
"value": "value",
"label": {
"en": "Value",
"de": "Wert",
"es": "Valor",
"fr": "Valeur",
"pt-PT": "Valor"
}
}
],
"default": "hide",
"info": {
"en": "Discounts will only be shown on variants that are on sale",
"de": "Rabatte werden nur auf Varianten angezeigt, die im Angebot sind",
"es": "Los descuentos solo se mostrarán en las variantes que están de oferta.",
"fr": "Les remises ne s'appliqueront qu'aux variantes en vente.",
"pt-PT": "Os descontos apenas serão exibidos em variantes que estejam à venda"
}
},
{
"type": "checkbox",
"id": "tax_included",
"label": {
"en": "Show 'tax included' message",
"de": "Nachricht \"Steuer enthalten\" anzeigen",
"es": "Mostrar mensaje \"impuesto incluido\"",
"fr": "Afficher le message « taxe incluse »",
"pt-PT": "Mostrar mensagem de 'impostos incluídos'"
},
"default": true
},
{
"type": "checkbox",
"id": "shipping_policy",
"label": {
"en": "Show shipping policy link",
"de": "Link zur Versandrichtlinie anzeigen",
"es": "Mostrar enlace de política de envío",
"fr": "Afficher le lien de la politique d'expédition",
"pt-PT": "Mostrar hiperligação da política de envios"
},
"default": true
}
]
},
{
"name": "Product options",
"type": "product-options",
"limit": 1,
"settings": [
{
"type": "checkbox",
"id": "show_variant_labels",
"label": {
"en": "Show variant labels",
"de": "Variantenbezeichnungen anzeigen",
"es": "Mostrar etiquetas de las variantes",
"fr": "Afficher les étiquettes des variantes",
"pt-PT": "Mostrar etiquetas variantes"
},
"default": true
},
{
"type": "checkbox",
"id": "hide_out_of_stock",
"label": {
"en": "Hide out of stock variants",
"de": "Nicht lieferbare Varianten verbergen",
"es": "Ocultar las variantes en el stock",
"fr": "Masquer les variantes en rupture de stock",
"pt-PT": "Ocultar variantes em falta"
},
"default": false,
"info": {
"en": "Hide variants that are out of stock when there's one variant set",
"de": "Nicht lieferbare Varianten verbergen, wenn eine Variante eingestellt ist",
"es": "Oculta las variantes que no están disponibles en el stock cuando hay un grupo de variaciones",
"fr": "Masquer les variantes en rupture de stock lorsqu'il n'y a qu'un seul ensemble de variantes.",
"pt-PT": "Ocultar variantes em falta quando houver uma variante definida"
}
},
{
"type": "checkbox",
"id": "pick_an_option",
"label": {
"en": "Show 'Pick an option'",
"de": "„Eine Option auswählen“ aktivieren",
"es": "Habilitar «Escoja una opción»",
"fr": "Activez « Choisir une option ».",
"pt-PT": "Ativar \"Escolher uma opção\""
},
"default": false
}
]
},
{
"name": "Quantity selector",
"type": "quantity-selector",
"limit": 1
},
{
"name": "Payment buttons",
"type": "payment-buttons",
"limit": 1,
"settings": [
{
"type": "checkbox",
"id": "show_smart_checkout",
"label": {
"en": "Show dynamic checkout button",
"de": "Dynamischen Bezahlbutton anzeigen",
"es": "Mostar el botón de compra dinámica",
"fr": "Afficher le bouton de paiement dynamique",
"pt-PT": "Mostrar botão de checkout dinâmico"
},
"default": true,
"info": {
"en": "Lets customers check out directly using a familiar payment method. [Learn more](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)",
"de": "Lässt Kunden direkt unter Verwendung einer bekannten Zahlungsmethode bezahlen. [Mehr erfahren](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)",
"es": "Permita a los clientes finalizar su compra directamente utilizando un método de pago que les sea familiar. [Aprenda más](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)",
"fr": "Permet aux clients de payer directement en utilisant un mode de paiement familier. [En savoir plus](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)",
"pt-PT": "Permita que os clientes façam checkout diretamente utilizando um método de pagamento familiar. [Saber mais](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)"
}
}
]
},
{
"name": "Product description",
"type": "product-description",
"limit": 1
},
{
"name": "Social media",
"type": "social-sharing",
"limit": 1,
"settings": [
{
"type": "checkbox",
"id": "social_sharing_facebook",
"label": {
"en": "Facebook",
"de": "Facebook",
"es": "Facebook",
"fr": "Facebook",
"pt-PT": "Facebook"
},
"default": true
},
{
"type": "checkbox",
"id": "social_sharing_twitter",
"label": {
"en": "Twitter",
"de": "Twitter",
"es": "Twitter",
"fr": "Twitter",
"pt-PT": "Twitter"
},
"default": true
},
{
"type": "checkbox",
"id": "social_sharing_pinterest",
"label": {
"en": "Pinterest",
"de": "Pinterest",
"es": "Pinterest",
"fr": "Pinterest",
"pt-PT": "Pinterest"
},
"default": true
}
]
},
{
"name": "Local pickup",
"type": "local-pickup",
"limit": 1,
"settings": [
{
"type": "paragraph",
"content": "Enable the local pickup setting in 'Theme settings' > 'Products'."
}
]
},
{
"name": "Shop pay installments",
"type": "shop-pay",
"limit": 1
},
{
"name": "Custom Liquid",
"type": "custom-liquid",
"settings": [
{
"type": "liquid",
"id": "custom-liquid",
"label": "Custom Liquid",
"default": "<p>Add app snippets or other Liquid code to create advanced customizations.</p>"
}
]
},
{
"name": "Product rating",
"type": "product-rating",
"settings": [
{
"type": "text",
"id": "rating-label",
"label": "Label",
"default": "Rating"
},
{
"type": "text",
"id": "rating",
"label": "Rating",
"info": "To display a rating, add a [product rating metafield](/admin/metafields/product)"
},
{
"type": "image_picker",
"id": "rating-icon-full",
"label": "Full icon"
},
{
"type": "image_picker",
"id": "rating-icon-empty",
"label": "Empty icon",
"info": "Optional"
},
{
"type": "number",
"id": "rating-max",
"label": "Maximum",
"default": 5,
"info": "Select a maximum equal to the rating metafield's [scale maximum](/admin/metafields/product)"
}
]
}
]
}
{% endschema %}
Please let me know