Purchase Script
Application to send Bold Metrics your Purchase data from the browser.
Implementation
Shopify Sites
(function(d,s){let f=d.getElementsByTagName(s)[0];let j=d.createElement(s);j.async=true;j.src="https://d2yc9u4j5yz48x.cloudfront.net/purchase.pixel.js";f.parentNode.insertBefore(j,f);
})(document,'script');
window.bmiFallback=function(e,c,b){return new Promise(function(f,g){b.localStorage.getItem("boldMetricsRecIds").then(function(h){b.cookie.get("bm").then(function(i){var j={rec_ids:JSON.parse(h)||h,user_id:i,transaction_id:e.data.checkout.order.id,client_id:c
},k=new XMLHttpRequest;k.open("POST",
"https://web-api.boldmetrics.io/purchase",!0),k.setRequestHeader("Content-Type",
"application/json;charset=UTF-8"),k.onload=function(){k.status>=200&&k.status<300?f(k.response):g(k.statusText)
},k.onerror=function(){g(k.statusText)
},k.send(JSON.stringify(j))
}).catch(g)
}).catch(g)
})
}
analytics.subscribe("checkout_completed", async (event) => {
const client_id = "YOUR CLIENT ID GOES HERE";
// Wait for data to be set
await new Promise((resolve) => {
setTimeout(() => {
window.bmiPurchaseData = { event, client_id, browser };
resolve();
}, 2000);
});
try {
const { event, client_id, browser
} = window.bmiPurchaseData;
await window.bmiWriteTransaction(event, client_id, browser);
} catch (_) {
await window.bmiFallback(event, client_id, browser);
}
});
Non-Shopify Sites
Purchase Templates
Logging & Monitoring
Troubleshooting
Last updated