Skip to main content

Products report

The report provides an overview of the most in-demand products in your portfolio, for specific periods of time. It uses exchange rates valid on the day you generate it and can aggregate orders from the following sales channels: direct, Affiliate Network, Network Cross-Sales and Distribution Partners.

The report gathers data from finished orders, not taking into account refunds.

Two sorting options are available: Total products and Total amount.

  • Selecting Total products lists best-selling products, quantity-wise, while also displaying total per product information (the total amount generated by a single product through sales).
  • The Total amount option lists top-selling products organized according to revenue generated through sales (total per product values), with the quantity of sold items not reflected in the hierarchy, even though displayed.

Selecting All currencies causes all order currencies to be converted to the default currency configured for the account. The 2Checkout exchange rate from the day when the Products Report is generated will be used.

 

Use the Order type option to filter product sales based on the order type:

  • New acquisitions
  • Renewals (manual and automatic subscription renewals)
  • Upgrades
  • Trials (trial orders for which customers provided their credit card information)

 

Exported CSV reports include the following information.

Field name Description

Product name

The name of products sold in the selected report interval.

Products

Number of product units sold in the selected report interval, including new orders, trials, renewals and upgrades.

Total per product

The total costs incurred by shoppers per product.

Currency

Selected billing currency.

Upgrades

Number of upgrades sold in the selected report interval.

Total per upgrades

The total costs incurred by shoppers for upgrades.

Renewals

Number of renewals sold in the selected report interval.

Total per renewals

The total costs incurred by shoppers for renewals.

Trials

Number of trials accessed in the selected report interval.

Total per trials

The total costs incurred by shoppers for trials.

New orders

Number of new orders in the selected report interval.

Total per new orders

The total costs incurred by shoppers for new acquisitions.

Purchase flows

Overview

Shoppers place orders through 2Checkout by using an ordering/checkout interface. 2Checkout offers a collection of purchase flows/funnels, enabling you to control the complexity of the ordering process, from the first page in which customers land to the final stage of the purchase. Use specific query parameters to control the purchase flow in combination with Buy Links.

Availability

Available to all 2Checkout accounts.

Purchase Flows

Buy-link Description
https://secure.2checkout.com/order/checkout.php?CART=1
Checkout with cart functionalities 
Shoppers land on the billing page with the shopping cart functionalities enabled. All marketing tools are also available (cross-selling, etc.)
https://secure.2checkout.com/order/checkout.php?CART=1&CARD=2
One page checkout without review 
Shoppers get an all-in-one page experience: a shopping cart, a billing form, marketing tools, and the payment form (credit card and PayPal Express Checkout). They place orders without being directed to any other pages of the shopping cart.
https://secure.2checkout.com/order/checkout.php?CART=1&CARD=1
One page checkout with review 
Shoppers get an all-in-one page experience: a shopping cart, a billing form, marketing tools, and a credit card form. Plus a review page from which they can place orders. 
https://secure.2checkout.com/order/cart.php
Add to Shopping Cart 
Shoppers add the selected product(s) to the shopping cart where they can modify quantities, add additional services (Download Insurance Service) or select more products from the cross-selling options.
https://secure.2checkout.com/order/checkout.php
Checkout page 
Shoppers land on the billing page having the product options already added to their shopping cart. 
https://secure.2checkout.com/order/product.php
Product page 
Shoppers see all product details (descriptions, pricing options, etc) before proceeding to the ordering process. More than one product can be selected, resulting in a "one page" online shop.
https://secure.2checkout.com/order/download.php
Download trial 
Shoppers fill in the download form (based on your settings) before downloading the trial version of the selected product.
https://secure.2checkout.com/order/trial.php

Paid trial

Use this to offer trial subscriptions for products, either free or at an extra charge. After the trial period expiration, clients are automatically charged with the full value of the product, unless they choose to cancel. The "Checkout page" purchase flow is used.

CART and CARD parameters can also be used with trial links.

 

 

API Requests

Overview

Perform easy account management via API Requests. The 2Checkout API portfolio contains extended capabilities that can help you automate processes as: creating products or promotions, placing orders (both with catalog and dynamic product information), issuing refunds, retrieving the shipping price for an order, handling subscriptions and many others.

 

Lead management

Overview

2Checkout's lead management introduces a smart and easy way to reduce customer churn and gain useful insights into what drives customers to cancel automatic renewals. Use order recovery follow-up emails to reduce unfinished payment and cart abandonment rates with up to 20% by learning how to configure lead management campaigns. 

You can use lead management to:

  • run a report on unfinished payments
  • send abandoned shopping cart follow-up emails
  • request invoices

Lead management Control Panel

Custom reports

Overview

Custom reports help you extract account activity data through a series of predefined filters. You can use the default custom reports provided by 2Checkout or you can create your own.

You can use the following default custom reports:

  1. Currency breakdown. Top 5 currencies based on gross value across all your sales channels in the current month. Includes VAT, sales tax and refunds.
  2. Quarterly Revenue. Quarterly comparison of net income across all your sales channels in the last 12 months compared to the previous 12 months.
  3. Yearly Comparison. Weekly split of top customer languages based on the number of products sold in the current month, compared with the same period last year.
  4. Sales By Source (SRC) - this year. Weekly split of top 5 sales sources in the current month.
  5. Net Income from Renewals. Total net income from automatic and manual renewals in the current month.
  6. Monthly orders. Monthly comparison of the number of orders across all your sales channels for the last 12 months, compared to the previous 12 months.
  7. Sales by Region. Top 3 geographic regions based on net sales in the last 12 months. VAT and taxes not included.
  8. Sales by Channel - Last 12 Months. Monthly comparison of the top 5 sales channels based on net sales for the last 12 months compared to the previous 12 months. VAT and taxes not included.
  9. Products Sold - Last 12 Months. Monthly comparison of the top 5 products sold in the last 12 months compared to the previous 12 months.

To access the Custom Reports section go to Reports center -> Custom reports.

Creating a custom report

Follow the steps below to create your own custom report.

  1. Go to Reports center -> Custom reports and click New custom report. Enter a unique name to easily identify the new report.
  2. Select a Report type.
    • Gross Sales (includes VAT, shipping, commissions and sales tax)
    • Net Sales (does not include VAT and other tax, otherwise it's the same as Gross Sales)
    • Net Income (includes earnings generated from shipping but excludes discounts, taxes such as VAT, commissions, 2Checkout fees)
    • Number of Orders
    • Number of Products​​
  3. Define the advanced filters based on your needs
  4. Click Build report.
  5. Click Save report to save the new custom report to use it later. You can find it in the Custom reports section. The latest reports created are listed first and marked in blue in the Custom reports area, with the 2Checkout default custom reports displayed last and marked in red. Once you save a report, you have the option to delete it, modify it and save it as a new report, schedule it to run at predefined intervals and email the results to recipients of your choosing, or revert changes made without saving it as a new report.

Report settings

While editing custom reports you can configure multiple filters to aggregate data.

  1. Grouping (top 5 or less). You can group results by:
    • Products
    • Geographic regions
    • Countries
    • Sales channels
    • Order currencies
    • Customer languages
    • Sales sources
    • License types
    • Partners (if Channel Manager is active on your account)
    • Payment method​
  2. Display additional results - Builds the report displaying additional results in the Other column.
  3. Date. Custom reports are not generated in real time. These reports centralize data available starting with the day prior to the moment you generate the report. A report built on July 10, 2015 provides information starting with July 9, 2015, 11:59:59 PM (GMT+2:00) and stretching back to the mark you set via the date drop down menu.
  4. Compare to past. Compare your business performance in a given time interval with an interval of the same length, either immediately preceding it, or from the previous year.
  5. Divide period by. Depending on the selected time interval, you can divide it by:
    • Day (selected time interval is at least 1 day long)
    • Week (selected time interval is at least 2 weeks long)
    • Month (selected time interval is at least 2 months long)
    • Quarter (selected time interval is at least 2 quarters long)
    • Year (selected time interval is at least 2 years long).
  6. Aggregate reporting data for multiple accounts. Use the Accounts to include in report selector to specify which of the multiple accounts you own should the system extract data from when compiling the report. This option is only visible if you use multiple accounts.

Advanced filters

Product filters

Select products, both Active and Disabled, and extra delivery services such as DIS (Download Insurance) to include in the report.

Order and License filters

Custom reports can centralize data for completed and refunded orders. Refunded orders count as positive for custom reports. If you check the Refunded orders box, the report calculates the total revenue, and subtracts the refunds. When an order is refunded, 2Checkout generates a new order with a negative value (reflecting the amount of the refund). The total number of orders is the sum of initial and refunded orders.

Sales source (SRC). Select the sales sources to be included in the report. This filter only applies for less than 2000 available sales sources. If you have more than 2000 sources, all of them will be selected by default.

The report can include the following subscription types:

  • New licenses (mobile and web)
  • Renewals (automatic and manual, based on the Orders Origin filter)
  • Upgrades
  • Trials
  • New licenses from trials (trial upgrades)

Localization filters

Filter the data included in the report based on:

  • Geographic regions
  • Countries
  • Order language

Use the Show only the transactions converting to filter to build the report only with the transactions converting to the specified settlement currency.

Currency conversion rates

For each settlement currency, only the amounts settled in that currency are included. If your account only has one settlement currency, the report will convert all transactions from other billing currencies to that settlement currency.

Note: If your account has EUR and USD as settlement currencies and uses EUR as default, selecting EUR as the settlement currency to display amounts will include orders settled in EUR and all other currencies, with the exception of USD. When selecting USD, the report only shows the orders settled in USD.

Sales channel filters

Filter the report data sales channel:

  • eStore
  • Affiliates Network
  • Network cross-selling (displayed only if the module is active)
  • Partners (specific partners can be selected) (displayed only if channel manager is active)

You can select specific affiliates only if you have less than 100 active affiliates. If the number of affiliates you're working with exceeds 100 they will all be select by default.

Scheduling reports

You can schedule all custom reports to be performed automatically by 2Checkout system according to the privileges of the user configuring them. Once defined, the system will send out emails daily, weekly, monthly or quarterly including the report in PDF and/or CSV format.

You can set the recipients' email address, name the scheduled report, enter a description, set the schedule, and select specific reports that you want delivered.

eCommerce events

Overview

This article lists all eCommerce events supported by the ConvertPlus shopping cart.

The ConvertPlus cart caters to the following Web Metrics solutions:

  • Google Universal Analytics
  • Google Tag Manager (with Universal Analytics) 
  • Adobe Dynamic Tag Manager
  • Google Analytics 4 
  • Google Tag Manager (with GA4) 

Each solution handles enhanced events triggered by the ConvertPlus Cart differently. Due to the fact that each Web Metrics solution prefers its data arranged in a particular way, we'll document each web solution separately, alongside a distinct section for the custom cartUpdated event.

The parameters below are used to track eCommerce events triggered by the ConvertPlus and InLine carts.

Availability

Merchant tracking is available for all 2Checkout accounts.

eCommerce events grouped by Web Metric

Google Universal Analytics

The Google Universal Analytics DataLayer differs from Google Tag Manager and Adobe's Dynamic Tag Manager in that it is an array of arrays. Each event pushed in the DataLayer is an array with various indexes, based on the type of the triggered event:

  • The first element of the array determines the type of payload added to the DataLayer (it can either be event or config).
  • The second element of the array determines the sub-type of the first element.
  • The third element is an object with the actual data/payload.
Event Triggered by Notes Example

begin_checkout

LOAD_CART (load-cart)
  • the item’s price is the item’s net discounted price, taken from the item’s key named itemNetDiscountedPrice

  • the item’s price should not be calculated with the item’s quantity

  • the item’s coupon key is only present if a coupon is applied

  • the order’s coupon key is only present if an order coupon is applied

[
  "event",
  "begin_checkout",
  {
    "currency": "USD",
    "coupon"  : "promotion-code",
    "items"   : [
      {
        "category": "REGULAR",
        "id"      : 4591180,
        "name"    : "Antivirus 2016",
        "price"   : 50,
        "quantity": 1,
        "coupon"  : "coupon_code",
        "group"   : "General",
        "tax"     : 20.5
      }
    ],
    "value"   : "177.89"
  }
]
purchase PLACE_ORDER (place-order:success)
  • the transaction_id is the order’s refNo hashed using sha256
  • the value is the order’s grossDiscounted price and it should reflect the total amount the shopper has to pay

  • the item’s price is the item’s net discounted price

  • the item’s coupon key is only present if a coupon is applied

  • the order’s coupon key is only present if an order coupon is applied

[
  "event",
  "purchase",
  {
    "transaction_id": "11741538",
    "value"         : 84.03,
    "tax"           : 15.97,
    "shipping"      : 11.02,
    "currency"      : "USD",
    "coupon"  : "promotion-code",
    "items"         : [
      {
        "category": "REGULAR",
        "id"      : 4591180,
        "name"    : "Antivirus 2016",
        "price"   : 84.03,
        "quantity": 1,
        "coupon"  : "coupon_code",
        "group"   : "General",
        "tax"     : 20.5
      }
    ]
  }
]

remove_from_cart

DELETE_ITEM (delete-item)
  • the item’s coupon key is only present if a coupon is applied

  • the value is the order’s net discounted price

  • the item’s price is the item’s net discounted price, not taking quantity into account the

  • the order’s coupon key is only present if an order coupon is applied

[
  "event",
  "remove_from_cart",
  {
    "items": [
      {
        "category": "REGULAR",
        "id"      : 4591180,
        "name"    : "Antivirus 2016",
        "price"   : 84.03,
        "quantity": 1,
        "coupon"  : "coupon_code",
        "group"   : "General",
        "tax"     : 20.5
      }
    ],
    "coupon"  : "promotion-code",
    "value": 84.03
  }
]

page_redirect

LOAD_PAGE (load-page) Is only triggered if the cart is redirected to the retry page
[
  "event",
  "page_redirect",
  {
    "event_label"    : "Retry",
    "event_category" : "2checkout_non_interaction_event",
    "non_interaction": true
  }
]

Google Analytics 4

The Google Analytics 4 DataLayer differs from Google Tag Manager and Adobe's Dynamic Tag Manager in that it is an array of arrays. Each event pushed in the DataLayer is an array with various indexes, based on the type of the triggered event: 

  • The first element of the array determines the type of payload added to the DataLayer (it can either be event or config). 

  • The second element of the array determines the sub-type of the first element. 

  • The third element is an object with the actual data/payload.

Event

Triggered by 

Notes 

Example 

begin_checkout 

LOAD_CART (load-cart) 

  • the item’s price is the item’s net discounted price, taken from the item’s key named itemNetDiscountedPrice 

  • the item’s price should not be calculated with the item’s quantity 

  • the item’s coupon key is only present if a coupon is applied 

  • the order’s coupon key is only present if an order coupon is applied 

[ 
  "event", 
  "begin_checkout", 
  { 
    "currency": "USD", 

    "value"   : "177.89", 
    "coupon"  : "promotion-code", 
    "items"   : [ 
      { 
        "category" : "REGULAR", 
        "item_id"  : 4591180, 
        "item_name": "Antivirus 2016", 
        "price"    : 50, 
        "quantity" : 1, 
        "coupon"   : "coupon_code", 
        "group"    : "General", 
        "tax"      : 20.5 
      } 
    ] 
  } 
] 

purchase

PLACE_ORDER (place-order:success) 

  • the transaction_id is the order’s refNo hashed using sha256 

  • the value is the order’s grossDiscounted price and it should reflect the total amount the shopper has to pay 

  • the item’s price is the item’s net discounted price 

  • the item’s coupon key is only present if a coupon is applied 

  • the order’s coupon key is only present if an order coupon is applied 

[ 
  "event", 
  "purchase", 
  { 
    "transaction_id": "11741538", 
    "value"         : 84.03, 
    "tax"           : 15.97, 
    "shipping"      : 11.02, 
    "currency"      : "USD", 
    "coupon"  : "promotion-code", 
    "items"         : [ 
      { 
        "item_category": "REGULAR", 
        "item_id"      : 4591180, 
        "item_name"    : "Antivirus 2016", 
        "price"        : 84.03, 
        "quantity"     : 1, 
        "coupon"       : "coupon_code", 
        "group"        : "General", 
        "tax"          : 20.5 
      } 
    ] 
  } 
] 

 

remove_from_cart

DELETE_ITEM (delete-item) 

  • the item’s coupon key is only present if a coupon is applied 

  • the value is the order’s net discounted price 

  • the item’s price is the item’s net discounted price, not taking quantity into account the 

  • the order’s coupon key is only present if an order coupon is applied 

[ 
  "event", 
  "remove_from_cart", 
  { 
    "items": [ 
      { 
        "item_category": "REGULAR", 
        "item_id"      : 4591180, 
        "item_name"    : "Antivirus 2016", 
        "price"        : 84.03, 
        "quantity"     : 1, 
        "coupon"       : "coupon_code", 
        "group"        : "General", 
        "tax"          : 20.5 
      } 
    ], 
    "currency": "USD", 
    "coupon"  : "promotion-code", 
    "value"   : 84.03 
  } 
] 



 

page_redirect

LOAD_PAGE (load-page) 

Is only triggered if the cart is redirected to the retry page 

[ 
  "event", 
  "page_redirect", 
  { 
    "event_label"    : "Retry", 
    "event_category" : "2checkout_non_interaction_event", 
    "non_interaction": true 
  } 
] 

add_to_cart

 

ADD_ITEM (add-item) 

  • the item’s coupon key is only present if there is an active product coupon code (coupon / auto-apply) 

  • the item’s price is the item’s net discounted price 

  • the item's format key for the  cross-sell product:  

  • “cross_sell” for products displayed in a listing, as recommended products; 

  •  “auto_cross_sell” for cross-sell products auto added in the cart; 

  •  “main” for products which are not cross sell. 

[ 
    'event', 
    'add_to_cart', 
    { 
        'items': [ 
            { 
                'item_category': 'REGULAR', 
                'item_id': 4591180, 
                'item_name': 'Antivirus 2016', 
                'price': 84.03, 
                'quantity': 1, 
                'group': 'General', 
                'tax': 20.5, 
                'format': 'cross_sell' 
            } 
        ], 
        'currency': 'USD', 
        'value': 84.03 
    } 
] 

view_item_list 

 

LOAD_CROSS_SELL (load-cross-sell) 

  • the item’s price is the item’s net discounted price 

  • the item's index key is the position of the product in the the cross-sell listing 

[ 
    'event', 
    'view_item_list', 
    { 
        'currency': 'USD', 
        'item_list_id': 'cross-sell products', 
        'item_list_name': 'cross-sell products', 
        'items': [ 
            { 
                'item_name': 'Antivirus 2018', 
                'item_id': 7628300, 
                'price': '27.9', 
                'discount': '3.10', 
                'type': 'Physical', 
                'group': 'General', 
                'format': 'cross_sell', 
                'index': 0 
            }, 
            { 
                'item_name': 'Antivirus 2020', 
                'item_id': 7635736, 
                'price': '55.88', 
                'discount': '13.96', 
                'type': 'Electronic', 
                'group': 'General', 
                'format': 'cross_sell', 
                'hiddenAdditionalFields': [ 
                    { 'Additional hiddenfield': '' } 
                ], 
                'index': 1 
            } 
        ] 
    } 
] 

 

Google Tag Manager with Universal Analytics

For the Google Tag Manager with Universal Analytics, the DataLayer is an array of objects. The object payload passed to the DataLayer is mainly made up of two keys: event & eCommerce.

The event key determines the type of event passed to the Datalayer, while the eCommerce key holds the eCommerce object with all the relevant event data.

Both Google Tag Manager and Adobe’s Dynamic Tag Manager follow the same advanced eCommerce layout and they also have the ability to support Custom Events (cartUpdated).

Event Triggered by Notes Example

checkout

  • LOAD_CART (load-cart)

  • SET_ECOMMERCE (set-ecommerce)

  • the actionField’s stepkey will always be 1 as the checkout page is the first action field

  • the product’s price key is the item’s net discounted price

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the actionField’s coupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

{
   "event":"checkout",
   "ecommerce":{
      "currencyCode":"USD",
      "checkout":{
         "actionField":{
            "step":1,
            "coupon": "promotion-code",
            "orderDiscountCoupon": "promotion-coupon"
         },
         "products":[
            {
               "name":"Panda_Antivirus",
               "id":7628801,
               "price":"200",
               "quantity":2,
               "type":"Electronic",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
              "group": "General",
              "tax": 20.5
            },
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"100",
               "quantity":1,
               "type":"Electronic",
               "group": "General",
               "tax": 20.5
            }
         ]
      }
   }
}

purchase

PLACE_ORDER (place-order:success)
  • the actionField’s id key is the order’s refNo hashed with sha256

  • the actionField’s revenue key is the order’s gross discounted price

  • the actionField’s purchaseFlow key references if purchase flow selected by the customer (personal/company)

  • the actionField’s affiliation key is only present if the order has an affiliate

  • the actionField’s coupon key is only present if there is an order level coupon (which ConvertPlus doesn’t support atm of this writing)

  • the actionField’s returnType & returnUrl are only present if the order has a returnType or returnUrl

  • the actionField’s subscription key is present only if the order has a subscription product and it represents the unique system-generated identifier of the subscription.

  • the actionField’s coupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

{
   "event":"purchase",
   "ecommerce":{
      "purchase":{
         "currencyCode":"USD",
         "actionField":{
            "id":"11544394",
            "affiliation":"",
            "revenue":"168.06",
            "tax":"31.94",
            "shipping":"0",
            "purchaseFlow":"personal",
            "returnUrl":"",
            "returnType":"",
            "coupon":"",
            "subscription":"",
            "coupon": "promotion-code",
            "orderDiscountCoupon": "promotion-coupon"
         },
         "products":[
            {
               "name":"Panda_Antivirus",
               "id":7628801,
               "price":"84.03",
               "quantity":1,
               "type":"Electronic",
               "coupon":"coupon_code",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
               "group": "General",
               "tax": 20.5
            },
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"84.03",
               "quantity":1,
               "type":"Electronic",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"dynamicRenewalPrice"
            }
         ]
      }
   }
}

removeFromCart

DELETE_ITEM (delete-item)
  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the remove’s coupon key is only present if there is a valid order promotion present

  • the remove’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the remove’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion

{
   "event":"removeFromCart",
   "ecommerce":{
      "currencyCode":"USD",
      "remove":{
         "coupon": "promotion-code",
         "orderDiscountCoupon": "promotion-coupon"
         "products":[
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"100",
               "quantity":1,
               "type":"Electronic",
               "coupon":"coupon_code",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"",
               "dynamicRenewalPrice":"",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ]
            }
         ]
      }
   }
}

addToCart

ADD_ITEM (add-item)
  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

{
   "event":"addToCart",
   "currencyCode":"USD",
   "ecommerce":{
      "add":{
         "products":[
            {
               "name":"Antivirus 2018 - physical product",
               "id":7605582,
               "price":"127.89",
               "quantity":1,
               "type":"Physical",
               "coupon":"coupon_code",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"",
               "dynamicRenewalPrice":"",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ]
            }
         ]
      }
   }
}

Google Tag Manager with GA4 

Google tag manager GA4 respects the Google analytics 4 structure. The DataLayer is an array of objects. The object payload passed to the DataLayer is mainly composed of two keys: event & ecommerce. 

The event key determines the type of event passed to the Datalayer, while the eCommerce key holds the eCommerce object with all the relevant event data.

Event 

Triggered by 

Notes 

Example 

begin_checkout 

LOAD_CART (load-cart) 

SET_ECOMMERCE (set-ecommerce) 

  • the actionField’s stepkey will always be 1 as the checkout page is the first action field 

  • the item’s price key is the item’s net discounted price 

  • the item’s hiddenAdditionalFields key is only present if the product has hidden additional fields 

  • the item’s option key is only present if the product has active options 

  • the actionField’s coupon key is only present if there is a valid order promotion present 

  • the actionField’s orderDiscountCoupon key is only present if there is a valid order promotion present 

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

{ 
    'event': 'begin_checkout', 
    'ecommerce': { 
        'currency': 'USD', 
        'value': "300", 
        'coupon': 'promotion-code', 
        'actionField': { 
            'step': 1, 
            'orderDiscountCoupon': 'promotion-coupon' 
        }, 
        'items': [ 
            { 
                'item_name': 'Panda_Antivirus', 
                'item_id': 7628801, 
                'price': '200', 
                'quantity': 2, 
                'type': 'Electronic', 
                'options': 'USERS=users_one_test;PERIOD=period_one', 
                'hiddenAdditionalFields': [ 
                    { 
                        'product_hidden_text_name': 'hidden_text_value' 
                    } 
                ], 
                'group': 'General', 
                'tax': 20.5 
            }, 
            { 
                'item_name': 'Turbo_Panda_Antivirus', 
                'item_id': 7630067, 
                'price': '100', 
                'quantity': 1, 
                'type': 'Electronic', 
                'group': 'General', 
                'tax': 20.5 
            } 
        ] 
    } 
} 

purchase 

PLACE_ORDER (place-order:success) 

  • the transaction_id key is the order’s refNo hashed with sha256 

  • the value key is the order’s gross discounted price 

  • the actionField’s purchaseFlow key references if purchase flow selected by the customer (personal/company) 

  • the actionField’s affiliation key is only present if the order has an affiliate 

  • the coupon key is only present if there is an order level coupon  

  • the actionField’s returnType & returnUrl are only present if the order has a returnType or returnUrl 

  • the actionField’s subscription key is present only if the order has a subscription product and it represents the unique system-generated identifier of the subscription. 

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon 

  • the item’s coupon key is only present if there is an active product coupon code (coupon / auto-apply) 

  • the item’s price is the item’s net discounted price 

  • the item’s isDynamic key is only present if the product is dynamic 

  • the item’s dynamicType key is only present if the product is dynamic 

  • the item’s recurrence key is only present if the product is dynamic 

  • the item’s hiddenAdditionalFields key is only present if the product has hidden additional fields 

  • the item’s option key is only present if the product has active options 

{ 
    'event': 'purchase', 
    'ecommerce': { 
        'coupon': 'promotion-code', 
        'currency': 'USD', 
        'value': '168.06', 
        'shipping': '0', 
        'tax': '31.94', 
        'transaction_id': '8c7be1b402d775f256289410d608e47135f4c431d8064005fcbbc8b65ffeaaa5', 
        'actionField': { 
            'affiliation': '', 
            'purchaseFlow': 'personal', 
            'returnUrl': '', 
            'returnType': '', 
            'subscription': '', 
            'orderDiscountCoupon': 'promotion-coupon' 
        }, 
        'items': [ 
            { 
                'item_name': 'Panda_Antivirus', 
                'item_id': 7628801, 
                'price': '84.03', 
                'quantity': 1, 
                'type': 'Electronic', 
                'coupon': 'coupon_code', 
                'options': 'USERS=users_one_test;PERIOD=period_one', 
                'hiddenAdditionalFields': [ 
                    { 
                        'product_hidden_text_name': 'hidden_text_value' 
                    } 
                ], 
                'group': 'General', 
                'tax': 20.5 
            }, 
            { 
                'item_name': 'Turbo_Panda_Antivirus', 
                'item_id': 7630067, 
                'price': '84.03', 
                'quantity': 1, 
                'type': 'Electronic', 
                'isDynamic': true, 
                'dynamicType': '', 
                'dynamicRecurrence': '', 
                'dynamicDuration': 'dynamicRenewalPrice' 
            } 
        ] 
    } 
} 

remove_from_cart 

DELETE_ITEM (delete-item) 

  • the coupon key is only present if there is an active product coupon code (coupon / auto-apply) 

  • the item’s price is the item’s net discounted price 

  • the item’s isDynamic key is only present if the product is dynamic 

  • the item’s dynamicType key is only present if the product is dynamic 

  • the item’s recurrence key is only present if the product is dynamic 

  • the item’s hiddenAdditionalFields key is only present if the product has hidden additional fields 

  • the item’s option key is only present if the product has active options 

  • the item’s coupon key is only present if there is a valid order promotion present 

  • the  orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion

{ 
    'event': 'remove_from_cart', 
    'ecommerce': { 
        'currency': 'USD', 
        'value': '100', 
        'coupon': 'promotion-code', 
        'orderDiscountCoupon': 'promotion-coupon', 
        'items': [ 
            { 
                'item_name': 'Turbo_Panda_Antivirus', 
                'item_id': 7630067, 
                'price': '100', 
                'quantity': 1, 
                'type': 'Electronic', 
                'coupon': 'coupon_code', 
                'isDynamic': true, 
                'dynamicType': '', 
                'dynamicRecurrence': '', 
                'dynamicDuration': '', 
                'dynamicRenewalPrice': '', 
                'options': 'USERS=users_one_test;PERIOD=period_one', 
                'hiddenAdditionalFields': [ 
                    { 
                        'product_hidden_text_name': 'hidden_text_value' 
                    } 
                ] 
            } 
        ] 
    } 
} 

add_to_cart 

ADD_ITEM (add-item) 

  • the item’s coupon key is only present if there is an active product coupon code (coupon / auto-apply) 

  • the item’s price is the item’s net discounted price 

  • the item’s isDynamic key is only present if the product is dynamic 

  • the item’s dynamicType key is only present if the product is dynamic 

  • the item’s recurrence key is only present if the product is dynamic 

  • the item’s hiddenAdditionalFields key is only present if the product has hidden additional fields 

  • the item’s option key is only present if the product has active options 

{ 
    'event': 'add_to_cart', 
    'ecommerce': { 
        'currency': 'USD', 
        'value': '127.89', 
        'items': [ 
            { 
                'item_name': 'Antivirus 2018 - physical product', 
                'item_id': 7605582, 
                'price': '127.89', 
                'quantity': 1, 
                'type': 'Physical', 
                'coupon': 'coupon_code', 
                'isDynamic': true, 
                'dynamicType': '', 
                'dynamicRecurrence': '', 
                'dynamicDuration': '', 
                'dynamicRenewalPrice': '', 
                'options': 'USERS=users_one_test;PERIOD=period_one', 
                'hiddenAdditionalFields': [ 
                    { 
                        'product_hidden_text_name': 'hidden_text_value' 
                    } 
                ] 
            } 
        ] 
    } 
} 

add_to_cart 

 

LOAD_CROSS_SELL (load-cross-sell) 

  • the item’s price is the net discounted price 

  • the item's index key is the position of the product in the the cross-sell listing 

{ 
    'event': 'view_item_list', 
    'ecommerce': { 
        'currency': 'USD', 
        'item_list_id': 'cross-sell products', 
        'item_list_name': 'cross-sell products', 
        'items': [ 
            { 
                'item_name': 'Printer 2', 
                'item_id': 31002340, 
                'price': '20', 
                'discount': '0', 
                'type': 'Physical', 
                'group': null, 
                'tax': 0, 
                'format': 'cross_sell', 
                'index': 0 
            }, 
            { 
                'item_name': 'Demo 1', 
                'item_id': 31016005, 
                'price': '12.12', 
                'discount': '0', 
                'type': 'Electronic', 
                'group': null, 
                'tax': 0, 
                'format': 'cross_sell', 
                'index': 1 
            } 
        ] 
    } 
} 

Adobe's Dynamic Tag Manager

Event Triggered by Notes Example
checkout
  • LOAD_CART (load-cart)

  • SET_ECOMMERCE (set-ecommerce)

  • the actionField’s stepkey will always be 1 as the checkout page is the first action field

  • the actionField’s coupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

  • the item’s price key is the item’s net discounted price

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the product’s externalRef key is only present if the product has an external reference

{
   "event":"checkout",
   "ecommerce":{
      "currencyCode":"USD",
      "checkout":{
         "actionField":{
            "step":1,
            "coupon": "promotion-code",
            "orderDiscountCoupon": "promotion-coupon"
         },
         "products":[
            {
               "name":"Panda_Antivirus",
               "id":7628801,
               "price":"200",
               "quantity":2,
               "type":"Electronic",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
               "externalRef": "",
               "group": "General",
               "tax": 20.5
            },
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"100",
               "quantity":1,
               "type":"Electronic",
               "group": "General",
               "tax": 20.5
            }
         ]
      }
   }
}


purchase

PLACE_ORDER (place-order:success)
  • the actionField’s id key is the order’s refNo hashed with sha256

  • the actionField’s revenue key is the order’s gross discounted price

  • the actionField’s purchaseFlow key references if purchase flow selected by the customer (personal/company)

  • the actionField’s affiliation key is only present if the order has an affiliate

  • the actionField’s coupon key is only present if there is an order level coupon (which ConvertPlus doesn’t support atm of this writing)

  • the actionField’s returnType & returnUrl are only present if the order has a returnType or returnUrl

  • the actionField’s subscription key is present only if the order has a subscription product and it represents the unique system-generated identifier of the subscription.

  • the actionField’s coupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the actionField’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the product’s externalRef key is only present if the product has an external reference

{
   "event":"purchase",
   "ecommerce":{
      "purchase":{
         "currencyCode":"USD",
         "actionField":{
            "id":"11544394",
            "affiliation":"",
            "revenue":"168.06",
            "tax":"31.94",
            "shipping":"0",
            "purchaseFlow":"personal",
            "returnUrl":"",
            "returnType":"",
            "coupon":"",
            "subscription":"",
            "coupon": "promotion-code",
            "orderDiscountCoupon": "promotion-coupon"
         },
         "products":[
            {
               "name":"Panda_Antivirus",
               "id":7628801,
               "price":"84.03",
               "quantity":1,
               "type":"Electronic",
               "coupon":"coupon_code",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
               "externalRef": "",
               "group": "General",
               "tax": 20.5
            },
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"84.03",
               "quantity":1,
               "type":"Electronic",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"dynamicRenewalPrice",
               "externalRef": "",
               "group": "General",
               "tax": 20.5
            }
         ]
      }
   }
}

removeFromCart

DELETE_ITEM (delete-item)
  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the product’s externalRef key is only present if the product has an external reference

  • the remove’s coupon key is only present if there is a valid order promotion present

  • the remove’s orderDiscountCoupon key is only present if there is a valid order promotion present

  • the remove’s orderDiscountCoupon default’s to ‘auto-apply' if the promotion doesn’t have a promotion coupon

{
   "event":"removeFromCart",
   "ecommerce":{
      "currencyCode":"USD",
      "remove":{
         "coupon": "promotion-code",
         "orderDiscountCoupon": "promotion-coupon"
         "products":[
            {
               "name":"Turbo_Panda_Antivirus",
               "id":7630067,
               "price":"100",
               "quantity":1,
               "type":"Electronic",
               "coupon":"coupon_code",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"",
               "dynamicRenewalPrice":"",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
               "externalRef": ""
            }
         ]
      }
   }
}

addToCart

ADD_ITEM (add-item)
  • the product’s coupon key is only present if there is an active product coupon code (coupon / auto-apply)

  • the product’s price is the item’s net discounted price

  • the product’s isDynamic key is only present if the product is dynamic

  • the product’s dynamicType key is only present if the product is dynamic

  • the product’s recurrence key is only present if the product is dynamic

  • the product’s hiddenAdditionalFields key is only present if the product has hidden additional fields

  • the product’s option key is only present if the product has active options

  • the product’s externalRef key is only present if the product has an external reference

{
   "event":"addToCart",
   "currencyCode":"USD",
   "ecommerce":{
      "add":{
         "products":[
            {
               "name":"Antivirus 2018 - physical product",
               "id":7605582,
               "price":"127.89",
               "quantity":1,
               "type":"Physical",
               "coupon":"coupon_code",
               "isDynamic":true,
               "dynamicType":"",
               "dynamicRecurrence":"",
               "dynamicDuration":"",
               "dynamicRenewalPrice":"",
               "options":"USERS=users_one_test;PERIOD=period_one",
               "hiddenAdditionalFields":[
                  {
                     "product_hidden_text_name":"hidden_text_value"
                  }
               ],
               "externalRef": ""
            }
         ]
      }
   }
}

Custom events (cartUpdated)

Some Web Metric solutions allow the use of custom events. Currently, these solutions are Adobe’s Dynamic Tag Manager and Google Tag Manager.

Custom events allow us to pass any values under any keys we see fit, as long as we provide an acceptable and consistent format.

The format of a custom event is as follows:

{
  "event": "cartUpdated",
  "CUSTOM_KEY_1": "custom_value_1",
  "CUSTOM_KEY_2": "custom_value_2",
  ...
}

The event key will always be populated with the cartUpdated value as this is the name of our custom event. Alongside the event key, you can find any number of custom keys, like their number, names, and values vary and depend on the action that the user performed in the cart.

The Convert Plus shopping cart implements an event buffer.

When a shopper performs an action in the cart, the cart triggers a lot of internal events that in turn trigger other events which may lead to the cart being overloaded when booting for changing its state.

To prevent the DataLayer from being spammed by unnecessary small updates, the event buffer was designed to do just that, buffer events. Catch all events in a designated time (1 s at the moment of this writing), keeping only their newest value, and release them in bigger chunks.

The custom keys used by the cartUpdated event are as follow:

Event Triggered by Values Notes Example

PAGE_NAME

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page)

  • PLACE_ORDER (place-order:success)

  • checkout

  • finish

  • retry

 
{
  "PAGE_NAME": "finish"
}

PAGE_THEME

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • 2CO-MARKETPLACE-default

  • BITWIG-one-column

  • COMODOJC-default

  • default

  • inline

  • inline-one-step

  • MOVAVI-inline

  • one-column

  • SITEL-inline

  • VisitTCI-inline

The loaded theme’s name.
{
  "PAGE_THEME": "default"
}

merchant_CODE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  The 2CheckOut code form GAP.
{
  "merchant_CODE": "RDGM"
}

ONESTEPCART

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

Boolean
  • is only triggered by these two cart events and the value is hard coded to true

  • true if the flow has no review page, false if the flow has a review page

  • currently review page is not available in ConvertPlus

{
  "ONESTEPCART": true
}

SHORT_FORM

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

Boolean
  • is only triggered by these two cart events and the value is hard coded to true

  • returns true if short form is applied and false if it is not applied

  • currently only short form in ConvertPlus

{
  "SHORT_FORM": true
}

PURCHASE_COMPLETE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • PLACE_ORDER (place-order:success)

Boolean
  • when triggered from LOAD_CART or LOAD_PAGE is set to true if the page name is not finish

  • when triggered from PLACE_ORDER is hard coded to true

{
  "PURCHASE_COMPLETE": true
}

TEMPLATE_CREATION_DATE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • Null
  • Date
  • returns the date when the merchant created the customized template and started using it

  • returns null if no customization took place

{
  "TEMPLATE_CREATION_DATE": "20-04-2020"
}

TEMPLATE_LAST_MODIFIED_DATE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • Null
  • Date
  • the date when the customized template was last modified by the merchant

  • returns null if no customization took place

{
  "TEMPLATE_LAST_MODIFIED_DATE": "20-04-2020"
}

PAGE_STYLE_NAME

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

The name of the customized theme.
  • returns the name of the customized template from the merchant's Control Panel

  • returns null if no customization took place

{
  "PAGE_STYLE_NAME": "My Custom ConvertPlus default"
}

PROFESSIONAL_SERVICES

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

Boolean Determined by whether the template has been customized by professional services.
{
  "PROFESSIONAL_SERVICES": false
}

TEST_ORDER

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

Boolean Is true if the loaded cart is in test mode.
{
  "TEST_ORDER": false
}

PRODUCT_SOURCE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • Catalog
  • Dynamic
Determined by the products in the cart.
{
  "PRODUCT_SOURCE": "Catalog"
}

CART_LOCK

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

Boolean Is set to true if the cart is locked.
{
  "CART_LOCK": false
}

DISCOUNT_COUPON

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_COUPON (apply-coupon)

Coupon code
  • is only present if one or more products have discounts applied

  • only takes into account product level coupons

{
  "DISCOUNT_COUPON": "50_OFF"
}

DISCOUNT_COUPON_STATUS

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_COUPON_STATUS (set-coupon-status)

  • Unavailable: when the order doesn’t allow promotions and items don’t have discounts applied

  • Available: when the order allows promotions and items don’t have discounts applied

  • Applied: when the order allows promotions and items have discounts applied

  • on LOAD_CART & LOAD_PAGE the status is computed based on the order.allowsPromotion & if items have discounts applied

  • When set via UPDATE_COUPON_STATUS the computed status is received as a string

{
  "DISCOUNT_COUPON_STATUS": "Appplied"
}

COMPANY_NAME

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changes: the new one is different form the previous one)

  • UPDATE_COMPANY_NAME (change:companyName)

Company name. The company name entered by the user while the company flow is selected.
{
  "COMPANY_NAME": "Acme corp inc."
}

ORDER_EXT_REF

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

String The external reference set by the merchant.
{
  "ORDER_EXT_REF": "MERCHANT_EXTERNAL_REFERENCE"
}

CUSTOMER_EXT_REF

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

String The external customer reference set by the merchant.
{
  "CUSTOMER_EXT_REF": "CUSTOMER_EXTERNAL_REFERENCE"
}

AUTO_RENEWAL

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_RENEWAL_STATUS (set-renewal-status)

  • Unavailable: if the recurring option is not enabled or unavailable and the order’s status is not enabled

  • Invisible Applied: if the recurring option is enabled (invisible applied) and the order’s status is enabled

  • Available: if the recurring option is enabled (opt-in or opt-out) and the order’s status is not enabled

  • Visible Applied: if the recurring option is enabled (opt-in or opt-out) and the order’s status is enabled

The status is computed based on the visibility of the recurring button (Recurring option in GAP account settings) & the actual recurring status of the order.
{
  "AUTO_RENEWAL": "Available"
}

PURCHASE_TYPE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different fr0m the previous one)

  • Regular: if the cart doesn’t contain subscription products

  • Renewal: if the cart contains subscription products

  • determined by the products the cart was loaded with

  • the type of the purchase, regular for new acquisition or renewal

{
  "PURCHASE_TYPE": "Regular"
}

ADDITIONAL_HIDDEN_FIELDS

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

The value of the additional hidden field may be null if it has no value. Array of hidden additional fields.
{
  "ADDITIONAL_HIDDEN_FIELDS": [
    {
      "order_hidden_field_name": "hidden additional field value"      
    }
  ]
}

BILLING_COUNTRY

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_COUNTRY (change:country)

The country code.
  • the same value as VISITOR_COUNTRY

  • on LOAD_CART & LOAD_PAGE the order country is used

  • on UPDATE_COUNTRY the country code is sent directly from the cart’s context

  • the country code can be empty if no country is selected

{
  "BILLING_COUNTRY": "RO"
}

VISITOR_COUNTRY

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_COUNTRY (change:country)

The country code.
  • the same value as BILLING_COUNTRY

  • on LOAD_CART & LOAD_PAGE the order country is used

  • on UPDATE_COUNTRY the country code is sent directly from the cart’s context

  • the country code can be empty if no country is selected

{
  "VISITOR_COUNTRY": "RO"
}

BILLING_CURRENCY

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_CURRENCY (change:currency)

The currency code.
  • on LOAD_CART & LOAD_PAGE the order’s currency is used

  • on UPDATE_COUNTRY the currency code is sent directly from the cart’s context

{
  "BILLING_CURRENCY": "RON"
}

LANGUAGE

  • LOAD_CART (load-cart)

  • LOAD_PAGE (load-page) (only if the key’s value is changed: the new one is different from the previous one)

  • UPDATE_LANGUAGE (change:language)

  • PLACE_ORDER (place-order:success)

The language code.
  • on LOAD_CART, LOAD_PAGE & PLACE_ORDER the order’s language is used

  • on UPDATE_LANGUAGE the language code is sent directly from the cart’s context

{
  "LANGUAGE": "EN"
}

FORM_ERROR

SET_ERRORS (set-errors) Form field names separated by | The form field where an error occurred in the cart.
{
  "FORM_ERROR": "email|country|card|date|cvv|name"
}

PAYMENT_METHOD

UPDATE_PAYMENT_METHOD (change:paymentMethod) The payment method code.
  • comes in a pair with PAYMENT_METHOD_TYPE

  • the payment method selected in the shopping cart (cart type such as visa, Mastercard, or any other method).

{
  "PAYMENT_METHOD": "visa"
}

PAYMENT_METHOD_TYPE

UPDATE_PAYMENT_METHOD (change:paymentMethod)
  • offline: if it’s an offline payment method

  • online: if it’s an online payment method

  • whether the payment method is online or offline

  • determined by the paymentMethod.isOffline payload key

{
  "PAYMENT_METHOD_TYPE": "offline"
}

PAYMENT_CATEGORY

UPDATE_PAYMENT_METHOD (change:paymentMethod) Payment method label. The payment method label selected in the shopping cart (Credit card, wire, or any other method).
{
  "PAYMENT_CATEGORY": "wire"
}

QUANTITY_CHANGED

UPDATE_ITEM (update-item) Integer  
{
  "QUANTITY_CHANGED": 3
}

CART_STEP

UPDATE_CART_STEP (change:cartStep)
  • STEP_HOME

  • STEP_PRODUCT

  • STEP_BILLING

  • STEP_DELIVERY

  • STEP_PAYMENT

Only triggered for the InLine themes.
{
  "CART_STEP": "STEP_BILLING"
}

ADDITIONAL_FIELDS_COUNT

UPDATE_ADDITIONAL_FIELD_COUNT (additional-fields-count-changed) Integer The number of additional fields present in the cart.
{
  "ADDITIONAL_FIELDS_COUNT": 6
}

PURCHASE_FLOW

UPDATE_PURCHASE_FLOW (set-purchase-flow)
  • personal: when personal flow is selected

  • company: when the company flow is selected

Set by the customer when selecting the purchase flow.
{
  "PURCHASE_FLOW": "personal"
}

SOURCE

UPDATE_ADDITIONAL_FIELD_COUNT (additional-fields-count-changed) The source value. Merchant defined source.
{
  "SOURCE": "order source value"
}

time

SET_ECOMMERCE (set-ecommerce) Timestamp Sets the current time as a timestamp after a SET_ECOMMERCE event.
{
  "time": 1589806793608
}

CREDIT_CARD_INSTALLMENTS

UPDATE_HAS_INSTALLMENTS (set-has-cc-installments)
  • Yes
  • No
 
{
  "CREDIT_CARD_INSTALLMENTS": "No"
}

 

Top affiliates

Top Affiliates provides an overview of top affiliates per region: EMEA, APAC, CIS, LATAM, and ROW (Asia Pacific, Europe, the Middle East and Africa, Latin America, North America, and the Rest of the World). The report can list top affiliates according to the number of orders, the total revenue they provide or profit. Includes finished orders and refunds.

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo