Shopify {{product.price|money_without_trailing_zeros}}
2021-02-14
8620
我是 Shopify 新手。
我正在尝试构建一个可以在 addtocart 事件中引用产品价格的数据层。 但是,liquid 对象 product.price 返回一个没有小数的字符串。例如 3499,其中价格为 34.99
我正在使用 {{ product.price | money_without_trailing_zeros}> ,但它返回一个空字符串。
我也尝试过使用从 product-template.liquid 中获取的 {{ current_variant.price | money }> ,但它也没有返回任何内容。
这是我的尝试:
<!-- jQuery -->
<script type="textjavascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<!-- Script -->
<script type="text/javascript">
function fireEvent() {
var price= {{ product.price | money_without_trailing_zeros}}
console.log( price)
// Wait a second for button to initiate.
setTimeout(function() {
// Get div id.
function sendEvent(){
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'currencyCode': 'EUR',
'add': { // 'add' actionFieldObject measures.
'products': [{ // adding a product to a shopping cart.
'name': '{{ product.title }}',
'id': '{{ product.id }}',
'price': price ,
'quantity': 1
}]
}
}
});
}
document.getElementById("AddToCart").addEventListener("click", sendEvent)
}, 3000);
}
fireEvent();
</script>
有什么帮助吗?
1个回答
将
var price= {{ product.price | money_without_trailing_zeros}}}
更改为
var price= "{{ product.price | money_without_trailing_zeros}}"
(请注意,liquid 代码周围的引号)
或更改为
var price= {{ product.price | money_without_trailing_zeros | json }}}>
(请注意,
| money_without_trailing_zeros
过滤器之后的
| json
过滤器)
您的代码可能会输出类似这样的内容 -
var price = $34.99
,这会因为美元符号(或您商店中配置的任何其他货币符号/代码)而导致 JS 出现错误。
Vladimir
2021-02-14