← back to Dw Theme Boost Fix

snippets/saw_compute_discount.liquid

164 lines

{% comment %}
  Set base price reference
{% endcomment %}
{% if shop.metafields.sawholesale['base_price'] == blank %}
  {% assign base_price = 'compare_at_price' %}
{% else %}
  {% assign base_price = shop.metafields.sawholesale['base_price'] %}
{% endif %}

{% assign raw_discount = 0 %}
{% assign saw_has_discount = false %}

{% comment %}
  Check if customer has a tag that matches a discount key in metafields
{% endcomment %}
{% if customer.tags != blank %}
  {% for mf in saw_compute_discount.metafields.sawholesale %}
    {% capture product_customer_tag %}{{ mf | first | replace: 'discount_', '' }}{% endcapture %}
    {% if customer.tags contains product_customer_tag %}
      {% assign saw_has_discount = true %}
      {% assign discount_key = product_customer_tag | prepend: 'discount_' %}
      {% assign price_key = product_customer_tag | prepend: 'price_' %}
      {% assign raw_discount = saw_compute_discount.metafields.sawholesale[discount_key] | divided_by: 100.0 %}
    {% endif %}
  {% endfor %}
{% endif %}

{% comment %}
  Override discount for 'trade' tag specifically
{% endcomment %}
{% if customer.tags contains 'trade' %}
  {% assign raw_discount = 0.10 %}
{% endif %}

{% assign saw_discount = 1 | minus: raw_discount %}


{% assign wbuyx_price_min = saw_compute_discount.price_max %}

{% assign wbuyx_price_min = -1 %}
{% assign saw_product_price_variant = -1 %}
{% assign saw_product_compare_at_price_variant = -1 %}

{% comment %}
{% assign saw_generate_js = true %}
{% endcomment %}

{% if saw_generate_js == true %}
    <script>
        if (typeof window.saw_variants == "undefined") { window.saw_variants = {}; }
{% endif %}
{% for variant in saw_compute_discount.variants %}
	{% unless variant.title contains '% Off' %}
	{% unless variant.metafields.shappify_qb.qb_hide == "1" %}
	{% unless variant.metafields.shappify_bundle.is_bundle == "true" %}
	{% unless variant.metafields.brodev_scn.hide == "true" %}
    {% unless variant.metafields.secomapp.freegifts %}
  
    	{% if wbuyx_price_min == -1 %}
        	{% assign wbuyx_price_min = variant.price %}
      		{% if variant.compare_at_price == blank  or variant.compare_at_price == 0 or variant.compare_at_price < variant.price %}
            	{% assign saw_product_compare_at_price = variant.price %}
            {% else %}
	            {% assign saw_product_compare_at_price = variant.compare_at_price %}
            {% endif %}
    	{% endif %}

        {% if variant.metafields.sawholesale[price_key] == blank %}
        {% else %}
				{% if saw_generate_js == true %}
					window.saw_variants["{{variant.id}}"] = {{variant.metafields.sawholesale[price_key]}};
				{% endif %}
				{% unless customer.tags contains 'trade' %}
  {% if saw_product_price_variant > -1 %}
    {% assign saw_product_price = saw_product_price_variant %}
    {% if saw_discount == 1 %}
      {% assign saw_discount = 0.99 %}
    {% endif %}
  {% endif %}
{% endunless %} 

        {% endif %}

	{% endunless %}
	{% endunless %}
	{% endunless %}
	{% endunless %}
	{% endunless %}
{% endfor %}
                                        
{% if saw_generate_js == true %}
	</script>
{% endif %}

{% comment %}
{% assign saw_product_compare_at_price = saw_compute_discount.variants[0].compare_at_price %}
{% endcomment %}


{% if saw_product_compare_at_price == blank  or saw_product_compare_at_price == 0 or saw_product_compare_at_price < wbuyx_price_min %}
	{% assign saw_product_compare_at_price = wbuyx_price_min %}
{% endif %}
{% if base_price == 'price' %}
	{% assign saw_product_compare_at_price = wbuyx_price_min %}
{% endif %}





{% assign saw_product_price = saw_product_compare_at_price | times: saw_discount %}
{% if saw_product_price > wbuyx_price_min %}
	{% assign saw_product_price = wbuyx_price_min %}
{% endif %}



{% comment %}

<!-- 
price_key {{price_key}} variant.title {{variant.title}} 
variant.metafields.sawholesale[price_key] {{variant.metafields.sawholesale[price_key]}}
saw_product_price_variant {{saw_product_price_variant}}
-->

{% assign saw_product_compare_at_price_min = saw_compute_discount.compare_at_price_min %}
{% if saw_product_compare_at_price_min == blank or saw_product_compare_at_price_min == 0 %}
	{% assign saw_product_compare_at_price_min = saw_compute_discount.price_min %}
{% endif %}
{% assign saw_product_price_min = saw_product_compare_at_price_min | times: saw_discount %}



{% endcomment %}


{% assign saw_product_compare_at_price_max = saw_compute_discount.compare_at_price_max %}
{% if saw_product_compare_at_price_max == blank or saw_product_compare_at_price_max == 0 %}
	{% assign saw_product_compare_at_price_max = saw_compute_discount.price_max %}
{% endif %}
{% if saw_compute_discount.compare_at_price > saw_compute_discount.price %} 
	{% assign saw_product_compare_at_price_variant = saw_compute_discount.compare_at_price %}
{% endif %}
{% assign saw_product_price_max = saw_product_compare_at_price_max | times: saw_discount %}


{% if saw_product_price_variant > -1 %}
	{% assign saw_product_price = saw_product_price_variant %}
	{% if saw_discount == 1 %}
    	{% assign saw_discount = 0.99 %}
	{% endif %}

{% endif %}
{% if saw_product_compare_at_price_variant > -1 %}
	{% assign saw_product_compare_at_price = saw_product_compare_at_price_variant %}
{% endif %}

<!-- wbuyx_price_min {{wbuyx_price_min}}
saw_product_price {{saw_product_price}}
saw_product_compare_at_price {{saw_product_compare_at_price}}
-->