Files
Booster/snippets/product-card-search.liquid
2025-11-22 02:28:27 +08:00

100 lines
4.0 KiB
Plaintext

{%- liquid
assign product_price = product.metafields.app--168074346497.min_auto_discounted_price.value | default: product.price
assign product_price_min = product.price_min
assign product_compare_at_price = product.compare_at_price
assign product_compare_at_price_min = product.compare_at_price_min
assign product_compare_at_price_max = product.compare_at_price_max
if product.metafields.app--168074346497.discount_percentage.value > 0.01
assign deducted_percentage = 1.0 | minus: product.metafields.app--168074346497.discount_percentage.value
assign product_price = product.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign product_price_min = product_price
assign product_compare_at_price = product.price
assign product_compare_at_price_min = product.price
assign product_compare_at_price_max = product.price_max
if product.compare_at_price > product_compare_at_price
assign product_compare_at_price = product.compare_at_price
assign product_compare_at_price_min = product.compare_at_price
endif
if product.compare_at_price_max > product_compare_at_price_max
assign product_compare_at_price_max = product.compare_at_price_max
endif
endif
if product_price < product.price and product_compare_at_price == blank
assign product_compare_at_price = product.price
assign product_compare_at_price_min = product.price
endif
if product_price < product.price and product_compare_at_price_max == blank
assign product_compare_at_price_max = product.price_max
endif
-%}
<div class="card--default {% unless product.available %}card--soldout{% endunless %}">
<a class="card__img--container" href="{{ product.url | within: collection }}">
<div class="card__img--ratio">
<div class="card__img">
{% render 'card-image', image: product.featured_image, alt: product.featured_image.alt, desktop: dsize %}
{% unless product.images.size < 2 or settings.cardShowSecondary == false %}
{% assign secondaryImage = product.images[1] %}
{% render 'card-image', image: secondaryImage, alt: secondaryImage.alt, desktop: dsize, class: 'card__img--secondary' %}
{% endunless %}
{% if product.compare_at_price_min > 0 and settings.countdownCard and settings.countdown %}
<div data-countdown data-ct-key="{{product.id}}" class="countdown">
<span class="countdown__holder"><span class="days">00</span><br>DAYS</span>
<span class="countdown__holder"><span class="hours">00</span><br>HRS</span>
<span class="countdown__holder"><span class="minutes">00</span><br>MIN</span>
<span class="countdown__holder"><span class="seconds">00</span><br>SEC</span>
</div>
{% endif %}
</div>
</div>
</a>
{% unless settings.cardStyle == 'catalog' %}
{% if settings.cardNameLimit == "words" %}
{% assign truncatedProductTitle = product.title | truncatewords: settings.cardNameLimitAmount %}
{% elsif settings.cardNameLimit == 'chars' %}
{% assign truncatedProductTitle = product.title | truncate: settings.cardNameLimitAmount %}
{% endif %}
<div class="card__info">
<a
class="card__title"
href="{{ product.url | within: collection }}"
data-original-text="{{ product.title }}"
data-truncated-text="{{ truncatedProductTitle }}">
{% unless settings.cardNameLimit != "none" %}
{{ product.title }}
{% else %}
{% if settings.cardNameLimit == "words" %}
{{ product.title | truncatewords: settings.cardNameLimitAmount }}
{% else %}
{{ product.title | truncate: settings.cardNameLimitAmount }}
{% endif %}
{% endunless %}
</a>
{% if product_compare_at_price_min > 0 %}
{% assign sale = true %}
{% endif %}
<span class="card__price {% if sale == true %}card__price--sale{% endif %}">
{% if product.price_varies %}
{{'product_page.card.from'|t}} <span class="jsPrice">{{ product_price_min | money | strip_html }}</span>
{% else %}
<span class="jsPrice">{{ product_price | money | strip_html }}</span>
{% endif %}
{% if sale == true %}
<span class="card__price--old jsPrice">
{{product_compare_at_price | money | strip_html}}
</span>
{% endif %}
</span>
</div>
{% endunless %}
</div>