Code Block |
---|
language | js |
---|
title | Sample Product Detail Impression data |
---|
collapse | true |
---|
|
{
"event": "enhancedEcomm",
"event_type": "impression",
"ecommerce": {
"currencyCode": "AUD",
"detail": {
"actionField": {
"list": "list name"
},
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"brand": "brand name",
"price": "99.99"
}
]
}
}
} |
b. Product Clicks
Product Click data is pushed on any click of a product link. For example, a product on a page of search results, or a product on the user's favourites list.
Property | Value | Notes |
---|
event | 'productClick' |
|
list* | One of the following: - Product List
- Search Results
- Items Recently Viewed
- Campaign - (sent as the Campaign Description, not the Campaign Code)
- CrossSell - (Alternate products)
- UpSell - (Accessories / Related products)
- User Favourites
- Prior Purchases
- Cart Item
| Value determined by the list in which the product is located. *Note - Zoned Product Layout must be used in order for Enhanced eCommerce to work with lists. |
name | The product description |
|
id | The product code |
|
category | The product's primary category | Includes all levels of the category structure for the product's primary category. |
brand | The product's brand |
|
position | The product's position / sequence in its list |
|
price | The product price (nett price for 1) | If 'hide pricing' is enabled at Role level, this data is not pushed. |
Code Block |
---|
language | js |
---|
title | Sample Product Click data |
---|
collapse | true |
---|
|
{
"event": "productClick",
"ecommerce": {
"click": {
"actionField": {
"list": "list name"
},
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"brand": "brand name",
"price": "99.99",
"position": 1
}
]
}
}
} |
c. User Details
User Detail data is pushed on every page of the site. There is the option to push data for logged in users only.
- 'User_ID' = the user's unique identifier (database field = user.userid )
Code Block |
---|
language | js |
---|
title | Sample User Detail data |
---|
collapse | true |
---|
|
{
"User_ID": "unique user id"
} |
d. Questionnaire
Questionnaire data is only pushed for non-widget-based questionnaires.
Since the URL does not change post submission, a virtual URL is pushed. (In contrast, widget-based questionnaires have a URL redirect post submission.)
Code Block |
---|
language | js |
---|
title | Sample Questionnaire data |
---|
collapse | true |
---|
|
{
"virtualURL": "thank you URL"
} |
e. Checkout Steps & Options
Steps - pushed as the user progresses through the various steps of the checkout process.
Property | Value | Notes |
---|
event | 'checkout' |
|
event_type | 'checkout' |
|
step | The checkout step number: - 1 - going to cart
- 2 - attempting checkout, but login required
- 3 - selecting delivery option
- 4 - selecting payment option
- 5 - submitting the order
| Steps 3 & 4 will trigger additional 'Product Option' data to be pushed, in the form of the option selected at this step. For example, the freight option selected at Step 3 or the payment method selected at Step 4 (sample provided below). |
products | The products in the cart | Standard product data will be pushed for each product in the cart (e.g. name, id, category, brand, price). |
Code Block |
---|
language | js |
---|
title | Sample Checkout Steps data |
---|
collapse | true |
---|
|
{
"event": "checkout",
"event_type": "checkout",
"ecommerce": {
"checkout": {
"actionField": {
"step": 1
},
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"brand": "brand name",
"price": "99.99"
}
]
}
}
} |
Options - pushed whenever the Checkout Step value (detailed above) is either 3 or 4.
Property | Value | Notes |
---|
event | 'checkoutOption' |
|
event_type | 'checkout' |
|
step | 3 or 4 | Value determined by the step number in 'Checkout Steps' data above. |
option | The option selected at this step | For example - 'pickup' at Step 3 or 'BPAY' at Step 4. |
Code Block |
---|
language | js |
---|
title | Sample Checkout Option data |
---|
collapse | true |
---|
|
{
"event": "checkoutOption",
"event_type": "checkout",
"ecommerce": {
"checkout_option": {
"actionField": {
"step": 4,
"option": "BPAY"
}
}
}
} |
f. Transactions
Product Transaction data is pushed on successful submission of an order.
Property | Value | Notes |
---|
event | 'enhancedEcomm' |
|
event type | 'payment' |
|
name | The product description | Repeated for each product in the transaction. |
id | The product code | Repeated for each product in the transaction. |
category | The product's primary category | Includes all levels of the category structure for the product's primary category. Repeated for each product in the transaction. |
price | The product price (nett price for 1) | Repeated for each product in the transaction. |
Code Block |
---|
language | js |
---|
title | Sample Transaction data |
---|
collapse | true |
---|
|
{
"event": "enhancedEcomm",
"event_type": "payment",
"ecommerce": {
"purchase": {
"actionField": {
"id": 100000000,
"revenue": 99.99,
"tax": 9.99,
"shipping": 10.00
}
},
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"price": "99.99"
}
]
}
} |
g. Login Success
Login Success data is pushed on any successful login.
- The 'event' always = "login"
- The 'widgetName' = that of the widget used to initiate the login
Code Block |
---|
language | js |
---|
title | Sample Login Success data |
---|
collapse | true |
---|
|
{
"event": "login",
"widgetName": "widget-name"
} |
h. Logout Success
Logout Success data is pushed on any successful logout.
- The 'event' always = "logout"
- The 'widgetName' = that of the widget used to initiate the logout
Code Block |
---|
language | js |
---|
title | Sample Logout Success data |
---|
collapse | true |
---|
|
{
"event": "logout",
"widgetName": "widget-name"
} |
Anchor |
---|
| ecomaddtocart |
---|
| ecomaddtocart |
---|
|
i. Add to Cart
Add To Cart data is pushed every time a user successfully adds a product to their cart.
Property | Value | Notes |
---|
event | 'addToCart' |
|
currencyCode | The currency code for the current account |
|
products | The product(s) added to the cart | Standard product data is included here (e.g. name, id, category, quantity, brand, price) |
pageType | One of the following: - Product List
- Search Results
- Product Details
| Value determined by the page on which the product was added. |
list* | One of the following: - Product List
- Search Results
- Product Compare
- Items Recently Viewed
- Campaign - (sent as the Campaign Description, not the Campaign Code)
- CrossSell - (Alternate products)
- UpSell - (Accessories / Related products)
- User Favourites
- Prior Purchases
- Product Details
- Cart Fast Order
- Quick Order Entry
| Value determined by the list from which the product was added *Note - Zoned Product Layout must be used in order for Enhanced eCommerce to work with lists. |
Code Block |
---|
language | js |
---|
title | Sample Add To Cart data |
---|
collapse | true |
---|
|
{
"event": "addToCart",
"ecommerce": {
"currencyCode": "AUD",
"add": {
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"quantity": 1,
"brand": "brand name",
"price": "99.99"
}
]
}
},
"pageType": "Product List",
"list": "Product List"
} |
Anchor |
---|
| ecomremovefromcart |
---|
| ecomremovefromcart |
---|
|
j. Remove from Cart
Remove From Cart data is pushed whenever a product is successfully removed from the user's cart.
NOTE - This can be a whole line deletion, or a decrease in quantity. Both actions are sent as 'Remove From Cart' data.
Property | Value | Notes |
---|
event | 'removeFromCart' |
|
currencyCode | The currency code for the current account |
|
products | The product(s) removed from cart | Standard product data is included here (e.g. name, id, category, quantity, price). |
Code Block |
---|
language | js |
---|
title | Sample Remove From Cart data |
---|
collapse | true |
---|
|
{
"event": "removeFromCart",
"ecommerce": {
"currencyCode": "AUD",
"remove": {
"products": [
{
"name": "Product Description",
"id": "ProductCode",
"category": "/first level/second level/third level",
"quantity": 1,
"price": "99.99"
}
]
}
}
} |
Anchor |
---|
| ecomcartupdate |
---|
| ecomcartupdate |
---|
|
k. Cart Updated
Cart Updates will push the relevant Add or Remove data when product quantities are changed:
- Quantity increase triggers an "addToCart" data push
- Quantity decrease triggers a "removeFromCart" data push
The following data is automatically pushed in relation to Promotion Codes:
- success adding a promo code ('validPromoCode')
- failure adding a promo code ('invalidPromoCode')
- removal of a promo code ('removedPromoCode')
The event type and the promotion code is the only data sent in these instances.
Code Block |
---|
language | js |
---|
title | Sample Valid Promo Code data |
---|
collapse | true |
---|
|
{
"event": "validPromoCode",
"promoCode": "XXXX"
} |
Code Block |
---|
language | js |
---|
title | Sample Invalid Promo Code data |
---|
collapse | true |
---|
|
{
"event": "invalidPromoCode",
"promoCode": "XXXX"
} |
Code Block |
---|
language | js |
---|
title | Sample Removed Promo Code data |
---|
collapse | true |
---|
|
{
"event": "removedPromoCode",
"promoCode": "XXXX"
} |
Anchor |
---|
| ecomvieworder |
---|
| ecomvieworder |
---|
|
m. View Order
View Order data is pushed when an order is viewed on the Order History / tracking page. The relevant sales order number is sent in this instance.
Code Block |
---|
language | js |
---|
title | Sample View Order data |
---|
collapse | true |
---|
|
{
"virtualURL": "/TrackOrder/ViewOrder/Order Number"
} |
Anchor |
---|
| ecomviewtemplate |
---|
| ecomviewtemplate |
---|
|
n. View Template
View Template data is pushed when a saved template is viewed on the Order Templates page. The template name is sent in this instance.
Code Block |
---|
language | js |
---|
title | Sample View Template data |
---|
collapse | true |
---|
|
{
"virtualURL": "/OrderTemplates/Template Name"
} |
3. Extending or Overriding pushed data
It is possible to push additional data or to override Commerce Vision's out-of-the-box inclusions. For assistance with this, please contact a Commerce Vision Consultant.
CV internal use:
- Determine the type of additional data required to push:
Include the new data by adding the field to the relevant JSON field group.
Data Type | Dictionary Table | JSON Field Group |
---|
User | Primary Table: Additional Tables: | SiteTrackerUserData(or SiteTrackerUserData_RoleNamefor role-specific changes) |
Product | Product | SiteTrackerProductData (or SiteTrackerProductData_RoleNamefor role-specific changes) |
Order | Primary Table: Additional Tables: - ProntoSalesOrderLine
- Product
| SiteTrackerOrderData(or SiteTrackerOrderData_RoleNamefor role-specific changes) |
Finally, construct the tracking code per the format below.
- First parameter is the data to manipulate (e.g. "userDetail" in sample code)
- Second parameter is the type of manipulation:
- The third parameter is the function that will perform the manipulation (e.g. "EmailAddress: data.EmailAddress" in sample code)
- The data is the raw data that can be used for manipulation