Shopify中的元字段:尝试显示60%折扣产品的最终销售消息

Shopify中的元字段:尝试显示60%折扣产品的最终销售消息,shopify,liquid,Shopify,Liquid,在“我的定制Shopify”主题中,使用以下代码显示70%折扣的任何产品的最终销售消息: {% assign finalSale = product.metafields.details.final_sale | upcase %} {% if finalSale == 'TRUE' %} <p style="color: #B21F1F;"> This item is final sale -- no returns or exchanges are acc

在“我的定制Shopify”主题中,使用以下代码显示70%折扣的任何产品的最终销售消息:

{% assign finalSale = product.metafields.details.final_sale | upcase %}
{% if finalSale == 'TRUE' %}
    <p style="color: #B21F1F;">
        This item is final sale -- no returns or exchanges are accepted.
    </p>
{% endif %}

我正在尝试更改此设置,以便在产品打六折时显示最终销售信息。我的主题是使用Metafields 2应用程序,我确实在配置产品Metafields页面下看到了名为final_sale的活动metafield,但我看不到可以调整分配给此自定义metafield的百分比的位置…有人知道我在哪里可以找到它吗

这段代码中没有60%的数字,也根本不是主题的一部分。当元字段被指定为TRUE时,将进行百分比比较。只能读取液体中的元字段,但不能在液体中写入。您肯定需要寻找在其他地方设置元字段的代码;也许是定制应用程序的一部分

不过,我认为在这种情况下你根本不需要元域。您可以使用product.price属性和数学过滤器在liquid中正确设置逻辑

在液体中看起来像这样:

if compare_at_price | minus price | divided_by compare_at_price >= 0.6
使用这种方法需要注意的一点是Shopify的数学过滤器有时会四舍五入到最接近的整数,但在开始之前,您可以通过乘以100来解决这个问题

assign sale_amount = compare_at_price | minus price | times 100
assign adjusted_compare_price = compare_at_price | times 100
if sale_amount | divided_by adjusted_compare_price >= 60
实际实现可能需要比这稍微复杂一点,这取决于您如何使用变体和变体定价,此外,此示例无法处理price是原始值而compare at是销售金额的情况。这些也可以用液体的逻辑来处理。以下是相关的液体参考资料,可帮助您在需要时进一步构建:


您是否使用“价格比较”字段来存储原始价格@JoshBrown我正在使用Compare at Price来存储原始价格。你认为这是在玩这个游戏吗?