Skip to main content

Shopping cart best practices

When it comes to shopping cart implementation and design, bringing into play a collection of best practices and minding a set of critical factors can facilitate a successful strategy designed to boost sales effectiveness and volume, increase revenue and drive customer loyalty.

It's easy to see how control over the look and feel of the cart in concert with the purchase flow process needs to be considered a key aspect of optimizing the shopping experience, especially in scenarios in which services are outsourced to an eCommerce platform provider.

Still looking for the perfect template for your business?

shoppingcartbestpractices.png

Workflow

  1. Use the following URL: https://api.avangate.com/channel-manager/2.1/rpc/
  2. Authenticate using the login method and create a session (connection).
  3. Set partner
  4. Throughout the lifetime of the session (max 10 minutes), you can invoke all 2Checkout API methods. To invoke methods you need to send a request to 2Checkout. Read more on the request object below.
  5. The 2Checkout system provides responses to all requests. Read more on the response object below.

Response

Whenever you call an API method, 2Checkout replies with a response. The response is a single object serialized using JSON.

There are two types of response, with the properties detailed below.

Valid response

{
"id" : <int identifier>,
"jsonrpc" : 2.0,
"response" : {<return object>}
}
Valid response object
Properties Type/Description
jsonrpc Required (string)
  JSON-RPC protocol version. Must be 2.0.
id Required (int)
  Mandatory identifier that you control, used to identify the request and the response. Use only integer values.
response Required (object)
  Provided on success (is not included if there was an error invoking the method). Actual value depends on the method invoked.

Invalid response

{
"id" : <int identifier>,
"jsonrpc" : 2.0,
"error" : { "code" : <int error code>, "message" : "<error message>"}
}
Invalid response object
Properties Type/Description
jsonrpc Required (string)
  JSON-RPC protocol version. Must be 2.0.
id Required (int)
  Mandatory identifier that you control, used to identify the request and the response. Use only integer values.
error Required (object)
 

Code - Integer identifying the error.

Message - Error description (string).

Request

Calling API methods involves sending an API request to Avangate. The request object is detailed below. 

{ 
"jsonrpc" : 2.0, 
"id" : <int identifier>, 
"method" : "<methodName>", 
"params" : [<parameters array>] 
}
Request object
Properties Type/Description
jsonrpc Required (string)
  JSON-RPC protocol version. Must be 2.0.
id Required (int)
  Mandatory identifier that you control, used to identify the request and the response. Use only integer values.
method Required (string)
  The name of the method invoked. Case sensitive.
params Optional (object)
 

An object/structure containing the parameters valid for invoking the method used.

 

Parameters structure:

 

Parameters included into the RPC call need to be provided by-position using an Array. (structured value)

 

by-position: include all parameters into an Array. The values must be in order expected by Avangate.

 

At this point we don't support by-name parameters.

 

Upsell

Overview

The object includes information related to the upsell campaigns, including product information and discount settings.

UpSell Object

The object below is returned as a successful response for the following JSON-RPC API 6.0 methods:

Parameters Type Description

Name

String

Name of campaign, max 500 characters.

Code

String

Unique system-generated campaign code.

StartDate

String

The date when the up-sell campaign starts, in the YYYY-MM-DD format. Can be NULL.

EndDate

String

The date when the up-sell campaign ends, in the YYYY-MM-DD format. Can be NULL.

DisplayForManualRenewals

Boolean

Flag to control if the campaign will be displayed for manual subscription renewal orders. Can be set as true/false.

Discount

Object

Discount definition object, details below.

      Type

String

Type of discount. Can be FIXED or PERCENT.

      Value

Integer

Percentage discount value (PERCENT discount only).

      Values

Array of objects

List of currency discounts (FIXED discount only), details below:

            Currency

String

Code of currency for the related amount.

            Amount

Integer

Discount amount value for the related currency.

      DefaultCurrency

String

Code of default currency (FIXED discount only).

PrimaryProduct

Object

Main (primary) product object, details below:

      Code

String

The code of the product that the recommendation is made for.

      Quantity

Integer

The quantity for the primary product. Can be 0 (standing for any quantity).

      PriceOptions

Array of objects

Price options list for the primary product, details below:

            Code

String

Price option group code.

            Options

Array of objects

Price options list, details below:

                  Code

String

Price option code.

                  Value

Integer

Price option value (for scale interval price option group only).

RecommendedProduct

Object

Recommended product object, details below:

      Code

String

The code of the recommended product.

      Quantity

Integer

The quantity for the recommended product. Can be 0 (standing for “match quantity” setting).

      PriceOptions

Array of objects

Price options list for the recommended product, details below:

            Code

String

Price option group code.

            Options

Array of objects

Price options list, details below:

                Code

String

Price option code.

                Value

Integer

Price option value (for scale interval price option group only).

Enabled

Boolean

Sets the campaign enabled or disabled. Can be set as true/false.

Description

Array of objects

List of campaign language descriptions, details below:

      Language

String

Code of the language.

      Text

String

The text of the description in the associated language.

 

Chargeback fees

Overview

For every open dispute, 2Checkout applies a fee, set in your account's default currency. Chargeback rates formula:

Chargeback rate = no. of opened chargebacks (regardless of their current status) in the selected chargeback interval divided by the number of transactions in the same period.

Fixed chargeback fees for each chargeback

This case implies a fixed fee in a single currency for each open dispute.

Threshold-based chargeback fees

This case implies fees with variable values depending on the chargeback rate of your account. 2Checkout agrees on certain chargeback rate thresholds together with you and applies the fees accordingly. Thresholds and chargeback fees may vary for each account. You can see the thresholds applied to your account on the Chargeback reports page.

For example:

  • If your chargeback rate is less than 1%, the chargeback fee is $15/EUR/GBP.
  • If your chargeback rate is between 1% and 2%, the chargeback fee is $20/EUR/GBP.
  • If your chargeback rate is higher than 2%, the chargeback fee is $45/EUR/GBP.

The chargeback rate used as a threshold is the one from the end of the previous month.

Where can I see my chargeback fees?

You can see the 2Checkout fees for your chargebacks in multiple areas throughout the 2Checkout platform:

Accounting report

  1. In the Total chargeback fee column in the email's body.
  2. In the 2Checkout orders with chargeback fees balance.csv report attached to the email.

Control panel

  1. On the 2Checkout dashboard, in the Chargeback Fees field of the Account balance section.
  2. In the Revenue Split report, on the Chargeback Fees field.
  3. In the Account Balance report on the Chargeback Fees column.

Increase AOV, first steps

To grow the average dollar amount that customers spend when placing orders, you can rely tried and tested strategies that favor working smarter rather than harder. To boost your Average Order Value (AOV), you can:

  1. Offer a Discount at a Threshold. Knowing that people are usually drawn to offers, you can increase your AOV by offering a discount for a minimum order amount. 

  2. Market to repeat customers. It is always easier and cheaper to keep an existing customer than to locate a new one. 
  3. Test, test and test. Base your business decision on actionable data that you can extract from A/B testing. 

Follow the path we set up for you to grow your AOV with the tools at your disposal in your 2Checkout account. 

 

 

Adding new partners

Overview

You can add partners in two ways:

  • Via the partner sign-up form
  • Adding them manually

Partner sign-up form

Interested parties can join your partnership programs by filling the sign-up form and choosing the program they are interested in joining.

Follow the steps below to generate a partner sign-up form link.

  1. Go to Setup -> Generate links.
  2. Go to the Partner Links tab.
  3. Select the template that you want the form to use.
  4. Select the Sign-up page type.
  5. Add the generated link to your website.

Once an interested party requests a partnership, you can approve, reject or delete their request from the Control Panel.

  • If you confirm the request, 2Checkout sends an email to the partner, informing him/her of the request approval. You can see the new partner in the list of partners.
  • If you delete the partner, 2Checkout doesn't send any email. The deleted partner/request is not displayed anywhere.
  • If you reject the request, 2Checkout informs the partner via email about the rejection. You can still see the partner in the partner list with the status Rejected.

Partnership status

Partnership requests can have one of the following statuses.

  • Active = Partner account approved and active
  • Inactive = Partner account approved but deactivated by you
  • Rejects = Partnership request rejected
  • Pending = Partnership request under evaluation

Adding partners manually

If none of your partnership programs are published in the form, you can assign partners manually to a partnership program or create individual settings for them.

Follow the steps below to manually add a partner to a partnership program.

  1. Login to the 2Checkout Merchant Control Panel.
  2. Go to Partner management -> Partners.
  3. Click Add partner.
  4. Fill in the partner details.
  5. Click Save partner.
  6. After filling this section, the partner is saved as Inactive. You need to fill in the Commercial settings and Financial details sections before partner activation.

Commercial settings

Payment methods

Select the business model that you want the partner to use:

  • Reseller - payments to 2Checkout as a master reseller. 2Checkout handles all aspects regarding payment, money collection, invoicing and delivery of the subscription/activation keys.
    • Characteristics:
      • 2Checkout details are present on the Partner Invoices.
      • Multiple payment options are available, depending on the order currency (Visa/MasterCard/Eurocard; Bank/Wire transfer).
      • Payments Risk Management handled by 2Checkout.
      • Automatic shopper invoices sent by 2Checkout to your partners.
  • Direct - partners pay directly through our pflatform.
    • Characteristics
      • Your company details are present on the Partner Invoice.
      • Direct payments to your accounts via Bank/Wire transfer.
      • Shopper invoices are handled by your company.

When selecting the transactional currency, the available payment methods will be displayed.

Partnership settings

You can configure partnerships to use two types of settings:

  • Create individual settings. Useful if you want to create unique settings per partner and avoid applying the settings of a partnership program.
  • Add to existing partnership programs. Useful if you want to apply settings previously defined in the partnership program.
  • Assigning a price list. Use price lists to:
    • Define a price in different currencies and assign them to regional partners;
    • Limit a partner access to a certain number of products;
    • Define special prices per product /different currencies;
  • Partner geographic coverage. Depending on the partner geographic focus, you can select the countries where your partner is allowed to sell.
  • Account manager. Select the person responsible of the partner relationship. You can also select a backup account manager. The account managers have access only to data regarding their partners if the standard use role is assigned to them.

Financial details

Fill in the Financial details. Mandatory fields:

  • Company registration name. The legal name of the company;
  • Company registration number. The legal identifier of the company;
  • Address, City & Country. The legal address.

Partner invoice settings

Decide when to generate partner invoices:

  • Manually - you will have to manually create Partner Invoices to receive payments for orders;
  • Automatically after each order;
  • On a specific day of the month.

You can still generate partner invoices manually even if they are set to be generated automatically after each order or on a specific day of the month. 

  • Allow this partner to generate partner invoices. Through this setting the partner can generate partner invoices. By granting partners access to this feature, they can group orders in a single partner invoice.

Users

Add and manage partner account users. Use the drop-down menu to grant user management rights to the partner. Additionally, you can add or configure user roles.

Partner discounts

Overview

You can change a number of parameters impacting specific orders incentivizing your partners. 



Partners can request the revision of discount and margin values through comments. But you can also take it upon yourself to also change the data when placing orders on behalf of your partners. 

Opportunity registration



The edit order functionality offers Opportunity Registration capabilities, enabling partners to place orders that function as opportunity registration equivalents. Partners can indicate that they're in fact registering an opportunity while placing an order by leveraging the comments field to ensure you are aware of the support they require and financial consideration needed. You can easily view such partner requests, and update order details to accommodate demands. 

  1. To edit the discount details of a partner order you need to select Order search in the left hand side pane of the Control Panel, Click on Partner orders and filter existing items to show only those with the Pending approval status. You can always also just search for a partner order, if you have specific details on hand.
  2. Once you identified the order you'd like to refresh, click View and then Edit Order.
  3. Take advantage of this feature to modify details such as the DiscountExtra margin, and Total Price, offering your partners better deals than available by default. Altering any of the values mentioned above will automatically cause the others to adapt and reflect the change introduced.

Use cases

  1. In case the partner invoice was not issued, you can go ahead and alter the discount values as you see fit. When the partner is generated, it will contain only the final, updated details of the order. Partner invoices are issued on-demand either by you, when the Partner invoices settings are configured to generate partner invoices manually for one or more orders at once, or by your partners when the Allow this partner to generate partner invoices option is enabled, but only if you defined a Credit limit in both cases. You also have the option of automating the issuing of partner invoices, generating them automatically on a specific day of the month.
  2. In case the partner invoice was already issued but not paid, you will need to cancel the existing partner ahead of anything else, and subsequently to delete it if it has become irrelevant. Only then will you be able to make the necessary changes to the order. Once all modifications are in place, the partner can be reissued. Partner invoices are issued in tandem with orders for those partner accounts with Partner invoice settings configured to generate them automatically for each order. Partner accounts for which you set no Credit limit will create partner invoices automatically with each order, regardless of the Partner invoice settings for that specific partner. 

Limitation

  • In the eventuality in which an issued partner was already paid, the Edit Order feature is no longer available. You should consider refunding your partner the amount that would have been provided through an increased discount. Partners will receive email notifications of the changes you operate to orders, with messages being issued for each edit. At the same time, the Partner Control Panel will reflect the update in the Order Comments area. 
  • Options such as quantity and the products in a specific order cannot be changed using the Edit Discounts feature.

Promotions

Overview

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

Parameters

Parameters Type/Description

Promotion

Object

 

Name

String  / Required

 

 

Promotion name

 

Description

String  / Optional

 

 

Promotion description

 

StartDate

String  / Optional

 

 

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

Format: Y-m-d

 

EndDate

String  / Optional

 

 

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

Format: Y-m-d

 

MaximumOrdersNumber

Integer / Optional

 

 

2Checkout stops offering the discount when the promotion reaches the maximum number of orders. Can be NULL if you want the promotion to apply to an unlimited number of orders.

 

MaximumQuantity

Integer / Optional

 

 

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

 

InstantDiscount

Boolean / Optional

 

 

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

Object / Required

 

Type

String  

 

 

  • SINGLE = one coupon code-shared by all shoppers
  • MULTIPLE = array of unique coupon codes, each designed for individual use

 

Code/Codes

Array of strings 

 

 

Varies according to type. Send:

  • Code = 'single_code'; when Type = 'SINGLE';
  • Codes = ['code1', 'code2']; when Type = 'MULTIPLE';

Enabled

Bolean / Optional

 

Possible values:

  • TRUE - promotion is active.
  • FALSE - promotion is inactive

ChannelType

String / Required

 

Possible values:

  • ECOMMERCE
  • CHANNEL_MANAGER
  • ALL

Type

String / Required

 

Possible values:

  • REGULAR
  • GLOBAL
  • SPECIAL_PRICE (use in combination with PriceMatrix and DefaultCurrency)
DefaultCurrency String/Required
  Required for SPECIAL_PRICE promotions, represents the default currency of the promotion.
PriceMatrix Array of objects (only for SPECIAL_PRICE type of promotion)/Required
  Is generated by the getPriceMatrix call and used to set promotion special prices.

ProductCode

String
  Code of the product that is used by promotion.

PricingConfigurationCode

String
  Code of pricing configuration used by promotion; must be related to the product.

OptionHash

String
  Unique identifier of one combination of price configuration options.

Options

Array of objects/Optional
  Describes price configuration options identified by OptionHash.

GroupName

String

OptionText

String

Prices

Array of objects/Required
  Promotion prices by currency; the price for default currency is required.

Value

Int/Required
  Decimal

Currency

String
  ISO code

Discount

Object / Required

 

Type

String 

 

 

Discount type:

  • PERCENT, use in combination with Value
  • FIXED, use in combination with Values and DefaultCurrency

 

Value / Values

Array of objects

 

 

  • Value = Int, determines the discount percentage from 0 to 100
  • Values = Array of Value objects

 

 

Value

Object 

 

 

         Currency

String 

 

 

 

 

ISO currency code

 

 

          Amount

Integer 

 

 

 

 

Discount amount in corresponding currency.

 

DefaultCurrency

String 

 

 

ISO code

Products

Object/ Optional

 

Code

Integer/ Optional

 

 

Unique product code that you control.

 

PricingConfigurationCode

String / Optional

 

 

Unique system generated pricing configuration code.

 

PricingOptionCodes

Array of strings / Optional

 

 

Array of pricing option codes controlled by you.

PriceThreshold

Object / Optional

 

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

 

Amount

Decimal / Optional

 

 

The minimum threshold you defined for the default currency.

 

Currency

String / Optional

 

 

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

Translations

Array of objects / Optional

 

PromotionTranslation

Object / Optional

 

 

Name

String / Optional

 

 

 

Localized name corresponding to translated language.

Name: Le product

Language: FR

 

 

Language

String / Optional

 

 

 

Language for localization.

Sources

StringArray / Optional

 

Array of strings defining the sale source through the SRC parameter.

PublishToAffiliatesNetwork

Integer / Optional

 

1 - make promotion available in the Affiliates Network

0 - keep promotion unavailable for the Affiliates Network

ApplyRecurring

String / Required

 

Choose whether to apply the discount to renewal orders. Possible values:

  • NONE
  • ALL
  • CUSTOM

RecurringChargesNumber

Integer / Optional

 

If ApplyRecurring is set to CUSTOM, you can offer discounts for a number of recurring billing charges beyond the initial purchase.

 

 

Promotions

Overview

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

Parameters

Parameters Type/Description

Promotion

Object

  Detailed below.

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/voucher for which you are extracting the information.

DiscountLabel

String

 

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

Enabled

Boolean

 

Can be TRUE if promotion is enabled, or FALSE if otherwise.

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.

 

Cross-sell

Overview

Use this object to retrieve information about the cross-sell campaigns you configured for your account. 

Parameters

Parameter Type/Description

MasterProducts

Array

 

Array of product codes for the items you set to trigger the cross-sell campaign.

DisplayType

String

 

  • cart – Shopping cart
  • review – Review page
  • finish – Thank you page

DisplayInEmail

Boolean

 

True or false depending on whether you set the cross-sell campaign to display in payment receipt emails or not.

Products

Array of objects

 

Details below

 

ProductCode

String

 

 

Product code for the item you set as recommended for the cross-sell campaign.

 

Discount

String

 

 

Value of the discount. This is a percentage.

 

DiscountType

String

    PERCENT – you can only set discounts as a percentage from the product price.
  Type String

 

 

Example: Own

  AutoAdded Boolean
  DiscountedPrice Array of objects
    Details below.
                            Currency String
                            Price Float
  BasePrice Array of objects
                            Currency String
                            Price Float

CampaignCode

String

 

Unique, system-generated cross-sell campaign code.

Name

String

 

Campaign name.

StartDate

String

 

YYYY-MM-DD. The start date you set for the cross-sell campaign.

EndDate

String

 

YYYY-MM-DD. The end date you set for the cross-sell campaign.

CampaignStatus String
  The status of the cross-sell campaign.
CampaignOwnerType String
  Campaign owner type: Can be either MERCH or AFF.

 

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