Shopify中的Metafields:尝试显示60%折扣产品的最终销售信息

时间:2017-01-13 21:34:36

标签: 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 accepted.
    </p>
{% endif %}

我正在尝试更改此设置,以便在产品60%折扣时显示最终销售消息。我的主题是使用Metafields 2应用程序,我确实看到了名为&#34; final_sale&#34;在&#34;配置产品Metafields&#34;页面,但我不知道我可以调整分配给这个自定义元素的百分比...有谁知道我在哪里可以找到这个?

1 个答案:

答案 0 :(得分:1)

60%的数字不在此代码的任何位置,根本不属于主题。当元场被分配为TRUE时,正在进行百分比比较。虽然你只能在液体中读取元场,但你不能在那里写它们。你肯定需要寻找在其他地方设置metafield的代码;也许是自定义应用程序的一部分。

我认为你根本不需要这个案例的元数据。您可以使用product.price属性和数学过滤器在液体中设置逻辑。

在液体中看起来像这样:

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

实际实施可能需要比这更复杂,具体取决于您如何使用变体和变体定价,此外,此示例无法处理“价格”是原始和“比较”是销售的情况量。这些也可以用液体逻辑来处理。以下是相关的液体参考资料,可帮助您在需要时进一步构建:

https://help.shopify.com/themes/liquid/objects/product

https://help.shopify.com/themes/liquid/filters/math-filters