Created
March 11, 2020 17:42
-
-
Save adam704a/3ab03c156840999e29c1154072aa45a4 to your computer and use it in GitHub Desktop.
broke-debut-add-to-cart.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="product-template__container page-width" id="ProductSection-{{ section.id }}" data-section-id="{{ section.id }}" data-section-type="product" data-enable-history-state="true"> | |
{% comment %} | |
Get first variant, or deep linked one | |
{% endcomment %} | |
{%- assign current_variant = product.selected_or_first_available_variant -%} | |
{%- assign product_image_zoom_size = '1024x1024' -%} | |
{%- assign product_image_scale = '2' -%} | |
{%- assign enable_zoom = section.settings.enable_zoom -%} | |
{% case section.settings.image_size %} | |
{% when 'small' %} | |
{%- assign product_image_width = 'medium-up--one-third' -%} | |
{%- assign product_description_width = 'medium-up--two-thirds' -%} | |
{%- assign product_thumbnail_width = 'medium-up--one-third' -%} | |
{%- assign height = 345 -%} | |
{% when 'medium' %} | |
{%- assign product_image_width = 'medium-up--one-half' -%} | |
{%- assign product_description_width = 'medium-up--one-half' -%} | |
{%- assign product_thumbnail_width = 'medium-up--one-quarter' -%} | |
{%- assign height = 530 -%} | |
{% when 'large' %} | |
{%- assign product_image_width = 'medium-up--two-thirds' -%} | |
{%- assign product_description_width = 'medium-up--one-third' -%} | |
{%- assign product_thumbnail_width = 'medium-up--one-fifth' -%} | |
{%- assign height = 720 -%} | |
{% when 'full' %} | |
{%- assign product_image_width = '' -%} | |
{%- assign product_description_width = '' -%} | |
{%- assign product_thumbnail_width = 'medium-up--one-eighth' -%} | |
{%- assign height = 1090 -%} | |
{%- assign enable_zoom = false -%} | |
{% endcase %} | |
<div class="grid product-single{% if section.settings.enable_payment_button %} product-single--{{ section.settings.image_size }}-image{% endif %}"> | |
<div class="grid__item product-single__photos {{ product_image_width }}{% if section.settings.image_size == 'full' %} product-single__photos--full{% endif %}"> | |
{%- assign featured_image = product.selected_or_first_available_variant.featured_image | default: product.featured_image -%} | |
{% for image in product.images %} | |
{% capture img_id %}FeaturedImage-{{ section.id }}-{{ image.id }}{% endcapture %} | |
{% capture img_class %}product-featured-img{% endcapture %} | |
{% capture zoom_img_id %}FeaturedImageZoom-{{ section.id }}-{{ image.id }}{% endcapture %} | |
{% capture img_wrapper_id %}{{ zoom_img_id }}-wrapper{% endcapture %} | |
{%- assign img_url = image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} | |
{% include 'image-style' with small_style: true, width: height, height: height, wrapper_id: img_wrapper_id, img_id: img_id %} | |
<div id="{{ img_wrapper_id }}" class="product-single__photo-wrapper js"> | |
<div id="{{ zoom_img_id }}" style="padding-top:{{ 1 | divided_by: image.aspect_ratio | times: 100}}%;" class="product-single__photo{% if enable_zoom %} js-zoom-enabled{% endif %}{% if product.images.size > 1 %} product-single__photo--has-thumbnails{% endif %}{% unless featured_image == image %} hide{% endunless %}" data-image-id="{{ image.id }}"{% if enable_zoom %} data-zoom="{{ image | img_url: product_image_zoom_size, scale: product_image_scale }}"{% endif %}> | |
<img id="{{ img_id }}" | |
class="feature-row__image {{ img_class }} lazyload{% unless featured_image == image %} lazypreload{% endunless %}" | |
src="{{ image | img_url: '300x300' }}" | |
data-src="{{ img_url }}" | |
data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]" | |
data-aspectratio="{{ image.aspect_ratio }}" | |
data-sizes="auto" | |
alt="{{ image.alt | escape }}"> | |
</div> | |
</div> | |
{% endfor %} | |
<noscript> | |
{% capture product_image_size %}{{ height }}x{% endcapture %} | |
<img src="{{ featured_image | img_url: product_image_size, scale: product_image_scale }}" alt="{{ featured_image.alt }}" id="FeaturedImage-{{ section.id }}" class="product-featured-img" style="max-width: {{ height }}px;"> | |
</noscript> | |
{% if product.images.size > 1 %} | |
{% if product.images.size > 3 %} | |
{%- assign enable_thumbnail_slides = true -%} | |
{% endif %} | |
<div class="thumbnails-wrapper{% if enable_thumbnail_slides == true %} thumbnails-slider--active{% endif %}"> | |
{% if enable_thumbnail_slides == true %} | |
<button type="button" class="btn btn--link medium-up--hide thumbnails-slider__btn thumbnails-slider__prev thumbnails-slider__prev--{{ section.id }}"> | |
{% include 'icon-chevron-left' %} | |
<span class="icon__fallback-text">{{ 'sections.slideshow.previous_slide' | t }}</span> | |
</button> | |
{% endif %} | |
<ul class="grid grid--uniform product-single__thumbnails product-single__thumbnails-{{ section.id }}"> | |
{% for image in product.images %} | |
<li class="grid__item {{ product_thumbnail_width }} product-single__thumbnails-item js"> | |
<a href="{{ image.src | img_url: product_image_zoom_size, scale: product_image_scale }}" | |
class="text-link product-single__thumbnail product-single__thumbnail--{{ section.id }}" | |
data-thumbnail-id="{{ image.id }}" | |
{% if enable_zoom %}data-zoom="{{ image.src | img_url: product_image_zoom_size, scale: product_image_scale }}"{% endif %}> | |
<img class="product-single__thumbnail-image" src="{{ image.src | img_url: '110x110', scale: 2 }}" alt="{{ image.alt | escape }}"> | |
</a> | |
</li> | |
{% endfor %} | |
</ul> | |
{% if enable_thumbnail_slides == true %} | |
<button type="button" class="btn btn--link medium-up--hide thumbnails-slider__btn thumbnails-slider__next thumbnails-slider__next--{{ section.id }}"> | |
{% include 'icon-chevron-right' %} | |
<span class="icon__fallback-text">{{ 'sections.slideshow.next_slide' | t }}</span> | |
</button> | |
{% endif %} | |
</div> | |
{% endif %} | |
</div> | |
<div class="grid__item {{ product_description_width }}"> | |
<div class="product-single__meta"> | |
<h1 class="product-single__title">{{ product.title }}</h1> | |
{% if section.settings.show_vendor %} | |
<p class="product-single__vendor">{{ product.vendor }}</p> | |
{% endif %} | |
<div> | |
<p class="product-single__price product-single__price-{{ section.id }}"> | |
{% if current_variant.compare_at_price > current_variant.price %} | |
<span class="visually-hidden">{{ 'products.product.regular_price' | t }}</span> | |
<s id="ComparePrice-{{ section.id }}">{{ current_variant.compare_at_price | money }}</s> | |
<span class="product-price__price product-price__price-{{ section.id }} product-price__sale product-price__sale--single"> | |
<span id="ProductPrice-{{ section.id }}"> | |
{{ current_variant.price | money }} | |
</span> | |
<span class="product-price__sale-label product-price__sale-label-{{ section.id }}">{{ 'products.product.on_sale' | t }}</span> | |
</span> | |
{% else %} | |
<span class="visually-hidden">{{ 'products.product.regular_price' | t }}</span> | |
<s id="ComparePrice-{{ section.id }}" class="hide">{{ current_variant.compare_at_price | money }}</s> | |
<span class="product-price__price product-price__price-{{ section.id }}"> | |
<span id="ProductPrice-{{ section.id }}"> | |
{{ current_variant.price | money }} | |
</span> | |
<span class="product-price__sale-label product-price__sale-label-{{ section.id }} hide">{{ 'products.product.on_sale' | t }}</span> | |
</span> | |
{% endif %} | |
</p> | |
{% capture "form_classes" -%} | |
product-form product-form-{{ section.id }}{% unless section.settings.show_variant_labels %} product-form--hide-variant-labels{% endunless %}{% if section.settings.enable_payment_button and product.has_only_default_variant%} product-form--payment-button-no-variants{% endif %} | |
{%- endcapture %} | |
{% form 'product', product, class:form_classes %} | |
{% unless product.has_only_default_variant %} | |
{% for option in product.options_with_values %} | |
<div class="selector-wrapper js product-form__item"> | |
<label {% if option.name == 'default' %}class="label--hidden" {% endif %}for="SingleOptionSelector-{{ forloop.index0 }}"> | |
{{ option.name }} | |
</label> | |
<select class="single-option-selector single-option-selector-{{ section.id }} product-form__input" id="SingleOptionSelector-{{ forloop.index0 }}" data-index="option{{ forloop.index }}"> | |
{% for value in option.values %} | |
<option value="{{ value | escape }}"{% if option.selected_value == value %} selected="selected"{% endif %}>{{ value }}</option> | |
{% endfor %} | |
</select> | |
</div> | |
{% endfor %} | |
{% endunless %} | |
<select name="id" id="ProductSelect-{{ section.id }}" class="product-form__variants no-js"> | |
{% for variant in product.variants %} | |
{% if variant.available %} | |
<option {% if variant == product.selected_or_first_available_variant %} selected="selected" {% endif %} value="{{ variant.id }}"> | |
{{ variant.title }} | |
</option> | |
{% else %} | |
<option disabled="disabled">{{ variant.title }} - {{ 'products.product.sold_out' | t }}</option> | |
{% endif %} | |
{% endfor %} | |
</select> | |
{% if section.settings.show_quantity_selector %} | |
<div class="product-form__item product-form__item--quantity"> | |
<label for="Quantity">{{ 'products.product.quantity' | t }}</label> | |
<input type="number" id="Quantity" name="quantity" value="1" min="1" class="product-form__input" pattern="[0-9]*"> | |
</div> | |
{% endif %} | |
<div class="product-form__item product-form__item--submit{% if section.settings.enable_payment_button %} product-form__item--payment-button{% endif %}{% if product.has_only_default_variant %} product-form__item--no-variants{% endif %}"> | |
<button type="submit" name="add" id="AddToCart-{{ section.id }}" {% unless current_variant.available %}disabled="disabled"{% endunless %} class="btn product-form__cart-submit{% if section.settings.enable_payment_button %} btn--secondary-accent{% endif %}"> | |
<span id="AddToCartText-{{ section.id }}"> | |
{% unless current_variant.available %} | |
{{ 'products.product.sold_out' | t }} | |
{% else %} | |
{{ 'products.product.add_to_cart' | t }} | |
{% endunless %} | |
</span> | |
</button> | |
{% if section.settings.enable_payment_button %} | |
{{ form | payment_button }} | |
{% endif %} | |
</div> | |
{% endform %} | |
</div> | |
<div class="product-single__description rte"> | |
{{ product.description }} | |
</div> | |
{% if section.settings.show_share_buttons %} | |
{% include 'social-sharing', share_title: product.title, share_permalink: product.url, share_image: product %} | |
{% endif %} | |
</div> | |
</div> | |
</div> | |
</div> | |
{% if collection %} | |
<div class="text-center return-link-wrapper"> | |
<a href="{{ collection.url }}" class="btn btn--secondary btn--has-icon-before return-link"> | |
{% include 'icon-arrow-left' %} | |
{{ 'products.product.back_to_collection' | t: title: collection.title }} | |
</a> | |
</div> | |
{% endif %} | |
{% unless product == empty %} | |
<script type="application/json" id="ProductJson-{{ section.id }}"> | |
{{ product | json }} | |
</script> | |
{% endunless %} | |
{% schema %} | |
{ | |
"name": { | |
"en": "Product pages", | |
"de": "Produktseiten", | |
"fr": "Pages de produits" | |
}, | |
"settings": [ | |
{ | |
"type": "select", | |
"id": "image_size", | |
"label": { | |
"en": "Image size", | |
"de": "Foto-Größe", | |
"fr": "Taille des images" | |
}, | |
"options": [ | |
{ | |
"value": "small", | |
"label": { | |
"en": "Small", | |
"de": "Klein", | |
"fr": "Petite" | |
} | |
}, | |
{ | |
"value": "medium", | |
"label": { | |
"en": "Medium", | |
"de": "Mittel", | |
"fr": "Moyenne" | |
} | |
}, | |
{ | |
"value": "large", | |
"label": { | |
"en": "Large", | |
"de": "Groß", | |
"fr": "Grande" | |
} | |
}, | |
{ | |
"value": "full", | |
"label": { | |
"en": "Full-width", | |
"de": "Volle Breite", | |
"fr": "Pleine largeur" | |
} | |
} | |
], | |
"default": "medium" | |
}, | |
{ | |
"type": "checkbox", | |
"id": "show_quantity_selector", | |
"label": { | |
"en": "Show quantity selector", | |
"de": "Quantitäts-Auswahl anzeigen", | |
"fr": "Afficher le sélecteur de quantité" | |
}, | |
"default": false | |
}, | |
{ | |
"type": "checkbox", | |
"id": "show_variant_labels", | |
"label": { | |
"en": "Show variant labels", | |
"de": "Varianten-Etiketten anzeigen", | |
"fr": "Afficher le nom des variantes" | |
}, | |
"default": true | |
}, | |
{ | |
"type": "checkbox", | |
"id": "show_vendor", | |
"label": { | |
"en": "Show vendor", | |
"de": "Lieferanten anzeigen", | |
"fr": "Afficher les vendeurs" | |
}, | |
"default": false | |
}, | |
{ | |
"type": "checkbox", | |
"id": "enable_zoom", | |
"label": { | |
"en": "Enable image zoom", | |
"de": "Foto-Zoom zulassen", | |
"fr": "Activer le zoom d'image" | |
}, | |
"default": true | |
}, | |
{ | |
"type": "checkbox", | |
"id": "enable_payment_button", | |
"label": { | |
"en": "Show dynamic checkout button", | |
"de": "Dynamischen Checkout Button anzeigen", | |
"fr": "Afficher le bouton de passage à la caisse dynamique" | |
}, | |
"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 bezahlen mit bekannten Bezahlmethoden. [Mehr erfahren](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", | |
"fr": "Permettez à vos clients de passer à la caisse avec un moyen de paiement qui leur est familier. [En savoir plus](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)" | |
}, | |
"default": false | |
}, | |
{ | |
"type": "checkbox", | |
"id": "show_share_buttons", | |
"label": { | |
"en": "Show social sharing buttons", | |
"de": "Buttons für Social Media anzeigen", | |
"fr": "Affichez les boutons de partage sur les médias sociaux" | |
}, | |
"default": true | |
} | |
] | |
} | |
{% endschema %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment