commit e19c0888e58fe824bee9a0eaa0708b34d812c671 Author: Axel Date: Wed Jun 17 00:34:49 2026 +0800 first commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..c456dcc Binary files /dev/null and b/.DS_Store differ diff --git a/snippets/product-info.liquid b/snippets/product-info.liquid new file mode 100644 index 0000000..f8f26dd --- /dev/null +++ b/snippets/product-info.liquid @@ -0,0 +1,187 @@ +{% assign variant = product.selected_or_first_available_variant %} + +{% liquid + comment + Yagi automatic discount helper app code + endcomment + assign product_price = product.metafields.app--168074346497.min_auto_discounted_price.value | default: product.price + assign product_price_min = product_price + assign product_price_max = product.price_max + assign product_compare_at_price = product.compare_at_price + assign product_compare_at_price_min = product.compare_at_price + 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_price_max = product.price_max | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil + + assign product_compare_at_price = 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.price_max + endif + endif +%} + + +
+ + {{- product.title | escape -}} + + {% if settings.display_vendor %} + + {{ product.vendor }} + + {% endif %} + + {% if settings.show_star_ratings and product.metafields.reviews.rating.value != blank %} +
+ {% + render 'rating-stars', + value: product.metafields.reviews.rating.value.rating, + scale_max: product.metafields.reviews.rating.value.scale_max, + %} +

+ +

+

+ + {{ product.metafields.reviews.rating_count }} {{ "general.accessibility.total_reviews" | t }} +

+
+ {% endif %} + + {% if collection_handles contains 'coming-soon' %} + {{ 'collections.general.coming_soon' | t }} + {% else %} + {% if settings.quick_shop_enabled and settings.quick_shop_style == 'inline' %} + {% comment %}Inject @pixelunion/shopify-price-ui/price-ui begin{% endcomment %} +
+ + {% assign compare_at_price = false %} + + {% if product_compare_at_price and product_compare_at_price != product_price %} + {% if product.compare_at_price_varies %} + {%- capture price_min -%} + {%- + render 'price-ui-templates', + template: 'price-min', + value: product_compare_at_price_min, + -%} + {%- endcapture -%} + + {%- capture price_max -%} + {%- + render 'price-ui-templates', + template: 'price-max', + value: product_compare_at_price_max, + -%} + {%- endcapture -%} + + {%- assign compare_at_price = 'product.price.range_html' | t: price_min: price_min, price_max: price_max -%} + {% else %} + {%- capture compare_at_price -%} + {%- + render 'price-ui-templates', + template: 'price', + value: product_compare_at_price, + -%} + {%- endcapture -%} + {% endif %} + {% endif %} + + {% if product.price_varies %} + {%- capture price_min -%} + {%- + render 'price-ui-templates', + template: 'price-min', + value: product_price_min, + -%} + {%- endcapture -%} + + {%- capture price_max -%} + {%- + render 'price-ui-templates', + template: 'price-max', + value: product_price_max, + -%} + {%- endcapture -%} + + {%- assign price = 'product.price.range_html' | t: price_min: price_min, price_max: price_max -%} + {% else %} + {%- capture price -%} + {%- + render 'price-ui-templates', + template: 'price', + value: product_price, + -%} + {%- endcapture -%} + {% endif %} + + {%- + render 'price-ui-templates', + template: 'price-ui', + compare_at_price: compare_at_price, + price: price, + unit_pricing: false, + -%} +
+ {% comment %}Inject @pixelunion/shopify-price-ui/price-ui end{% endcomment %} + + {% else %} + + {% unless product.available == false and settings.display_price == false %} + + {% if product.price_varies %} + {{ 'products.general.from' | t }} + {% endif %} + {% if product.price_min > 0 %} + {% render 'price-element', price: product_price_min %} + {% else %} + {% if settings.free_price_text != blank %} + {{ settings.free_price_text }} + {% else %} + {% render 'price-element', price: product_price_min %} + {% endif %} + {% endif %} + + + {% if product_price < product_compare_at_price %} + {% render 'price-element', price: product_compare_at_price %} + {% endif %} + + {% endunless %} +
+ {% unless product.available %} + {{ 'products.product.sold_out' | t }} + {% endunless %} +
+
+ {% endif %} + {% endif %} + {% if settings.quick_shop_enabled and settings.quick_shop_style == 'popup' %} + {% + render 'unit-price', + item: variant, + variant: product, + product: product, + class: 'product-details__unit-price' + %} + {% endif %} +
\ No newline at end of file