Skip to main content

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, Backup media profit and costs, 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.

Order search

Overview

Use 2Checkout's order search capabilities to search for information on purchases/orders your customers/partners made. Order search requires that you have an active 2Checkout account and shoppers/partners have placed at least one order using your buy-links.

Most orders should be available in the search results almost instantly, but there might be situations where it might take up to 15 minutes for an order to be available in search results.

Availability

Order search is available to all 2Checkout accounts.

Search for orders

  1. Log in to your Merchant Control Panel.
  2. Navigate to Orders & customers → Order search.
  3. Select eStore Orders (for information on purchases your customers made) or Partner orders (for information on purchases your partners) made.

    A. eStore Orders

    4. Click on the eStore orders tab.

    Order search

    5. Select the query type to search by:

    • Reference
    • External reference
    • Shopper reference number
    • Customer Name/Company
    • Email
    • Coupon code
    • Invoice number
    • Phone
    • SKU (Stock Keeping Unit)
    • Sales SRC (the source of the sale defined using the SRC parameter)
    • Credit cards last 4 digits

    Order Search - Search By

    6. The Exact matches checkbox will be displayed only after users enter a search criteria in the Search field.

    Order Search - Search filter

    7. Use additional filters to narrow down your search by clicking the Add filter button:

    • Products
    • Delivery type
    • Order flow
    • Order type
    • Order origin
    • Country
    • Payment method
    • Test orders
    • Confirmation status - there are three available options:
      • Waiting: will display all orders to be confirmed.
      • Confirmed: will display all the orders already confirmed.
      • All: will display all orders waiting and confirmed.

    8. You can choose to display only orders coming from affiliate sales or orders with chargebacks, by using the following filters:

    • Affiliate orders only
    • Chargeback orders only

    B. Partner Orders

    4. Click on the Partner orders tab.

    partner order tab

    5. Select the query type to search by:

    • Reference
    • Partner reference number
    • Partner Invoice Number (you can use either the Proforma Invoice Number or the Payment Invoice Number)
    • SKU

    order search type

    6. Use additional filters to narrow down your search by clicking the Add filter button:

    • Products
    • Partner
    • Product source
    • Country
    • Subscription type
    • Order added by
    • Partner invoice date
    • Price list

    7. You can choose to display only orders coming with comments or orders without invoice, by using the following filters:

    • Only orders with comments
    • Only orders without invoice

Order status and date

eStore Orders

  • By default, Finished and Refund order statuses and Order Date: Last 30 days filters are preselected
  • You can add the following filters to group your search criteria by Order status:
    • Processing
    • Suspect
    • Pending approval
    • Finished
    • Refund
    • Canceled
    • Unfinished
    • Confirmation required

Order Search - Status

  • You can search by multiple Order date filters:

Order Search - Date

Partner Orders

  • By default, Pending approval, Refunded, Complete, Awaiting payment and Delivery needs more info order statuses and Order Date: Last 30 days filters are preselected.
  • You can add the following filters to group your search criteria by Order status:

    • Canceled
    • Rejected

    partner orders filter

  • You can search by multiple Order date filters:
    Screenshot11

Order status

eStore Orders

Order status in search export Order status in Merchant Control Panel Approval status Notes
COMPLETE Finished Finished The order is paid and fulfilled.
AUTHRECEIVED Pending approval Pending approval 2Checkout is currently investigating the order. The payment was approved by the bank but is not recommended to take any action until the final approval from 2Checkout is received.
In progress / Processing In progress The order has been approved and is waiting for fulfillment confirmation.
Purchase order Unfinished Unfinished 'Purchase Order' (the order has been approved but not paid yet)
Confirmation required Unfinished The order contains products that need your delivery approval and it will be processed after you confirm it.
Suspect Suspect The order did not pass 2Checkout anti-fraud filters. It can still be approved if customer authentication is successful (2Checkout will contact the customer and/or request documents related to the payment). 
REVERSED Canceled Canceled The order was canceled because it failed to pass 2Checkout anti-fraud filters and the transaction funds have been returned to the customer.
PENDING Unfinished Unfinished

The order has incomplete/delayed/invalid payment details. If you have activated the follow-up option (see Ordering options settings), 2Checkout will try to recover the order (the customer will receive a follow-up email with further information for finalizing the order). This can happen in either of the following situations:

  • the shopper did not finalize the payment;
  • 2Checkout has not yet received the payment (applicable to offline payment methods);
  • a technical error has occurred.

Note: Orders with status Pending, with the same product ID, same Product Info (if available), same customer Email Address, and not older than 24 hours are considered duplicate and are not displayed in the Merchant Control Panel.

Suspect Suspect The order did not pass 2Checkout anti-fraud filters. It can still be approved if customer authentication is successful (2Checkout will contact the customer and/or request documents related to the payment).
TEST TEST TEST Test order.
TOTAL REFUND Refunded Refunded The order has been canceled and the funds have been returned to the customer.
PARTIAL REFUND Refunded Refunded The order has been canceled and a partial amount has been returned to the customer.
CHARGEBACK Refunded Refunded The refund issued as a result of a lost chargeback dispute.

Partner Orders

Order status in search export Notes
PENDING APPROVAL The order has not yet been reviewed.
REFUNDED Order has been refunded.
CANCELED Order is canceled.
PAYMENT UNDER REVIEW 2Checkout is currently investigating the order. The payment was approved by the bank but is not recommended to take any action until the final approval from 2Checkout is received.
REJECTED The order has been rejected.
COMPLETE Order is both paid and fulfilled.
AWAITING PAYMENT Order awaits partner payment or, in case partner pays you directly through wire transfer, the order awaits payment confirmation from your side.
DELIVERY NEEDS MORE INFO To complete the fulfillment of the order, more information is needed, such as end user/reseller information or input from the codes generator. If the partner has a credit limit, payment status of the order can be found by checking the proforma invoice status (if proforma is not available, then the order has not been paid). If the partner does not have a credit limit, the order is paid at this point.

Restrict users from running blank & partial eStore order searches

The 2Checkout platform allows all users to run blank or partial order searches by default. This is done through a special role that is activated on all merchant accounts.

To restrict certain users from running blank and partial order searches:

  1. Go to Account Settings and click on User management and then on the Manage button.
  2. On the Users page, select the user you want to restrict and click the Edit button order search_edit button_4.pngto disable the blank & partials searches for that user.
  3. On the Add role page, under the Orders & Reports roles section, uncheck the Blank & partial searches for eStore checkbox. Orders and Reports
  4. Click Save role at the bottom of the page.

Once you disable this privilege, users governed by the role you edited will no longer be able to run blank or partial searches. They will be prompted to enter the full customer or company name/reference/email address in order to search in the Name/Company or Email fields.

Search for orders placed through the purchase order flow

  1. Go to Order Search and click Add filter.
  2. Use the Order flow filter to select the Purchase order.
  3. Click Search.

Search for eStore orders by settled date

If you are a European merchant on the PSP business model (2Sell & 2Subscribe accounts) with the Payout at cashed date option enabled, you can search for orders using the Settled Date filter in the Merchant Control Panel. 

The settled date is the date the order is marked by the system as ready for payout when orders have one of the following statuses:

  • Finished
  • Refund
  • Partial Refund

When searching for orders by Settled date, results return reconciled orders.

If you have multiple accounts and one of the accounts has the 'Payout at cashed date' option enabled, if you select 'Search by Settled date' and 'Aggregate reports for all accounts', your search will return the orders with the settled date.

The 'Search orders by settled date' option is not featured currently in the Order Search Export and Instant Search Export (ISE) but will be added at a later stage.

Merchants who do not meet the above criteria will be prompted with the default Search order view. 

How it works

  1. Log in to your Merchant Control Panel.
  2. Navigate to Orders & customers → Order search
  3. Click on the eStore orders tab.
  4. For the Search by filter, select Settled date.

order search_settled date_6.png.jpg

Order Search Export Templates

You can create order search export templates by adding or removing different column headers to help you analyze and improve revenue churn. 

You can add a new column header to your order search export report (for example, you can add the External Customer ID column) by adding a new template for improved reporting capabilities.

To add/edit an order search export, follow these steps:

  1. Log in to your Merchant Control Panel.
  2. Navigate to Orders & customersOrder search and click on the Export button, as shown in the image below. order search export new template_1.png
  3. Click on Edit templates. order search export new template_2.png
  4. To edit a template, click on the Edit icon next to the template name. order search export new template_3.png
  5. Edit the template by changing the Template name and/or by adding or removing the column headers you wish to include in your export.
  6. Click Save. order search export new template_4.png
  7. To add a new template, click on the Add new template button on the Export templates settings page. order search export new template_5.png
  8. Customize your template by creating a Template name and by adding the column headers you wish to capture in your export.
  9. Click Save. order search export new template_6.png

Promotions

Overview

Configure multiple types of promotions to encourage shoppers to purchase your products and renew subscriptions.

Fix-amount discounts are applied to the net amount.

Availability

Contact your account manager to enable Order Promotions for your account.

All other promotion types are available for all 2Checkout accounts.

Any advertised promotion (coupon-based or not) will be applied to the unit price after that unit price has been affected by volume discounts.

Requirements

Add at least one product before defining a promotion.

Impact

Depending on the promotion configuration, you can set it to trigger for specific or all products or orders.

Promotion types

You can configure multiple promotion types:

  1. Product promotions
  2. Special price promotions
  3. Multi-product promotions
  4. Order promotions
  5. Recurring promotions
  6. Quantity promotions
  7. Affiliate promotions
  8. Partner promotions

Promotion codes

When defining promotions, you can set your discounts to auto-apply, or they can be applied based on a coupon code entered by the customer in the shopping cart.

The promotional codes have the following attributes:

  • The maximum length is 255 alphanumeric characters.
  • The minimum length is 1 alphanumeric character.
  • Not case sensitive.
  • The character encoding type is UTF-8.

Limitations

You can apply only one type of promotion during the shopping process. Regular, quantity, and order promotions are mutually exclusive.

 

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