Skip to main content

Reducing churn through online retention strategies

Overview

A common pitfall throughout the eCommerce landscape is represented by focusing on customer base growth at the expense of neglecting existing customers. While growing your customer base is key to a business's success, customer retention is equally important, especially from a financial standpoint. One of the most frequent mistakes businesses do in terms of customer retention is ignoring the customers once they brought them on board.

Analyzing customer data from hundreds of companies in our portfolio, we’ve concluded that shoppers are much more invested in continuing their subscriptions when approached through proactive retention strategies. As a result, online renewals proved to be more than twice as effective as offline ones, while automatic renewals saved three times more subscriptions than manual ones.



While developing your retention subscriber retention strategy, make sure to clearly inform your users about the incurred charges and billing cycles, and give them the ability to easily cancel automatic renewals, should they not need them. Keep in mind that placing your customers in control of their subscription management process is paramount to preventing and reducing your refunds and/or chargeback rates.

2Checkout’s retention tools introduce a smart and easy way to reduce customer churn and gain useful insights about what drives customers to cancel automatic renewals. Use 2Checkout’s out of the box retention capabilities to:

  • Leverage proactive subscription enrollment to increase renewals and generate additional revenue. Use special deals to deepen loyalty and incentivize your customers to enroll in automatic subscription renewals.
  • Decrease churn and prevent recurring revenue from “leaking” by converting cancelations into continued subscriptions. Offer the right incentives to the customers that decided to cancel their subscriptions and make them change their mind at the point of exit.
  • Turn threats into opportunities by capturing your customers’ feedback at the point of cancelation.

Auto-renewal enrollment

If your customers purchased subscriptions from you and disabled the automatic renewal upon purchase, try to convert them to a recurring billing plan. An easy way to increase your revenue and customer retention rate is by proactively incentivizing your customers to enroll in auto-renewal campaigns. Do this via 2Checkout’s retention tools and configure discounts for one or multiple billing cycles. Your customers see the discounts in 2Checkout myAccount and they can quickly enable automatic renewal from their account.

Important: 2Checkout triggers auto-renewal enrollment campaigns only for products/subscriptions paid for with online payment methods.

2Checkout recommendations

Based on existing auto-renewal enrollment campaigns, 2Checkout recommends starting with a 15% discount for one billing cycle.

2Checkout vendors have successfully configured proactive enrollment campaigns offering discounts from 15% up to 25% for one billing cycle. This ultimately led to increases in sales of up to three times the value of the awarded discounts without counting the entire customer lifecycle value.

We recommend testing such campaigns for specific products with different time intervals and with different tiers of discounts. This way you can choose the best discounts for your customers and increase revenue and their lifetime value.

Behavior

Use promotions to enroll your customers in auto-renewal campaigns by leveraging 2Checkout myAccount. Your customers will see campaign teasers such as the one below.

Churn prevention

Subscribers enrolled in auto-renewal campaigns are 3.5 times more likely to continue their subscriptions. Churn prevention tools help you prevent recurring revenue from “leaking” by converting terminations into continued subscriptions.

2Checkout gives you an easy way to configure churn prevention campaigns so that you can:

  • Engage and collect feedback from your churning subscribers to optimize your products, marketing campaigns, and business operations. You can extract valuable information from cancellation reasons, such as pricing, feature ideas, competitor information, or just service quality improvements.
  • Solidify your recurring revenue by offering discounts to customers who want to cancel recurring billing, incentivizing them to keep auto-renewal enabled for their subscriptions.

2Checkout recommendations

Based on existing churn prevention campaigns, 2Checkout recommends asking for customer feedback and subsequently offers a 15% to 35% discount for one billing cycle. This configuration ultimately led to an increase in recovered volumes of more than 4 times the value of the awarded discounts, not considering the entire customer lifecycle value.

Behavior

Once you've started the campaign, your shoppers are notified in myAccount whenever they try to stop subscription auto-renewals for the products included in the campaign. You can customize the message displayed to your shoppers and choose whether or not to gather feedback.

The first pop-up displays either the default message shown below or the one you customize.

The next pop-up asks for a cancellation reason and shopper feedback (if you choose to gather it).

The last pop-up shows the discount that you offered for keeping the auto-renewal.

Should customers accept your discount, 2Checkout renews the subscription at the specified discounted price and improves your churn rate.

Conclusion

2Checkout’s retention tools are a key feature in increasing your revenue and customer lifetime value through customer incentives. At the same time, they can help you get important insights on how your customers see your products, what they love and/or dislike about them and what you can do to stay competitive.

Make sure you configure retention campaigns and test multiple scenarios. Different customers have different needs, so they might react differently to unique discounts. Incentivize them to keep their subscriptions active and fine-tune your retention campaigns for maximum impact on your revenue and churn rate.

Import usage from CSV

Overview

Upload usage data through the 2Checkout API from a CSV (comma-separated values) file. 2Checkout will capture the parameters sent and import the usage data into the system. Once the upload process is complete, you'll be able to access the uploaded file in the Usage area of the Merchant Control Panel.

Use the importUsageFromCsv method via SOAP APIv6 to upload usage from a CSV file.

Set the DATE parameter to GMT+2 time zone, when making the API call to the Usage Upload endpoint.

Method and URL

POSThttps://api.2checkout.com/subscription/payperusage/receiver/index.php

Parameters

Parameters

Type

Required/Optional

Description

Used in HASH validation*

merchant

String

Required

Your unique 2Checkout merchant code. View merchant code.

YES

secret_key

String

Required

The secret key associated to your account. View secret key.

YES

file_MD5

String

Required

The md5 hash of the CSV file used to upload usage.

YES

hash

String

Required

The MD5 hmac key for the request.

N/A

UsageStart Datetime Required The datetime when the usage started; can be the same as UsageEnd. For existing records, this will be updated to time 00:00:00. N/A
UsageEnd Datetime Required The datetime when the usage ended and was recorded.  For existing records this will be updated to time 23:59:59, this will be enforced in the CSV upload as well. N/A
OptionCode String Required Unique codes you provided as identifiers of specific Pricing Options in the Usage Scale Pricing Options Group scheme. Example: metered pricing.   N/A
Description String Optional It can be used to store a short merchant comment of the usage being uploaded. This can be anything, from the source of usage (mobile, web, etc.), to why changes occurred, etc. Example: Subscription usage for September. N/A
SubscriptionRef String Required Unique code that represents a subscription. Example: 83FE4FEF2. N/A

Request Example

<?php
//hmac
$date             = date("Y-m-d");
$fileReceived_md5 = md5_file("[Path to the CSV file used for usage upload]");
$merchantCode     = "";
/* 2Checkout Code */
$merchantKey      = "";
/* Merchant Secret Key */
$hashParams       = "MERCHANT={$merchantCode}&FILE={$fileReceived_md5}&DATE={$date}";
$hmac             = hash_hmac('md5', $hashParams, $merchantKey);
?>

<html>
<body>
<form method="post" action="https://api.2checkout.com/subscription/payperusage/receiver/index.php" enctype="multipart/form-data">
<input type="text" name="MERCHANT" value="<?php
echo $merchantCode;
?>" /><br />
<input type="text" name="HASH" value="<?php
echo $hmac;
?>" /><br />
<input type="file" name="OPTIONS" /><br />
<input type="hidden" name="FILE_MD5" value="<?php
echo $fileReceived_md5;
?>" />
<input type="hidden" name="DATE" value="<?php
echo $date;
?>" />
<input type="submit" /><br />
</form>
</body>
</html>

Error handling

Message code

Message description

Resolution

1

The upload operation completed successfully.

N/A

Invalid account!

The merchant code provided does not belong to a vendor in the 2Checkout system.

Please check your merchant code and make sure you're using the correct version. View merchant code.

Bad signature on the received file!

The upload CSV file's md5 signature is different than the one sent as a parameter.

Please make sure that you're using the correct md5 signature for the CSV file, or that you're uploading the CSV file for which the signature was generated.

Invalid signature

The HMAC calculated by the 2Checkout system is different from the one you're sending.

Please make sure that all parameters use correct values.

Remove promotion sources

Overview

Use the deletePromotionSources method to define new sources for an existing promotion.

Parameters

Parameter Type/Description

sessionID

Required (string)

 

Output of the Login method.

promotionCode

Required (string)

 

The code corresponding to the promotion that you want to remove sources from.

promotionSources

Required (string array)

 

Array of strings defining the promotion sources to be removed.

Response

Parameter Type/Description

status

Boolean

 

True or false

Request

<?php

function callRPC($Request, $host, $Debug = true) {
    $curl = curl_init($host);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSLVERSION, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json'));
    $RequestString = json_encode($Request);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $RequestString);
    if ($Debug) {
        $RequestString;
    }
    $ResponseString = curl_exec($curl);
    if ($Debug) {
        $ResponseString;
    }
    if (!empty($ResponseString)) {
        var_dump($ResponseString);
        $Response = json_decode($ResponseString);
        if (isset($Response->result)) {
            return $Response->result;
        }
        if (!is_null($Response->error)) {
            var_dump($Request->method, $Response->error);
        }
    } else {
        return null;
    }
}

$host = 'https://api.avangate.com/rpc/3.1/';

$merchantCode = "YOUR_MERCHANT_CODE"; // your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$key = "YOUR_SECRET_KEY"; // your account's secret key available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php

$string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s');
$hash = hash_hmac('md5', $string, $key);

$i = 1;

$jsonRpcRequest = new stdClass();
$jsonRpcRequest->jsonrpc = '2.0';
$jsonRpcRequest->method = 'login';
$jsonRpcRequest->params = array($merchantCode, gmdate('Y-m-d H:i:s'), $hash);
$jsonRpcRequest->id = $i++;

$sessionID = callRPC($jsonRpcRequest, $host);

// Promotion code corresponding to the promotion you want to remove sources from
$promotionCode = '';

// Sources array with the source values 
$sources = ['source1', 'source2'];

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'deletePromotionSources',
'params' => array($sessionID, $promotionCode, $sources)
);
var_dump (callRPC($jsonRpcRequest, $host));

Order field

Overview

Use this object to retrieve information about additional order/product fields. 

Parameters

AdditionalField

Object

Label

String

 

Field text.

Code

String

 

Field identifier. Alpha-numeric chars, underscores and dashes.

Type

String

 

Field type:

  • LISTBOX
  • CHECKBOX
  • TEXT
  • HIDDEN

ApplyTo

Sting

 

  • ORDER
  • PRODUCT

Values

Array of values

 

Custom values you control.

ValidationRule

String

 

The validation rule restricting the type of information shoppers can enter in the additional field during the purchase process.

Translations

Array of objects

 

Details below.

 

Translation

Object

Label

String

 

Field text translated in the language of the Translations object.

Values

Object

 

Custom values you control translated in the language of the Translations object.

Language

String

 

ISO language code. (ISO 639-1 two-letter code).

 

Add a pricing configuration

Overview

Use the addPricingConfiguration method to add a new pricing configuration for your account.

Parameters

Parameters Type/Description

sessionID

Required (string)

 

Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect.  The sessionID expires in 10 minutes.

PricingConfiguration

Required (object)

 

Use this object to add a new pricing configuration for your account.

ProductCode

Required (string)

 

The code of the produt you assign the configuration to.

Response

bool(true)

Request

<?php

require ('PATH_TO_AUTH');

$PricingConfiguration = new stdClass();
$PricingConfiguration->Default = True;
$PricingConfiguration->Name = 'New Pricing Configuration Through API';
$PricingConfiguration->BillingCountries = array();
$PricingConfiguration->BillingCountries[0] = 'RO';
$PricingConfiguration->BillingCountries[1] = 'DE';
$PricingConfiguration->PricingSchema = 'DYNAMIC';
$PricingConfiguration->PriceType = 'NET';
$PricingConfiguration->DefaultCurrency = 'USD';
$PricingConfiguration->Prices = new stdClass();
$PricingConfiguration->Prices->Regular = array();
$PricingConfiguration->Prices->Regular[0] = new stdClass();
$PricingConfiguration->Prices->Regular[0]->Amount = 69.09;
$PricingConfiguration->Prices->Regular[0]->Currency = 'USD';
$PricingConfiguration->Prices->Regular[0]->MinQuantity = 1;
$PricingConfiguration->Prices->Regular[0]->MaxQuantity = 35;
$PricingConfiguration->Prices->Regular[0]->OptionCodes = array();
$PricingConfiguration->Prices->Regular[0]->OptionCodes[0] = new stdClass();
$PricingConfiguration->Prices->Regular[0]->OptionCodes[0]->Code = 'G77ICHEM1C';
$PricingConfiguration->Prices->Regular[0]->OptionCodes[0]->Options = array();
$PricingConfiguration->Prices->Regular[0]->OptionCodes[0]->Options[0] = 'zh5onfolw7';
$PricingConfiguration->Prices->Regular[0]->OptionCodes[0]->Options[1] = '75rjldfcnz';
$PricingConfiguration->Prices->Regular[0]->OptionCodes[1] = new stdClass();
$PricingConfiguration->Prices->Regular[0]->OptionCodes[1]->Code = 'BAWAQB8LZP';
$PricingConfiguration->Prices->Regular[0]->OptionCodes[1]->Options = array();
$PricingConfiguration->Prices->Regular[0]->OptionCodes[1]->Options[0] = 'r3oi06opvi';
$PricingConfiguration->Prices->Regular[0]->OptionCodes[1]->Options[1] = '76gqbq4bhd';
$PricingConfiguration->Prices->Regular[1] = new stdClass();
$PricingConfiguration->Prices->Regular[1]->Amount = 64.66;
$PricingConfiguration->Prices->Regular[1]->Currency = 'USD';
$PricingConfiguration->Prices->Regular[1]->MinQuantity = 36;
$PricingConfiguration->Prices->Regular[1]->MaxQuantity = 83;
$PricingConfiguration->Prices->Regular[1]->OptionCodes = array();
$PricingConfiguration->Prices->Regular[1]->OptionCodes[0] = new stdClass();
$PricingConfiguration->Prices->Regular[1]->OptionCodes[0]->Code = '8RNXV3T3RE';
$PricingConfiguration->Prices->Regular[1]->OptionCodes[0]->Options = array();
$PricingConfiguration->Prices->Regular[1]->OptionCodes[0]->Options[0] = 'rorqkqnd9p';
$PricingConfiguration->Prices->Regular[1]->OptionCodes[0]->Options[1] = 'aeu89gqdg6';
$PricingConfiguration->Prices->Regular[1]->OptionCodes[1] = new stdClass();
$PricingConfiguration->Prices->Regular[1]->OptionCodes[1]->Code = 'DJYD713MKC';
$PricingConfiguration->Prices->Regular[1]->OptionCodes[1]->Options = array();
$PricingConfiguration->Prices->Regular[1]->OptionCodes[1]->Options[0] = 'y2z2squ7c1';
$PricingConfiguration->Prices->Regular[1]->OptionCodes[1]->Options[1] = 'g74qfskbjg';
$PricingConfiguration->Prices->Renewal = array();
$PricingConfiguration->Prices->Renewal[0] = new stdClass();
$PricingConfiguration->Prices->Renewal[0]->Amount = 7.89;
$PricingConfiguration->Prices->Renewal[0]->Currency = 'USD';
$PricingConfiguration->Prices->Renewal[0]->MinQuantity = 84;
$PricingConfiguration->Prices->Renewal[0]->MaxQuantity = 100;
$PricingConfiguration->Prices->Renewal[0]->OptionCodes = array();
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[0] = new stdClass();
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[0]->Code = '73QCSXYH0E';
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[0]->Options = array();
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[0]->Options[0] = '54xu7mngqm';
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[0]->Options[1] = 'p6m8im2unl';
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[1] = new stdClass();
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[1]->Code = '0QD0CF0OIE';
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[1]->Options = array();
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[1]->Options[0] = 'ytbac9wpmh';
$PricingConfiguration->Prices->Renewal[0]->OptionCodes[1]->Options[1] = 'lpkxxqsqxb';
$PricingConfiguration->Prices->Renewal[1] = new stdClass();
$PricingConfiguration->Prices->Renewal[1]->Amount = 76.99;
$PricingConfiguration->Prices->Renewal[1]->Currency = 'USD';
$PricingConfiguration->Prices->Renewal[1]->MinQuantity = 101;
$PricingConfiguration->Prices->Renewal[1]->MaxQuantity = 544;
$PricingConfiguration->Prices->Renewal[1]->OptionCodes = array();
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[0] = new stdClass();
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[0]->Code = '03APF0H4QF';
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[0]->Options = array();
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[0]->Options[0] = '15ce5uw2j6';
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[0]->Options[1] = 'e88d5hk0tb';
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[1] = new stdClass();
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[1]->Code = 'PT00TYI2VY';
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[1]->Options = array();
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[1]->Options[0] = '10c24smlbl';
$PricingConfiguration->Prices->Renewal[1]->OptionCodes[1]->Options[1] = '0ondbwdk3q';
$PricingConfiguration->PriceOptions = array();
$PricingConfiguration->PriceOptions[0] = new stdClass();
$PricingConfiguration->PriceOptions[0]->Code = 'FKQ8CFLYKM';
$PricingConfiguration->PriceOptions[0]->Required = false;
$PricingConfiguration->PriceOptions[1] = new stdClass();
$PricingConfiguration->PriceOptions[1]->Code = 'TH1HKFOTFR';
$PricingConfiguration->PriceOptions[1]->Required = true;

$ProductCode= 'API_Imported_123456';

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'addPricingConfiguration',
'params' => array($sessionID, $PricingConfiguration, $ProductCode) //Use product ID and not product code for API versions 2.3 and earlier
);

var_dump (callRPC((Object)$jsonRpcRequest, $host));

?>

Require end user information

Overview

Make it mandatory for your partners to attach end user information to orders.

You can also attach end user information on behalf of your partners.

Important

When you enable this feature/require end user information, 2Checkout will fulfill/deliver orders only after the mandatory details are provided. When supplied by either you or your partners, required end user details trigger the finalization of purchases and orders reach the Complete status.

Requirements

You need to configure at least one electronic delivery codes list, either static or dynamic to use this feature. You can manage code lists in the Electronic Delivery page.

How does this feature work?

When enabled, this feature makes end user information a requirement, and introduces a mandatory stage in the ordering process. End user information needs to be supplied by you, your partners or the end users for the orders to be fulfilled/delivered and reach the Complete status. Once attached, end user info is used for the details of the Customer entity created for each subscription.

  1. Attach end user info AFTER placing the order
    • Manually for each license/subscription.
    • Via CSV (comma separated values) upload.
    • Send a registration email to customers and let them enter the end user information themselves.
  2. Attach end user info BEFORE placing the order
    • Manually for each license/subscription.
    • Via a CSV (comma separated values) file.

Partners have to provide the necessary details to push the order to the delivery/fulfillment stage, but you can also provide the details if you have them.

Alternatively, fulfillment can be done exclusively to partners, leaving them to deal with their customers, and in this case, no additional info is required.

When the system configuration is set to distribute products/keys to end users, customers are required to first register ahead of delivery/fulfillment.

Enable this feature

To require end user information for each order:

  1. Go to:
    • The Partners area of the Control Panel if you're enabling the feature for a single reseller.
    • The Partnership programs area of the Control Panel if your enabling the feature for a group of resellers governed by the same partner program.
  2. Search for and edit:
    • A specific partner.
    • A partner program.
  3. Select the Commercial settings tab in either area.
  4. Scroll down to the Delivery settings area.
  5. Check the Requires end user information option under Codes Delivery.
  6. Select the After placing the order option to make end user information mandatory after orders are placed.
  7. Select the Before placing the order option to make end user information a mandatory stage of the ordering process.
  8. Orders are fulfilled/delivered and reach the Complete status only if end user information is attached.

Attaching end user information

Both you and your partners can add end user information after placing orders. End user information needs to be attached to the placed order for the 2Checkout system to fulfill/deliver it, otherwise, the order will not reach the Complete status.

Additionally, you can now identify end users/customers by the ‘customer external ID’ information in the listing results of the license report, without having to generate and open a CSV file. 

Manually

To attach end user information, follow the steps below.

  1. Go to Partner orders.
  2. Search for and Edit an order.
  3. Scroll down to the bottom of the screen in the View Order page.
  4. Click Add now.
  5. Fill in all required info in the End user details.
  6. Click Save.

The end user details provided will also be copied to the customer information associated with the subscription.

CSV upload

As an alternative to manually attaching end user information to orders, you can upload CSV files with the desired details. Follow the steps below to do this.

  1. Go to Orders & customers -> Partner orders
  2. Search for an order.
  3. Scroll down to the bottom of the screen in the View Order area.
  4. Click Upload end user information in a .CSV file.
  5. Download the .CSV template provided.
  6. Fill in the end user details. It's very important that you do not modify the headers of the document template available for download, either by altering the text or by changing their order to ensure that the information will be introduced correctly into the system. Be advised that the CSV templates are each tailored (containing the 2Checkout license/subscription references) to the specific order for which you're downloading them.
  7. Upload the .CSV file.

Place an order

Overview

Use this method to place an order.

Requirements

Parameters

Parameters Type/Description
sessionID Required (String)
  Session identifier, which is the output of the Login method. An exception is thrown if the values are incorrect.

Response

Parameters Type/Description
Order Object

Request

<?php

require('PATH_TO_AUTH'); // Authentication example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/02Authentication
require('PATH_TO_setPartner'); // setPartner example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/06Reference/Partner/00Set_partner
require('PATH_TO_addProduct'); // addProduct example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/06Reference/08Place_an_order/00Add_product_to_cart

try {
    $Order= $client->placeOrder ($sessionID);
} catch (SoapFault $e) {
    echo "PlacedOrder: " . $e->getMessage();
    exit;
}
var_dump ("PlacedOrder", $Order);

 

Search promotions

Overview

Use the searchPromotions method to extract information on promotions you set up for your account.

Parameters

Parameters Type/Description

sessionID

Required (string)

 

Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect.  The sessionID expires in 10 minutes.

Types

StringArray

 

Discount type:

  • REGULAR
  • GLOBAL
  • SPECIAL_PRICE
  • RENEWAL

Channel

String

 

Channel:

  • ECOMMERCE
  • CHANNEL_MANAGER
  • ALL

ProductCode

String

 

Unique code that you set for each of your products.

Pagination

Object.

Details below.

Page

Int

 

Set the number of pages that should be returned.

Limit

Int

 

Set a limit for the number of results that should be returned.
Coupons String
  A string composed by comma-separated coupon codes (XYX,GGG,BBBB, etc).

Response

Parameters Type/Description
Promotion Array of objects

Request

<?php

require ('PATH_TO_AUTH');

$searchOptions = new stdClass();
$searchOptions->Types = array ('REGULAR');
$searchOptions->Channel = 'ECOMMERCE';
$searchOptions->ProductCode = 'Product_Code_1';
$searchOptions->Enabled = TRUE;
$searchOptions->Limit = 99;
$searchOptions->Page = 1;
$searchOptions->Coupons = “81XS55D1,E14SSF17;

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'searchPromotions',
'params' => array($sessionID, $searchOptions)
);
var_dump (callRPC((Object)$jsonRpcRequest, $host));
?>

Promotion

Overview

Use the Promotion object to retrieve information on discounts/promotions you set up for your account.

Parameters

Parameters Type/Description

Promotion

Object

CouponCodes

Array of strings

 

Array of coupon/Voucher codes when Coupon / Voucher type is Multiple. Otherwise, empty array.

ChannelType

String

 

Possible values:

  • ECOMMERCE
  • CHANNEL_MANAGER
  • ALL

CouponType

String

 

Possible values:

  • SINGLE
  • MULTIPLE

DiscountType

String

 

Possible values:

  • FIXED
  • PERCENT

Type

String

 

REGULAR

Discount

Int

 

The value of the discount. Example, for a $30 USD discount Avangate returns the value 30 and for a 25% price cut, Avangate returns 25.

Products

Array

 

Array of product codes for the products impacted by the promotion.

Name

String

 

Promotion name

Description

String

 

Promotion description

StartDate

String

 

Starting date. The date when you set the promotion to start. Is NULL for promotions that start immediately after they're created.

EndDate

String

 

Ending date. The date when you set the promotion to end. Is NULL for promotions that you want active indefinitely.

MaximumOrdersNumber

Int

 

When the maximum number of orders is reached the promotion stops. Can be NULL if you want the promotion to apply to an unlimited number of orders.

MaximumQuantity

Int

 

Discount only applies to a specific number of product, smaller than the maximum quantity you defined. Can be NULL if you want the promotion to apply to an unlimited number units. Any extra quantity added to the cart will be sold at full price.

InstantDiscount

Boolean

 

Selecting the instant discount option will auto-apply the discount for ALL the selected products for all shoppers, without the need to enter the discount coupon.

Coupon

String

 

The promotion coupon/voucher you’re extracting information for.

DiscountLabel

String

 

Discounts can be set as a percentage from the product price or as a fixed amount in the chosen currenc

Enabled

Boolean

 

TRUE

FALSE

Currency

String

 

Currency code available for the default currency of FIXED promotions. Missing for PERCENT promotions.

Code

String

 

Unique, system-generated identifier Avangate associates with promotion campaigns.

PriceThreshold

Object

 

Limits discount use only when total order value (taxes included) exceeds the threshold you configure.

 

Amount

 Decimal

 

 

The minimum threshold you defined for the default currency.

 

Currency

String

 

 

Currency code available for the default currency of custom threshold settings.

 

 

Order confirmation documents

Overview

Shoppers can access order confirmations when they place orders. The PDF download link is  displayed in

  1. The Thank You pages
  2. myAccount
  3. The confirmation email that they receive after placing the order

This applies to orders paid for through the following payment methods:

  1. Purchase orders
  2. Wire transfers
  3. Checks

Availability

All 2Checkout accounts.

Example

Shopping cart

  1. Your shoppers need to select Purchase order, Wire Transfer or Check as their payment option and select any preferred billing currency and/or other required payment details. Then, they need to click Continue.
  2. Once they've reached the Thank You page, they need to click the Download order confirmation in order to download their partner invoice in PDF format.

myAccount

Your shoppers can also download the PDF from myAccount by visiting the Order details section for their order and clicking the Download order confirmation link.

Email

The confirmation email that the shoppers receive after placing the order also contains the PDF download link. 

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