To accurately track conversions from Asklo on your BigCommerce store, you'll need to insert a script into the order confirmation page using BigCommerce's Script Manager. This script reports successful checkouts back to Asklo’s analytics service.
Why this is Important?
Tracking checkouts allows Asklo to:
Attribute conversions to product questions asked via the widget.
Improve AI performance and reporting.
Help you measure Asklo’s impact on sales.
Step 1: Creating a Script
In your BigCommerce admin:
Go to Storefront → Script Manager
Click Create a Script
Step 2: Script Settings
Use the following values:
Field | Value |
Name | Asklo Checkout |
Description | Asklo Checkout |
Location | Order Confirmation |
Placement | Footer |
Category | Analytics |
Script Type | Script |
Step 3: Script Content
Paste the following script into the Script Contents field.
IMPORTANT: Replace "ADD YOUR WIDGET ID"
with your actual Asklo Widget ID.
<script>
const session = localStorage.getItem("klevu-moi-session");
const sessionData = session ? JSON.parse(session) : null;
// Replace this with BigCommerce's injected order ID
const klOrderID = "{{checkout.order.id}}";
fetch(`/api/storefront/order/${klOrderID}?include=lineItems.physicalItems.options,lineItems.digitalItems.options,currency`, {
credentials: 'include'
})
.then(response => response.json())
.then(orderData => {
const currency = orderData.currency.code;
const orderId = orderData.orderId;
const physicalItems = orderData.lineItems?.physicalItems || [];
const digitalItems = orderData.lineItems?.digitalItems || [];
const allItems = [...physicalItems, ...digitalItems];
const payload = [
{
eventTimestampMs: Date.now(),
event: "CHECKOUT",
eventVersion: "1.0",
userProfile: {
sessionId: sessionData?.context?.sessionId,
klevuUUID: sessionData?.context?.visitorId
},
items: allItems.map(item => {
const hasOptions = item.options && item.options.length > 0;
const productId = item.productId;
const variantId = hasOptions ? item.variantId : "";
return {
orderId: String(orderId),
orderLineId: String(item.id),
itemId: hasOptions ? `${productId}-variantid_${variantId}` : `${productId}`,
itemName: item.name,
itemGroupId: String(productId),
itemVariantId: hasOptions ? `variantid_${variantId}` : String(productId),
unitPrice: item.salePrice || 0.00,
currency: currency,
units: item.quantity
};
})
}
];
console.debug("Sending to API with payload: ", JSON.stringify(payload));
fetch('https://pqa-analytics.service.ksearchnet.com/events/collect', {
method: 'POST',
headers: {
'X-Widget-ID': "ADD YOUR WIDGET ID", // <-- Replace this
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify(payload),
redirect: 'follow'
})
.then(response => console.debug('Success:', response))
.catch(error => console.debug('Error:', error));
})
.catch(error => {
console.error("Error fetching order data:", error);
});
</script>
Step 4. Save Script
Once pasted and edited with your correct widget ID:
Click Save.
The script will now trigger automatically on the order confirmation page after a successful checkout.