Skip to main content

Configure shipping methods

Overview

If you plan to offer tangible products via 2Checkout you will need to create at least one shipping method. Read below to learn how you can create a shipping method right from your 2Checkout Merchant Control Panel account.

Create a shipping method

To create a shipping method, follow these steps:

  1. Log in to your Merchant Control Panel account.
  2. Navigate to Setup → Fulfillment, and click on the Shipping methods tab.
  3. In the Add new shipping method area, fill in the following info:
    • Name (mandatory) - This name will be displayed to customers when the shipping method is available for them to select, so you may want to make it fairly descriptive.
    • Tracking URL (optional) - If you will be shipping by a method that will provide tracking numbers, you may want to list the URL at which the tracking numbers may be traced in the Tracking URL field. The URL provided for the shipping method will be included in the shipment confirmation email that can be sent to the customer when the order is marked as shipped.

Click Add to save your shipping method. After saving your work, you are directed to the Edit shipping method page, from where you can perform additional changes.

Countries setup

The Countries section is used to specify what countries a shipping method applies to. Possible configurations are:

  • All Trusted Countries - Ship to all supported countries.
  • Home Country Only - Ship only within your home country.
  • Custom List -  Select specific countries that your shipping method will be used for.
If a buyer is not located within any of the countries for which the shipping method applies, there will be no shipping options available to them during the ordering process.

Example (Custom list): In this example, only 4 countries are added to the shipping method. 

shipping method countries.png

Use the Search bar when looking for countries to add in your shipping method configuration.

Pricing setup

The options in the Pricing section decide how the cost of your shipping method will be calculated. Possible price configurations are:

  • Free - Creates a shipping method with a base price of ’0.00′. The shipping method will show ‘Free’ in the price column at checkout. No weight or order total surcharges can be added to 'Free' shipping methods, however, the handling fee set at product level 'will apply.
  • Priced - Opens more advanced pricing schemes. Use this option to charge a higher shipping fee based on several factors (country, weight, order amount) or a combination of those factors. The handling fee set at the product level will also apply with this method if they are designated for products included in the order.

Advanced pricing setup

If you selected the pricing option 'Priced' you will be presented with a menu for defining the shipping method surcharge.

Enter a Base Price for your shipping method, in your preferred currency. The Base Price will always be charged on shipping methods that are assigned one regardless of any other surcharges set up for the method. 

Fixed shipping fee

If you selected 'Priced' for your pricing scheme, and only fill in a base price, this will be the flat-rate shipping charge that is used to calculate shipping. Your Base Price can be 0.00 but cannot be a negative value.

Example (fixed price): In this example, the shipping method has a fixed price of $10, and is not affected by customer delivery country, product weight or order total.

fixed price _ shipping.png

Surcharge based on the delivery country

To add surcharges based on customer delivery country, mark the Delivery countries checkbox. You will see displayed a list of the countries added in your shipping method, and you have the possibility to define a surcharge for each individual country. The surcharge currency is the one defined for the base price.

Example (surcharge based on country): In this example, each of the 4 countries added in the shipping method has a surcharge assigned. As the base price defined is $0, only the surcharge amount will be displayed to customers as the shipping method fee in the cart.

delivery_shipping.png

Surcharge based on the total weight

To add surcharges based on the total order weight, mark the Total weight checkbox.

To create a new weight threshold click Add surcharge and specify an amount to be charged if the order weight is under or equal to the maximum weight you define. For example, if you create a surcharge for 10 kg at $5 and 20 kg at $10 and the order weighs 8 kg the shipping surcharge will be $5 plus your base price. If the order weight is 11 kg, the surcharge will be $10 plus your base price.

Keep in mind is that our system allows any measurement unit (ex: kilos, ounces, or pounds) so long as all weights are designated in that measurement. Feel free to use your preferred weight measurements so long as you use them globally for your account.
 

Example (surcharge based on weight): In this example, there are 3 weight thresholds set. If the total order weight is lower than 10 kg, the surcharge added is $5.

For a total order weight between 10.01 - 20.00 kg, the surcharge amount added is $10. A total order weight between 20.01 and 30.00 kg will lead to the display of a $15 fee in the cart. According to the setup, we apply a $5 overcharge per additional unit over 30.00 kg. For instance, a total order weight of 31.00 kg will see a surcharge of $20, while a total order weight of 32.00 kg will have a surcharge of $25.

total_weight_shipping.png

Surcharge based on order total amount

To add surcharges based on the total order amount, mark the Order total checkbox. 

To create a new order total threshold click Add surcharge and specify an amount to be charged if the order total is under or equal to the maximum amount you define.

Example (surcharge based on amount): In this example, there are 4 total amount thresholds set. If the total order amount is lower than $10, the surcharge added is $5.

As your customers continue to spend more on their orders, the shipping surcharge decreases, with the final threshold of $1 for orders that are above $30.

order total_shipping.png

 

Add coupon

Overview

Use the addPromotionCoupon method to add single or multiple coupons to a 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 add coupons to.

promotionCoupon

Required (object)

 

type

Required (string)

 

 

Coupon type. Available values:

  • SINGLE, use in conjunction with Code
  • MULTIPLE, use in conjunction with Codes

 

Code/Codes

Required (string / array of strings)

 

 

Coupon code (for SINGLE) or array of coupon codes (for MULTIPLE).

Response

Parameter Type/Description
promotionCoupon Object

Request

<?php

require ('PATH_TO_AUTH');

// Promotion code corresponding to the promotion you want to add coupons to
$promotionCode = '';

// Define single coupon object
$promotionCoupon = new stdClass;
$promotionCoupon->Type = 'SINGLE';
$promotionCoupon->Code = 'YOUR_CODE_HERE';

// Define multiple coupon object
$promotionCoupon = new stdClass;
$promotionCoupon->Type = 'MULTIPLE';
$promotionCoupon->Codes = ['YOUR_CODE_1', 'YOUR_CODE_2'];

try {
    $updatedPromotion = $client->addPromotionCoupon ($sessionID, $promotionCode, $promotionCoupon);
}

catch (SoapFault $e) {
    echo "UpdatedPromotion: " . $e->getMessage();
    exit;
}

var_dump("UpdatedPromotion", $updatedPromotion);

 

Retrieve partner reseller list

Overview

Use this method to retrieve a list of resellers defined and stored for one of your partners.

Requirements

This method requires you to set a specific partner using setPartner.

Parameters

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

Response

Parameter Type/Description
Reseller Array of reseller objects.

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

try {
    $Resellers= $client->getPartnerResellers ($sessionID);
} catch (SoapFault $e) {
    Echo "AllResellers: " . $e->getMessage();
    exit;
}
var_dump ("AllResellers ", $Resellers);

Errors

Error Description

NOT_FOUND_PARTNER

Set a partner before calling this method.

 

Set the customer reference in the InLine Cart

Overview

Use the Cart object to set customer reference to the InLine Cart by calling theTwoCoInlineCart.cart.setCustomerReference(customer-reference)method.

Use case

  1. Add an HTML link or button in your page like the one below.
  2. Create a JavaScript click handler to execute the Inline Client desired methods.
  3. Use theTwoCoInlineCart.products.add({code, quantity, options})method to prepare your catalog product.
  4. In order to set currency use TwoCoInlineCart.cart.setCurrency(currency-code).
  5. In order to set order external reference useTwoCoInlineCart.cart.setCustomerReference(customer-reference)method.
  6. You can see below a signature token request payload for this example. A success response contains a JSON with the property “signature“ which needs to be used at the next step to set the signature using the TwoCoInlineCart method.
{
    "merchant": "AVLRNG",
    "currency": "USD",
    "reference": {
        "customer": "test-customer-ref"
    },
    "products": [
        {
            "code": "74B8E17CC0"
        }
    ]
}

The above payload will generate the signature b8c419f437a1b13065d191b8a0e124433d195d086a38448a67f126d01ffe7ad2.

7. Use the TwoCoInlineCart.cart.setSignature('b8c419f437a1b13065d191b8a0e124433d195d086a38448a67f126d01ffe7ad2') method to set the signature.

8. Use theTwoCoInlineCart.cart.checkout()method to show the cart on your page.

Sample request

HTML

<a href="#" class="btn btn-success" id="buy-button">Buy now!</a>

Javascript

window.document.getElementById('buy-button').addEventListener('click', function() {
  TwoCoInlineCart.cart.setCurrency('USD');
  TwoCoInlineCart.products.add({
    code: "74B8E17CC0"
  });
  TwoCoInlineCart.cart.setSignature('b8c419f437a1b13065d191b8a0e124433d195d086a38448a67f126d01ffe7ad2');
  TwoCoInlineCart.cart.setCustomerReference('test-customer-ref');
  TwoCoInlineCart.cart.checkout();
});

Demo

After setting the customer reference in the InLine cart using the above method, your cart should look like this:

 

Local payments in Japan - JCB

Overview

Japan is a large eCommerce market, given the high internet penetration rate and the large urban population. 75% of the over 127 million Japanese have purchased products online at least once. The latest studies show that nearly 90% of them have placed orders from mobile devices, such as smartphones and tablets.

ECommerce transactions in Japan have surpassed $100B in 2014, most of the electronic transactions taking place in the local market, with less than 20% of online shoppers buying products from abroad.

Japanese shoppers have spent $1.8B in purchasing products from businesses located in the US and China. Merchants selling to shoppers in the US and China have exported products amounting to roughly $1.4B and $0.5B respectively. Following the US and China, the biggest markets for Japanese merchants are South Korea and Thailand.

Japanese is the official language, with more than 125 million speakers, making localization a key element in the Japanese eCommerce scenery.

Related links

Key payment methods

When it comes to preferred payment methods, credit and debit cards are the payment methods of choice, with 71% of transactions. Cash and convenience store payments are the second most used payment method, totaling 18% of transactions. Other payment methods, including Direct Debit, amount to only 11% of the total number of transactions.

Payment methods Japan

Japan is no stranger to mobile payments either, being one of the first countries to introduce advanced electronic payment methods. The most popular mobile payment methods include smartcard chips and corresponding Java applications that link together mobile credit cards and e-money.

Visa and MasterCard are the two most popular card schemes used by Japanese shoppers, followed by JCB, American Express, and other payment methods.

Alternative payment methods used by Japanese shoppers include:

  • Bank transfers
  • Cash
  • Mobile Suica - mobile payment system used in Japan's biggest cities
  • PayPal
  • Yahoo! Easy payment - online payment service used on Yahoo! Japan Auctions

What 2Checkout offers

As of September 2011, over 70 million Japanese JCB cardholders were generating 9,600 billion yen in transactions annually. JCB holds a 40% market share in the Japanese credit card industry with no less than 56 million JCB cards in circulation.

In addition to Visa/MasterCard support, 2Checkout offers support for JCB.

With over 25% of all Japanese 2Checkout transactions having been paid with JCB, supporting this payment method is highly important for merchants wanting to penetrate the Japanese eCommerce market.

Besides payment processing, 2Checkout also covers support and legal issues:

  • Customer support: +81 (0)3-4579-0155
  • Risk and anti-fraud management
  • Tax compliance

Customize recurring charges

Overview

Customize the value of upcoming recurring charges at the subscription level. Custom next billing amounts take precedence over per-product pricing options you set up.

Custom subscription pricing enables you to easily control the costs that existing customers incur when they renew their subscriptions, as well as the associated number of recurring billing cycles.

Using Custom subscription pricing you'll be able to:

  • Reward customer loyalty with lower, differentiated prices.
  • Provide incentives for customers to prolong their subscriptions.
  • Reduce or increase price on-demand and benefit from granular control over the pricing of not just products but the subscriptions generated for your offerings.

Availability

All 2Checkout accounts. 

Subscriptions pricing user rights

To enable access to this functionality for users of your account, navigate to Account settings, and select Manage user access. Click on the Roles associated to specific accounts, and make sure that the checkbox next to the Subscriptions pricing option under Orders & Reports is checked.

Requirements

Custom subscription pricing can be used only in conjunction with auto-renewable and manually-renewable subscriptions that are Active. Lifetime subscriptions, those generated for products with the renewal system disabled and without a next recurring billing interval do not feature the custom pricing option.

You won't be able to set a custom price for canceled/ disabled and expired subscriptions. Past due subscriptions, those in the grace period are considered Expired.

Change the next billing amount of a subscription

Depending on the per-product pricing configuration, custom billing value can represent the net or the gross costs that customers incur. Essentially, the custom billing settings are designed to match the per-product pricing configuration.

Step 1: Navigate to the Subscriptions page under Orders & customers, and run a search to identify the customer for which you wish to modify the price of a subscription.

Step 2: Edit the subscription and click on the Current billing amount link.

Step 3: Hit the Update button and enter the custom next billing amount. This is either the net or gross value that the customer will be billed at least on the next subscription renewal billing cycle, or for a number of billing cycles, depending on the pricing configuration set for the product purchased by the customer. The options on this pop-up enable you to apply a custom price to:

  • All billing cycles

  • A limited number of billing cycles you control

Also, add a note along with the price modification if there is any information you'd like saved for the subscription.

Hit Save and the price change will immediately come into effect, although customers are only impacted on the next billing cycle.

When the number of billing cycles for which a custom price was defined expires, 2Checkout calculates the costs of future subscription renewals according to product pricing configuration.

Next billing amount update notifications

The 2Checkout system automatically sends out emails to end-users of subscriptions for which you're introducing changes impacting the billing amount. The notification is designed to provide information on the modification made, providing details on:

  • The new billing amount
  • The next billing date
  • The previous billing amount
  • The period of validity of the new billing amount

Currencies

The next billing amount currency is the same as that of the initial purchase and is used by 2Checkout for recurring charges. The subscription renewal billing currency can differ from the subscription value currency, which coincides with the settlement currency set for your account.

Allow customers to change pricing options on subscription renewal

Allow your customers to change the pricing options when manually renewing their subscriptions, to increase the flexibility of the renewal process.

Follow the steps below:

  1. Go to Setup -> Products.
  2. Click Edit on the product for which you would like to permit this behavior.
  3. Go to the Renewal tab.
  4. Under Product options, check the Change product options and quantity during manual renewal option.

After enabling this option, an edit pricing options link will be available on the checkout page. Subscription renewal price is calculated each time shoppers change the selected pricing options for a subscription, as depicted in the example below:

subscription.png

Customers will not be able to change the pricing options on manual renewals with custom prices set via the renewal URL.

Custom prices override product prices

Prices defined per-subscription take precedence and override per-product pricing strategies, as well as any discounts configured. 

Subscription history

Per-subscription price changes are logged in the Subscription history area under Changes. Details logged include the type of change, the account user who made the modification, and info about the pricing variation.

Subscription import

Overview

Add/import subscriptions in the Avangate system.

 

Include card data with your subscription import only if you contacted Avangate to enable this functionality for your account. Otherwise, the import process results in a failure. Contact Avangate or your account manager directly for more details.

ATTRIBUTES

Parameters

Type/Description

ExternalSubscriptionReference

Required (string)

 

Unique identifier for your subscription. Mandatory when importing subscription data.

StartDate

Required (string)

 

Subscription start date(YYYY-MM-DD) - StartDate is mandatory when importing subscription data. If you changed the time zone for the Avangate API by editing system settings under Account settings, then the StartDate you provide must be in accordance with your custom configuration.

ExpirationDate

Required (string)

 

Subscription expiration date(YYYY-MM-DD) - ExpirationDate is mandatory when importing subscription data. If you changed the time zone for the Avangate API by editing system settings under Account settings, then the ExpirationDate you provide must be in accordance with your custom configuration.

Product

Required (object)

 

The product for which Avangate generated the subscription. Details below.

 

ProductCode

String

 

 

Unique product identifier that you control.

 

ProductId

Int

 

 

Unique, system-generated product identifier.

 

ProductName

String

 

 

Product name.

 

ProductQuantity

Int

 

 

Ordered number of units.

 

ProductVersion

String

 

 

Product version.

 

PriceOptionCodes

Array

 

 

The product options codes the customer selected when acquiring the subscription. Pricing options codes are case sensitive.

EndUser

Required (object)

 

The end user of the subscription. Details below.

 

Person

Object

    Details below. 

 

 

FirstName

String

 

 

 

End user's first name

 

 

LastName

String

 

 

 

End user's last name

 

 

CountryCode

String

 

 

 

End user country code [ISO3166-1 Alpha 2].

 

 

State

String

 

 

 

End user state.

 

 

City

String

 

 

 

End user city.

 

 

Address1

String

 

 

 

End user first address line.

 

 

Address2

String

 

 

 

End user second address line.

 

 

Zip

String

 

 

 

End user zip code.

 

 

Email

String

 

 

 

End user email address.

 

 

Phone

String

 

 

 

End user phone number.

 

 

Company

String

 

 

 

Company name.

 

Fax

String

 

 

End user fax.

 

Language

String

 

 

Language [ISO639-2] the Avangate system uses for communications.

DeliveryInfo

Optional (object)

 

The object contains information about the delivery/fulfillment made to the customer.

 

Description

String

 

 

Delivery description.

 

Codes

Array of objects

    Details below. 

 

 

Code

String

 

 

 

Delivered activation key/code.

 

 

Description

String

 

 

 

Code description for dynamic lists from your key generator. 

 

 

ExtraInfo

Object

 

 

 

Info set by your key generator for dynamic lists only.

 

 

 

CodeExtraInfo

Object

 

 

 

Type

String

 

 

 

Label

String

 

 

 

Value

String

 

 

File

Array of objects

      Details below. 

 

 

 

Content

String

 

 

 

 

Content of the file (base64 encoded).

 

 

 

ContentLength

Int

 

 

 

 

File size.

 

 

 

Filename

String

 

 

 

 

The name of the delivered file.

 

 

 

FileType

String

 

 

 

 

The type of the delivered file.

PartnerCode

Optional (string)

 

  • Empty: for ecommerce orders
  • Partner Code (mandatory)

ExternalCustomerReference

Optional (string)

 

Customer identifier you control.

SubscriptionValue

Optional (double)

 

Subscription value. The total costs incurred by the customer through the lifecycle of the subscription before you imported the item into the Avangate system.

When you send this parameter you must accompany it by ValueCurrency.

SubscriptionValueCurrency

Optional (string)

 

Mandatory when you also send the Value parameter. The currency associated to the subscription value.

AdditionalInfo

Optional (string)

 

Extra information that you can attach to a subscription, such as the source of the initial purchase.

NextRenewalPrice

Optional (double)

 

The future costs that subscribers would incur when their subscriptions are renewed. When provided, you must accompany it by NextRenewalPriceCurrency and CustomPriceBillingCyclesLeft.

NextRenewalPriceCurrency

Optional (string)

 

Mandatory when you send CustomPriceBillingCyclesLeft. The currency associated with the subscription next renewal price value.

CustomPriceBillingCyclesLeft

Optional (string)

 

Mandatory when you send NextRenewalPrice. Avangate applies the next renewal price to the number of billing cycles you define.

CardPayment

Optional (object)

 

Include payment (credit/debit card) information that Avangate uses for recurring billing to renew imported subscriptions. Importing subscriptions with payment data is available only to eligible Avangate accounts. Contact Avangate directly for additional details.

 Card payment

Add credit/debit card details when importing subscriptions. Avangate uses payment information in the recurring billing process.

CardPayment

Object

CardNumber

Required (string)

 

The credit/debit card number.

CardType

Required (string)

 

VISA, VISAELECTRON, MASTERCARD, MAESTRO, AMEX, DISCOVER, DANKORT, CARTEBLEUE, JCB.

ExpirationYear

Required (string)

 

The year in which the card expires.

ExpirationMonth

Required (string)

 

The month in which the card expires.

HolderName

Required (string)

 

Card holder name.

CCID

Required (string)

 

Credit Card Identification - an extra ID printed on the card, usually a 3-4 digit number, the CVC2/CVV2.

HolderNameTime

Required (int)

 

The interval of time in seconds in which shoppers enter their name in the HolderName field. An abnormally short interval is usually a red flag for fraud attempts.

AutoRenewal

Optional (bool)

 

True or false, depending on whether the customer or you enabled or disabled subscription auto-renewals.

CardNumberTime

Optional (int)

 

The interval of time in seconds in which shopper enter their card number in the CardNumber field. An abnormally short interval is usually a red flag for fraud attempts.

Can be NULL, but not a negative number.

 

Unassign from product group

Overview

Use the unassignProductGroup method to unassign a product from a specific product group and assign it to the General product group instead.

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.

productCode

Required (string)

 

The code of the product you wish assigned to the group.

groupCode Required (string)
  Unique, system-generated identifier assigned to product groups. 

Response

bool(true)
<?php

require ('PATH_TO_AUTH');

$productCode = "YOUR_PRODUCT_CODE";
$groupCode = "YOUR_PRODUCT_GROUP_CODE";

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'unassignProductGroup',
'params' => array($sessionID, $productCode, $groupCode)
);

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

?>

Save prices

Overview

Use the savePrices method to update product prices for a specific pricing configuration.

Parameters

 

Parameters Type/Description

sessionID

Required (string)

 

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

Prices

BasicPrice Object

 

Details below.

Quantities

Object

 

Details below.

PriceOptions

Required (PriceOptionsAssigned object)

 

Details below.

PricingConfigCode

Required (string)

 

System-generated unique pricing configuration code. Read-only.

type

Require (string)

• REGULAR

• RENEWAL

 

BasicPrice

Object

Currency

String

 

The currency ISO code used for shipping costs - ISO 4217.

Amount

Float

 

Basic price.

 

Quantities

Object

MinQuantity

String

 

The minimum quantity of volume discounts. Default is 1.

MaxQuantity

String

 

The maximum quantity of volume discounts. Default is 99999.

 

PriceOptionsAssigned

Object

Code

String

 

Price option identifier.

Options

Array of strings

 

The pricing options group option code you configured that the Avangate system uses to calculate product prices for pricing configurations without a base price.

Response

bool(true)

Request

<?php
 
function callRPC($Request, $hostUrl, $Debug = true) {
    $curl = curl_init($hostUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    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.0/';
 
$merchantCode = "YOURCODE12345";//your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$key = "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; // counter for api calls
 
// Call the login method for authentication
 
$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);
 
 
/**
 * ProductCode = 'PDOWNFILE'
 * Default currency: EUR
 *
 * Dynamic pricing configuration
 *
 * Send two prices, including the required one for the default currency
 * The method will append the prices for the sent entries, without removing the previous values
 *
 * If the quantities intervals were not defined then they will be set.
 * If the quantities overlap with existing defined intervals, an Exception will be thrown.
 */
 
 
// make call
$Prices = array();
 
$Price = new stdClass(); // BasicPrice object
$Price->Amount = 140;
$Price->Currency = 'USD';
$Prices[] = $Price;
 
$Price = new stdClass(); // BasicPrice object
$Price->Amount = 80;
$Price->Currency = 'EUR';
$Prices[] = $Price;
 
$Quantities = new stdClass(); // QuantityInterval object
$Quantities->MinQuantity = 1;
$Quantities->MaxQuantity = 10;
 
$PriceOptions = array();
 
$PricingConfigurationCode = '5553603382';
$type = 'regular';
 
$jsonRpcRequest = array (
                                                                                                                                                                                                                                                                    'jsonrpc' => '2.0',
                                                                                                                                                                                                                                                                    'id' => $i++,
                                                                                                                                                                                                                                                                    'method' => 'savePrices',
                                                                                                                                                                                                                                                                    'params' => array($sessionID, $Prices, $Quantities, $PriceOptions, $PricingConfigurationCode, $type)
);
 
$response = callRPC((Object)$jsonRpcRequest, $host);
var_dump ($response);
 
// will output:
// bool(true)
 
 
/**
 * ProductCode = 'PDOWNFILE'
 * Default currency: EUR
 *
 * Flat pricing configuration
 * Has the VOLTAGE pricing option group assigned and marked as required.
 * If prices are sent WITHOUT setting the pricing option group and options will set the price but without setting values for the options prices.
 */
 
// Call the login method for authentication
$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; // counter for api calls
$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);
 
// make call
$Prices = array();
 
$Price = new stdClass(); // BasicPrice object
$Price->Amount = 80;
$Price->Currency = 'EUR';
$Prices[] = $Price;
 
// if PricingOption group is not required, will set price for combination of QuantityInterval - no-pricing-option-value.
$PriceOptions = array();
 
// if PricingOption group is required, then send options by assigning a PriceOptionsAssigned object (group code and options)
// $optionAssigned = new stdClass(); // PriceOptionsAssigned
// $optionAssigned->Code = 'VOLTAGE';
// $optionAssigned->Options = array('220V'); // radio option group
// $PriceOptions = array($optionAssigned);
 
$Quantities = new stdClass(); // QuantityInterval object
$Quantities->MinQuantity = 1;
$Quantities->MaxQuantity = 99999; // default maximum value
 
$PricingConfigurationCode = '54AA62CA31'; // flat pricing configuration
$type = 'regular';
 
$jsonRpcRequest = array (
                                                                                                                                                                                                                                                                    'jsonrpc' => '2.0',
                                                                                                                                                                                                                                                                    'id' => $i++,
                                                                                                                                                                                                                                                                    'method' => 'savePrices',
                                                                                                                                                                                                                                                                    'params' => array($sessionID, $Prices, $Quantities, $PriceOptions, $PricingConfigurationCode, $type)
);
 
$response = callRPC((Object)$jsonRpcRequest, $host);
var_dump ($response);
 
 
 
/**
 * ProductCode = 'PDOWNFILE'
 * Default currency: EUR
 *
 * Flat pricing configuration
 * Has the COLOR and scalenotmandatory pricing option group assigned and marked as required.
 */
// Call the login method for authentication
$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; // counter for api calls
$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);
 
// make call
$Prices = array();
 
$Price = new stdClass(); // BasicPrice object
$Price->Amount = 10;
$Price->Currency = 'EUR';
$Prices[] = $Price;
 
$optionAssigned = new stdClass(); // PriceOptionsAssigned
$optionAssigned->Code = 'COLOR'; // checkbox pricing option group, multiple values are allowed
$optionAssigned->Options = array('cyan', 'magenta');
$PriceOptions = array($optionAssigned);
 
$optionAssigned = new stdClass(); // PriceOptionsAssigned
$optionAssigned->Code = 'scalenotmandatory'; // interval pricing option group
$optionAssigned->Options = array('scalenotmandatory-1-5');
$PriceOptions = array($optionAssigned);
 
$Quantities = new stdClass(); // QuantityInterval object
$Quantities->MinQuantity = 1;
$Quantities->MaxQuantity = 99999; // default maximum value
 
$PriceOptions = array();
 
$PricingConfigurationCode = '54AA62CA31'; // flat pricing configuration
$type = 'regular';
 
$jsonRpcRequest = array (
                                                                                                                                                                                                                                                                    'jsonrpc' => '2.0',
                                                                                                                                                                                                                                                                    'id' => $i++,
                                                                                                                                                                                                                                                                    'method' => 'savePrices',
                                                                                                                                                                                                                                                                    'params' => array($sessionID, $Prices, $Quantities, $PriceOptions, $PricingConfigurationCode, $type)
);
 
$response = callRPC((Object)$jsonRpcRequest, $host);
var_dump ($response);
?>

Follow-up emails for cart abandons and free trials

Overview

Convert more leads into buyers by sending customized follow-up email messages for unfinished payments, shopping cart abandons, and free trial downloads. The 2Checkout lead management system is extremely simple to use and effective, enabling you to boost conversion rates and increase revenue.

The 2Checkout lead management capabilities are designed to:

  • Track leads and collect lead information.
  • Send smart follow-ups (follow-up settings are fully customizable, including the when/ what/ and where; you also have the option of localizing follow-ups in different languages, as supported by your account).
  • Monitor, measure the evolution and optimize lead management campaigns.
  • Take advantage of data mobility to export leads and introduce the information in your own database.
  • Include retry payment links into unfinished payments follow-up emails based on the origin (custom shopping cart, API or ConvertPlus) of the order.

Availability

Lead management is available for unfinished payments, shopping cart abandons, and free trial downloads by default for all 2Checkout accounts, and, currently, only for catalog products.

Lead sources

The 2Checkout system is designed to harvest leads from multiple sources, supporting scenarios such as:

Unfinished payments

Placed orders for which the payment process was not finished - reasons can vary: expired cards, insufficient funds, authorization declined, etc.

Shopping cart abandons

Shopping cart abandonment is a common issue and happens for various reasons: comparison shopping, lack of money, undecided shoppers, pricing research before trial & buy. A surprising number of shoppers return within a few days to continue shopping, and it's up to you to ease their conversion into paying customers.

Free trial downloads

You can use leads from free trial downloads and turn them into buyers. This source generates leads only if your download links point to the 2Checkout "downloads trials" system, with the system requesting shopper email addresses.

What to do with your leads

Follow-up emails are a very effective method for converting shopping cart abandons and unfinished payments into sales. The same goes for free trial downloads, without payment details.

The 2Checkout system supports:

  • collecting lead information;
  • setting up notification emails;
  • configuring notification type (basic/promotion with discount);
  • accessing the leads database;
  • creating and exporting reports.

Set up a follow-up campaign

To start using the follow-up for cart abandons feature, log in to your Merchant Control Panel and navigate to Marketing tools -> Lead management to set up and manage data collection and follow-up campaigns.

The Order Recovery section offers settings designed to configure and manage order recovery follow-up emails for:

  • Unfinished payments - by default, the 2Checkout system sends a simple follow-up email, two hours after the order was placed. You can edit and set your own follow-up rules, such as the number of messages, follow-up type, time intervals, etc.
  • Shopping cart abandons - you need to set your own follow-up rules to communicate with shoppers that abandon the cart, including the number of emails and type (Basic, Promotional), time intervals, etc.
  • Free trials - enable lead collection via the Free trial downloads area. Configure the data to be harvested and manage follow-ups for this lead source.

Accelerate shopper interactions through follow-up messages

The latest update to the 2Checkout lead management system is focused on accelerating shopper interactions through follow-up messages. In scenarios in which transaction failures block placed orders from being finalized, shoppers will be contacted immediately and guided through the necessary steps to complete their purchase successfully.

The first follow-up email for an unfinished payment can reach the customer in as little as one hour since the order was placed. Reducing the wait time for the 2Checkout lead management system to come into effect ensures increased efficiency of the follow-up messages and contributes to boosting conversion rates.

Shoppers using credit and debit cards and PayPal will receive a follow-up email after 60 minutes from the moment when the order was placed. In the case of abandoned shopping carts, the 2Checkout system can send the first follow-up email as soon as 20 minutes (you can configure the interval up to 90 days) after the purchase process was interrupted, provided that the shopper's first name, last name and email address were introduced.

The recommended email sequence includes 3 notifications for cart abandonment and unfinished payments, as follows:
•    Email 1: within one hour (no discount offer yet)
•    Email 2: twenty-four hours (can include a discount offer for cart abandonment emails)
•    Email 3: seventy-two hours (can include a discount offer for both cart abandonment and unfinished payments emails)

For unfinished payments merchants can set only basic follow ups, and not promotional follow-ups that also include a discount.

This email sequence is recommended for online payment methods (credit card, Paypal). It's important to keep in mind that these 3 emails should have different subject lines, content, and graphics. Also, if you're using links with the short form on the main shopping cart, the lead management emails should use the same form for links.

Unfinished payments

Guidance for unfinished payment follow-up emails is available here.

Shopping cart abandons

Follow-up availability per cart type

Type Default  ConvertPlus InLine
New acquisition
Manual renewal/ upgrade
By default, if you're using the default cart, the abandoned cart follow-up will be sent for new acquisition, manual renewal and upgrade flows. If you wish to only send these for the new acquisition flow, please enable the Only for new acquisitions (supported only in the Default flow) checkbox.

Follow-up messages are sent when shoppers go through the stages of the purchase process but abandon the cart before of actually placing the order.

  • Shopper data is collected by default by 2Checkout during the ordering process.
  • Up to 5 notification emails can be sent.
  • Flexible notification type (basic/ promotion)
No follow-up campaigns are created by default by the 2Checkout system for abandoned carts.
  1. Click on the Edit button. Order recovery unfinished payment
  2. Enable order recovery follow-up.
  3. Set the time interval starting with 20 minutes. You can set the interval as high as 90 days.
  4. Select the type of follow-up from the options available:
    • Basic follow-up: message includes a link to the abandoned shopping cart; several follow-ups can be sent.
    • Promotional follow-up: message includes a link to the abandoned shopping cart with an additional promotion applied automatically; several follow-ups can be sent. You'll need to select one of the active promotions that you defined in the Promotions area of the Control Panel.
    • A total of 5 follow-up emails can be configured. Once added, existing follow-up emails can be removed at any time, but they cannot be edited. You'll be able to view and customize the follow-up emails from the Email template manager section.

Shopping cart abandons

Shopping cart abandonment is a common issue and happens for various reasons: comparison shopping, lack of money, undecided shoppers, pricing research before trial & buy. A surprising number of shoppers return within a few days to continue shopping, and it's up to you to ease their conversion into paying customers. Here is an easy way to adopt the abandoned cart follow-up configuration:

Type When Why?
Basic follow-up 1 hour

Speed is of the essence. Short attention span plagues online shoppers, so the sooner the lead management system can generate and send a follow-up message the better. As a rule of thumb, the first follow-up should reach potential customers within one hour to be as efficient as it can.

Make it easy for customers to return to the shopping cart without having to go back through the purchase process.

Basic follow-up 1 day
Promotional follow-up 3 days

A little incentivizing goes a long way. Offer discounts to make it very hard for an already interested customer to say no.

For ConvertPlus and InLine cart initiated orders, promotions supported are product level promotions (regular and special price promotions) managed directly in the Promotions area.

Buy-links included in the email will take users to a shopping cart containing the products added to the cart. Links to abandoned shopping carts also include any additional fields information contained in the initial shopping cart. Prices are calculated according to the pricing configurations of the products in cart at the time when the link is accessed. Promotions are taken into account only if they're still active and impacting the products in the cart. On the fly pricing is ignored in the default flows initiated orders, however, it is supported for ConvertPlus and InLine orders.

Follow-up emails for ConvertPlus and InLine cart abandons are available for new purchase flows and include support for:

  • Product types:
    • Catalog products with/ without selected pricing options, catalog products with on the fly pricing, dynamic products
    • Digital and/or physical products
  • All ConvertPlus themes, including Inline cart
  • Lead information collected and maintained:
    • Billing details
    • Shipping details and selected shipping methods.
    • Regular and special price promotions applied in the cart
    • Custom parameters included in the checkout process
    • Order and product references: order external reference, customer reference, customer external reference, item external reference)
    • Additional product and order fields sent in the checkout process or inputted by the shopper in the checkout form

Free trial downloads

Unlike order recovery for unfinished payments and shopping cart abandons, you also have the possibility to configure the lead collecting settings for Free Trial Downloads.

  1. Click Trial Lead Collection settings.
  2. Select the products for which you want leads to be collected from the users who want to download the trial version. Items listed in the Lead collecting settings area, need to feature a trial link.
  3. Click to edit your product, select the navigation tab, scroll down and enter the trial URL in the Download trial version (http:// or ftp://) field. Only products for which a link was introduced in the Download trial version (http:// or ftp://) field will also be listed under the Lead collecting settings items area.
  4. You can make it mandatory for customers to provide the following data ahead of downloading the trial: email address (required by default), first name, last name, address, city, zip or postal code, country, and company name.
  5. If you use additional fields in the shopping cart, you can also make some of them mandatory for trial downloads.

With the Trial Lead collecting settings out of the way, you can move to the next stage:

  1. Click Edit follow-up settings.
  2. Enable order recovery follow-up.
  3. Set the time interval from 1 to 255 days.
  4. Select the type of follow-up from the options available:
    • Basic follow-up: message includes a link to the abandoned shopping cart; several follow-ups can be sent.
    • Promotional follow-up: message includes a link to the abandoned shopping cart with an additional promotion applied automatically; several follow-ups can be sent. You'll need to select one of the active promotions that you defined in the Promotions area of the Control Panel.
Free trials with payment details and paid trials are not impacted by the 2Checkout lead management system messages, since the platform will send out Trial automatic purchase notifications instead of follow-up emails.

A total of 5 follow-up emails can be configured. Once added, existing follow-up emails can be removed at any time, but they cannot be edited. You'll be able to view and customize the follow-up emails from the Email template manager section.

No follow-up campaigns are created by default by the 2Checkout system for free trial downloads.

Leads Database

The Leads database section helps you manage lead information:

  • view your leads
  • export leads
  • add data to your own database
  • email reports to your partners, etc.

Use the Search functionality to find leads from any Source, but you can also narrow down the query only to:

  • Shopping cart abandons
  • Free trial downloads

By using the Type filter, you can choose to focus your reports on:

  • New (New leads)
  • Used (Leads already used)
  • Used -> Success (Converted leads)
  • Follow-ups not stopped (Follow-ups that generated successful conversions)
  • Stopped from follow-ups (Follow-ups that didn't generate conversions)

For a more granular view, you can search for leads by selecting specific:

  • Dates (statistics are available starting with the day prior to the moment when the report is generated)
  • Emails
  • Languages
  • Countries
  • Products

Via the Export pop-up menu reports can be saved locally as CSV (comma separated values) or Excel files. The Export leads menu also allows you to mark items as used.

Generate a leads report

To create a new report of generated leads, follow these steps:

  1. Log in to your Merchant Control Panel.
  2. Navigate to Marketing Tools → Lead management.
  3. On the Lead management page, click on the Leads database tab.
  4. Choose the filter you want to apply to your query and click Search.

Leads export manager

5. You can then choose to export your reports in CSV file formats by clicking the Export button.

Exported reports show the latest 20.000 leads from the selected interval. To export more than 20.000 leads, generate multiple reports on shorter time intervals.

Measure results with Follow-up Reports

The follow-up report allows you to:

  • Access details on the volume of follow-up emails that have been sent per each lead source type.
  • Gain insight into the success rate of follow-up messages.
  • Get an overview of the revenue generated from follow-ups.

The follow-up reports are extremely flexible: you can filter by language, country, product, so you can see exactly which follow-up campaigns work best and improve conversion rates.

Custom follow-up emails

Access the follow-up emails that the 2Checkout system sends out according to your configured lead management campaigns in the Email template manager area of the Merchant Control Panel, under Marketing tools.

The follow-up messages can be customized through the addition of text. Contact 2Checkout directly if would like to use follow-up email personalization.

FAQ

1. What will the follow-up email buy-link contain? 
In the follow-up email, a ConvertPlus or InLine cart link will be provided for the shopper to finalize the initiated order.

2. Does this cost me extra?
No. There is no fee associated with the activation or the use of Lead management cart abandons functionality.

3. Will the ConvertPlus cart share the same look and feel as the current cart I am using? 
ConvertPlus and InLine cart will also save the customizations applied in the initiated order.

4. What are the unsupported use cases in ConvertPlus cart follow-up reminders?

In the current implementation orders initiated via connector/third-party integration and order initiated for manual renewals are not supported.

5. Are the cart abandon buy-links secured?

Yes, leads are signed using the merchant Secret Word and the signature generation and validation functionality implemented in ConvertPlus. This does not require any effort on your side and it is a process performed and managed by the system.

6. What will the reminder email contain for an order initiated via the InLine cart?

The reminder email will contain a buy-link that will open an InLine cart in the browser.

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