我对Shopify不熟悉。
我正在尝试构建一个可以在addtocart事件上引用产品价格的数据层。然而,液态对象product.price返回一个没有小数的字符串。例如3499,这里的价格是34.99
我使用{{ product.price \money_without_trailing_zeros},但它返回一个空字符串。
我也尝试使用从产品模板提取的{{ current_variant.price \货币}},但是它没有返回任何东西。
以下是我的尝试:
<!-- 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>有什么帮助吗?
发布于 2021-02-14 21:57:13
变化
var price= {{ product.price | money_without_trailing_zeros}}
至
var price= "{{ product.price | money_without_trailing_zeros}}"
(注:液体代码周围的引号)
或转到
var price= {{ product.price | money_without_trailing_zeros | json }}
(注意| json过滤器之后的| money_without_trailing_zeros过滤器)
您的代码可能输出类似- var price = $34.99,这将在JS中抛出错误,因为美元符号(或任何其他货币符号/代码配置在您的商店)。
https://stackoverflow.com/questions/66194776
复制相似问题