Created
February 26, 2019 22:49
-
-
Save craigcooperxyz/8b7c6f9bb1fdd892c0a9d03573ceb819 to your computer and use it in GitHub Desktop.
related-products original parisian
This file contains hidden or 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 custom-call page-width" itemscope itemtype="http://schema.org/Product" id="ProductSection-{{ section.id }}" data-section-id="{{ section.id }}" data-section-type="product" data-enable-history-state="true"> | |
{% comment %} | |
Number of related items per row, | |
and number of rows. | |
{% endcomment %} | |
{% assign number_of_related_products_per_row = 4 %} | |
{% assign number_of_rows = 1 %} | |
{% comment %} | |
Heading. | |
Leave blank if you don't need one. | |
{% endcomment %} | |
{% assign heading = section.settings.related_title %} | |
{% comment %} | |
Set either or both to true, if you want | |
to limit yourself to items with same vendor, and/or type. | |
{% endcomment %} | |
{% assign same_vendor = false %} | |
{% assign same_type = false %} | |
{% comment %} | |
Collections to ignore. | |
Never pick related items from those. | |
{% endcomment %} | |
{% assign exclusions = 'frontpage,all' | split: ',' %} | |
{% comment %} | |
Looking for a relevant collection. | |
{% endcomment %} | |
{% if product.metafields.c_f['Related Products'] %} | |
{% assign collection = collections[product.metafields.c_f['Related Products']] %} | |
{% endif %} | |
{% assign found_a_collection = false %} | |
{% if collection and collection.all_products_count > 1 %} | |
{% unless exclusions contains collection.handle %} | |
{% assign found_a_collection = true %} | |
{% endunless %} | |
{% endif %} | |
{% unless found_a_collection %} | |
{% for c in product.collections %} | |
{% unless exclusions contains c.handle or c.all_products_count < 2 %} | |
{% assign found_a_collection = true %} | |
{% assign collection = c %} | |
{% break %} | |
{% endunless %} | |
{% endfor %} | |
{% endunless %} | |
{% comment %} | |
If we have a relevant collection. | |
{% endcomment %} | |
{% if found_a_collection %} | |
{% assign counter = 0 %} | |
{% assign break_at = number_of_rows | times: number_of_related_products_per_row %} | |
{% assign current_product = product %} | |
{% assign current-product-name = current_product.title %} | |
{% case number_of_related_products_per_row %} | |
{% when '1' %} | |
{% assign grid_item_width = '' %} | |
{%- assign max_height = 700 -%} | |
{% when '2' %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-half' %} | |
{%- assign max_height = 530 -%} | |
{% when '3' %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-third' %} | |
{%- assign max_height = 345 -%} | |
{% when '4' %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-quarter' %} | |
{%- assign max_height = 250 -%} | |
{% when '5' %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-fifth' %} | |
{%- assign max_height = 195 -%} | |
{% when '6' %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-sixth' %} | |
{%- assign max_height = 195 -%} | |
{% else %} | |
{% assign grid_item_width = 'small--one-half medium-up--one-quarter' %} | |
{%- assign max_height = 195 -%} | |
{% endcase %} | |
{% capture related_items %} | |
<div class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}"> | |
{% paginate collection.products by 1000 %} | |
{% for product in collection.products %} | |
{% unless product.handle == current_product.handle %} | |
{% unless same_vendor and current_product.vendor != product.vendor %} | |
{% unless same_type and current_product.type != product.type %} | |
{% assign product_title = current_product.title | slice: 22,current_product.title.size %} | |
{% assign product_title_size = current_product.title | size %} | |
{% assign product_title_less = current_product.title | slice: 10,current_product.title.size %} | |
{% assign product_title_less_new = current_product.title | slice: 45,current_product.title.size %} | |
{% if product_title_size < 30 %} | |
{% if product.title contains product_title_less %} | |
<div class="grid__item {{ grid_item_width }}"> | |
{% include 'related-product-card-grid', max_height: max_height %} | |
</div> | |
{% assign counter = counter | plus: 1 %} | |
{% if counter == break_at %} | |
{% break %} | |
{% endif %} | |
{% endif %} | |
{% elsif product_title_size > 45 %} | |
{% if product.title contains product_title_less_new %} | |
<div class="grid__item {{ grid_item_width }}"> | |
{% include 'related-product-card-grid', max_height: max_height %} | |
</div> | |
{% assign counter = counter | plus: 1 %} | |
{% if counter == break_at %} | |
{% break %} | |
{% endif %} | |
{% endif %} | |
{% else %} | |
{% if product.title contains product_title %} | |
<div class="grid__item {{ grid_item_width }}"> | |
{% include 'related-product-card-grid', max_height: max_height %} | |
</div> | |
{% assign counter = counter | plus: 1 %} | |
{% if counter == break_at %} | |
{% break %} | |
{% endif %} | |
{% endif %} | |
{% endif %} | |
{% comment %} | |
Replace 'test' below with prefered tag | |
{% endcomment %} | |
{% endunless %} | |
{% endunless %} | |
{% endunless %} | |
{% endfor %} | |
{% endpaginate %} | |
</div> | |
{% endcapture %} | |
{% assign related_items = related_items | trim %} | |
{% unless related_items == blank %} | |
<aside class="grid"> | |
<div class="grid__item"> | |
{% unless heading == blank %} | |
<header class="section-header"> | |
<h3>{{ heading }}</h3> | |
</header> | |
{% endunless %} | |
<div class="grid-uniform"> | |
{{ related_items }} | |
</div> | |
</div> | |
</aside> | |
{% endunless %} | |
{% endif %} | |
</div> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment