Shopify 价格问题
Shopify Price Issue
我在这里挣扎。当我注释掉 var priceRounded = {{ product.price | money_without_trailing_zeros }};行计算工作。当我不评论它时,什么也不会发生。我试图在没有零的情况下呈现价格。因此,如果产品价格为 20.00 英镑,那么 Shopify 出于某种原因认为它是 2000 英镑。因此,我需要按照 Shopify's documents.
中的描述删除尾随零
Price {{ product.price | money_without_trailing_zeros }}<br />
<label for="meters-required">Number of M2</label><br />
<input type="number" id="meters-required" name="properties[meters required]" required minlength="1" maxlength="8" size="10"><br />
Total Packs: <span id="output_totalPacks"></span><br />
Total Price: <span id="output_totalPrice"></span><br />
Price per Pack: <span id="output_pricePerPack"></span><br />
Price per Meter: <span id="output_pricePerMeter"></span><br />
Pack Size: <span id="output_PackSize"></span><br />
<script>
var meters_req = document.querySelector("#meters-required");
var output_totalPacks = document.querySelector("#output_totalPacks");
var output_totalPrice = document.querySelector("#output_totalPrice");
var output_pricePerPack = document.querySelector("#output_pricePerPack");
const packSize = {{ packSize }};
const price = {{ product.price }};
//var priceRounded = {{ product.price | money_without_trailing_zeros }};
function woolCalc(){
var meters_required = document.getElementById("meters-required").value;
var calc_TotalPrice = price * meters_required;
var calc_TotalPacks = meters_required / packSize;
var calc_PackPrice = price * packSize;
output_totalPacks.innerHTML = calc_TotalPacks;
document.getElementById("output_PackSize").innerHTML = packSize;
document.getElementById("output_pricePerPack").innerHTML = calc_PackPrice;
document.getElementById("output_totalPrice").innerHTML = calc_TotalPrice;
}
meters_req.addEventListener("input", woolCalc);
Price {{ product.price | money_without_trailing_zeros }}<br />
Pack Size: {{ packSize }}<br />
Title: {{ priceRounded }};<br />
<label for="meters-required">Number of M2</label><br />
<input type="number" id="meters-required" name="properties[meters required]" required minlength="1" maxlength="8" size="10"><br />
Total Packs: <span id="output_totalPacks"></span><br />
Total Price: <span id="output_totalPrice"></span><br />
Price per Pack: <span id="output_pricePerPack"></span><br />
Price per Meter: <span id="output_pricePerMeter"></span><br />
Pack Size: <span id="output_PackSize"></span><br />
想知道是什么原因造成的吗?或者如何让函数计算价格而不认为它是实际价格的 100 x?
Shopify 将 money 作为一种 Integer 进行处理。定价为 9.99 的产品在 Shopify 中处理为 999。这样,在做数学时,就不会丢失 'precision'。您有义务使用过滤器将整数转换为小数。
因此,如果您看到的是 2000 而不是您预期的 20.00,那是因为您没有使用过滤器转换货币。为此,有 Liquid 和 JS 过滤器。所以 'nothing' 导致了它,这在 Shopify 中是很自然的事情。
我在这里挣扎。当我注释掉 var priceRounded = {{ product.price | money_without_trailing_zeros }};行计算工作。当我不评论它时,什么也不会发生。我试图在没有零的情况下呈现价格。因此,如果产品价格为 20.00 英镑,那么 Shopify 出于某种原因认为它是 2000 英镑。因此,我需要按照 Shopify's documents.
中的描述删除尾随零Price {{ product.price | money_without_trailing_zeros }}<br />
<label for="meters-required">Number of M2</label><br />
<input type="number" id="meters-required" name="properties[meters required]" required minlength="1" maxlength="8" size="10"><br />
Total Packs: <span id="output_totalPacks"></span><br />
Total Price: <span id="output_totalPrice"></span><br />
Price per Pack: <span id="output_pricePerPack"></span><br />
Price per Meter: <span id="output_pricePerMeter"></span><br />
Pack Size: <span id="output_PackSize"></span><br />
<script>
var meters_req = document.querySelector("#meters-required");
var output_totalPacks = document.querySelector("#output_totalPacks");
var output_totalPrice = document.querySelector("#output_totalPrice");
var output_pricePerPack = document.querySelector("#output_pricePerPack");
const packSize = {{ packSize }};
const price = {{ product.price }};
//var priceRounded = {{ product.price | money_without_trailing_zeros }};
function woolCalc(){
var meters_required = document.getElementById("meters-required").value;
var calc_TotalPrice = price * meters_required;
var calc_TotalPacks = meters_required / packSize;
var calc_PackPrice = price * packSize;
output_totalPacks.innerHTML = calc_TotalPacks;
document.getElementById("output_PackSize").innerHTML = packSize;
document.getElementById("output_pricePerPack").innerHTML = calc_PackPrice;
document.getElementById("output_totalPrice").innerHTML = calc_TotalPrice;
}
meters_req.addEventListener("input", woolCalc);
Price {{ product.price | money_without_trailing_zeros }}<br />
Pack Size: {{ packSize }}<br />
Title: {{ priceRounded }};<br />
<label for="meters-required">Number of M2</label><br />
<input type="number" id="meters-required" name="properties[meters required]" required minlength="1" maxlength="8" size="10"><br />
Total Packs: <span id="output_totalPacks"></span><br />
Total Price: <span id="output_totalPrice"></span><br />
Price per Pack: <span id="output_pricePerPack"></span><br />
Price per Meter: <span id="output_pricePerMeter"></span><br />
Pack Size: <span id="output_PackSize"></span><br />
想知道是什么原因造成的吗?或者如何让函数计算价格而不认为它是实际价格的 100 x?
Shopify 将 money 作为一种 Integer 进行处理。定价为 9.99 的产品在 Shopify 中处理为 999。这样,在做数学时,就不会丢失 'precision'。您有义务使用过滤器将整数转换为小数。
因此,如果您看到的是 2000 而不是您预期的 20.00,那是因为您没有使用过滤器转换货币。为此,有 Liquid 和 JS 过滤器。所以 'nothing' 导致了它,这在 Shopify 中是很自然的事情。