Skip to main content

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.

Revenue split

Overview

A graphical report including only data for finished and refunded orders, spanning over the selected time frame.

The report is designed to offer information on the evolution of the Net product price, 2Checkout fees and commissions, tax/VAT, Download insurance services (DIS) profit and costs, disputes balance, RRT fee, chargeback fees, and shipping costs from one month to another.

The data centralized by the Revenue Split report is meant to be as close as possible to the 2Checkout Sales Report, albeit still estimate, and as such the info may differ from the finalized details.

Availability

The Revenue Split report is available for all merchants on all accounts. However, the 'All converted to' filter is visible only for merchants who have more than 1 payout method activated.

Revenue Split

Totals for specific Payout currency - this option causes the Revenue Split report to present results for finished and refunded orders settled in the same currency also selected as the Totals for specific Payout currency.

For example, if EUR is selected for the 'Totals for specific payout currency' filter, the results will centralize data from orders paid for by customers in EUR, as well as for orders paid in other currencies, but that were settled in EUR. Only settlement currencies can also act as 'Totals for specific payout currency'. Currency conversions taken into consideration for the Revenue Split report are made using the exchange rates applied for each transaction at the moment of completion.

All converted to – this option causes the Revenue Split report to present results for all finished and refunded orders settled in a specific payout currency. 

For example, if EUR is selected for the 'All converted to selected currency' filter, the results will centralize data from orders paid for by customers in EUR, as well as for orders paid in other currencies, no matter the payout currency. Only settlement currencies can also act as 'All converted to the selected currency'. Currency conversions taken into consideration for the Revenue Split report are made using the daily exchange rates and this report presents an estimate of the revenue that will be paid in the selected payout currencies.

Totals for specific Transaction currency – this option causes the Revenue Split report to present results for all finished and refunded orders placed in a specific currency, no matter the settled currency.

Integrate WIX

Overview

Wix is a complete web solution that offers a global user base, open SDK, and unparalleled design capabilities to create a unique ecosystem. Partners, developers, web designers, and other online professionals can effectively market their apps and services to millions through Wix.

The Wix connector enables merchants to process orders with 2Checkout.

Availability 

WiX integration is available only for 2Checkout accounts that handle their own tax and invoice management (2Sell and 2Subscribe accounts). 

Recurring payments are not yet available.

Wix Settings

Follow the instructions below to integrate your WiX account with 2Checkout:

  1. Log into your WIX dashboard.
  2. Under Settings, click on Select Payments.
  3. Under the Credit/Debit Cards tab, click on Change provider, and then click on Connect, under the 2Checkout logo.
  4. If you want to sign up for a 2Checkout account, click on Create an Account and follow the instructions.
  5. If you already have a 2Checkout account, click on Connect Existing Account and follow the instructions below.
  • Make sure your account has been approved by 2Checkout (this can take several days if you have just opened one).
  • Log into your 2Checkout account, navigate to the Integrations → Webhooks & API section and retrieve your Publishable Key and Private Key.
  • Retrieve your Seller ID from the 2Checkout Merchant Code in the API section.

6. Insert the keys (see the above steps) and the Seller ID into the Wix Connect your Account Form.

7. Click on Connect My Account button. Once you are connected, you can accept payments with 2Checkout.

2Checkout Settings

  1. Sign in to your 2Checkout account.
  2. Navigate to Dashboard → Integrations → Webhooks & API section.
  3. Follow these steps to activate Redirect URL:
  • In the Redirect URL section check “Enable return after sale”
  • For the Return method, select Header Redirect or Link in Thank You page
  • Set the Approved URL to your Wix URL

4. (Optional) In the Instant Notification System (INS) section check the “Enable INS” box → Set up a Global URL Endpoint.

5. Click Update to save your settings.

About WiX

Wix is the brainchild of Avishai Abrahami, Nadav Abrahami, and Giora Kaplan. Like many great ideas, it was discovered through accidental fate (on the beach). While constructing a website to be the basis of another start-up idea, the tech-savvy threesome quickly discovered that creating their own website was difficult, frustrating, and very costly. It was this agonizing experience that led them to a light bulb moment - build a platform that empowered anyone to create their own website with no coding or design skills needed. Better yet, make it free. Find out more about WiX here.

Orders origin

Overview

2Checkout monitors the source of orders placed by your customers via eStore, and helps you gain insight into shopper behavior and habits.

The tracking set in place enables the 2Checkout system to provide accurate information on the origin of eStore orders (new acquisitions, renewals and upgrades are all covered). There are three (3) sources for the orders placed by your customers, according to the interface they used to finalize the purchase process.

 

Web

encompasses all orders placed using the desktop browser version of the 2Checkout shopping cart

Mobile

is characteristic of orders placed using the mobile version of the 2Checkout shopping cart. Note: Mobile is only available if the 2Checkout mobile shopping cart is active for your account

API

used for orders involving the 2Checkout APINote: API is available only if you're using the 2Checkout API to allow customers to place orders. The API origin is shown regardless of the device customers use to place orders, as long as the process involves the 2Checkout API

Automatic billing

includes all orders placed through the automatic renewal flow. For products that have renewals configured, customers can opt in for automatic renewal of their orders.

When exporting CSV (comma separated values) files or Excel (XLS) documents, you will be able to find information on the source of orders in the Origin column.

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