Checkout Process Parameters

Cleverbridge offers many parameters to control the checkout process.

❗️

Warning

Cleverbridge URLs must not exceed 2,000 characters. Certain browsers may not be able to process URLs that exceed this length.

The checkout parameters can be divided into several categories:

Products

Checkout process URLs contain parameters that determine the products that appear in the shopping cart.

Products

&cart=<product list> - string

Cleverbridge's product ID or internal product ID of the selected products Separate multiple product IDs with a comma. If the internal product ID is used, it should be preceded by the capital letter I.

📖

Example

&cart=97769,IBC345

Multiple Occurrences of One Product

<bool> - boolean

By default, if a product is added more than once to the shopping cart, the quantity of the existing line item is increased.

Set this parameter to true to allow multiple occurrences of the same product.

📖

Example

&cart=123123,123123&allowmultiple=true

Dynamic Products

Using the parameter dp, you can create customized checkout process URLs that include a unique product price, discount price, and product name.

📘

Note

Use UTF-8 encoding when generating dynamic links.

📖

Example

Here is an example of a dynamic product in a checkout process URL. The product price is dynamically set to 34.95 EUR and 39.95 USD, then a 10 EUR or 10 USD discount is subtracted, so the new total price is 24.95 EUR or 29.95 USD:

&dp_123456=**DISCOUNT:10:EUR,10:USD;G**PRICE:34.95:EUR,39.95:USD;G __CHECKSUM:7f09d0bdd7236e5553d58e76735122769f6eec70c74713c97ce601e7641c8be7

Basic Parameters

You can use the dp parameter in the following way:

&dp_<product ID>=
__PRICE:<amount1>:<currency1>,<amount2>:<currency2>,…;<price type>
__DISCOUNT:<amount1>:<currency1>,…;<price type>
__NAME:<dynamic product name url encoded>
__INTERNALPRODUCTID:<internal ID>
__ADDITIONALNAME:<additional name information>
__CHECKSUM:<SHA256 checksum>
ParameterData typeDescription
<amount1>numberPrice of the product.
<currency1>stringCurrency related to the price, according to ISO_4217.
<amount2>numberPrice of the product in an additional currency.
<currency2>stringCurrency related to the price, according to ISO_4217 .
...Value group <amount>:<currency> can be repeated as often as required.

📘 Note:
The special currency type PCT can be used to define a percentage value for the __DISCOUNT. For example, __DISCOUNT:50:PCT defines a 50% discount.
<price type>stringDefines whether or not the defined price includes VAT:

- G for including VAT (Gross)
- N for excluding VAT (Net)
<internal ID>stringYour internal unique product ID for this purchase (optional). This overwrites any defined internal product ID for the product.
<additional name information>stringUse for additional product information. This is set in Commerce Assistant and displayed to customers in an additional line within the shopping cart and checkout process.
<SHA256 checksum>stringCalculated SHA256 checksum. For more information,
Recurring Billing Parameters

Additional (optional) parameters for recurring billing products include:

__PRICE_INTERVAL:<last period to apply>
__DISCOUNT_INTERVAL:<last period to apply>
__RENEWALDATE:<date>
__TIMETOFIRSTREBILLING:<count>;<unit>
  • <last period to apply> - integer

Number of the last period (interval) for which the dynamically submitted price should be applied. 0 means that the special price (__PRICE) should only be used for the initial purchase.
The __PRICE_INTERVALparameter can take more values to control a recurring product price per specific intervals, and can be used multiple times. The extended syntax is as follows:
__PRICE_INTERVAL:<last period to apply>:<amount>:<currency>;<price type>

📖

Example

A company sets up a dynamic product with a default price of 12€. The company then provides the following link to a customer:

<https://www.cleverbridge.com/1584/>?scope=checkout&cart=214945&dp_214945=__PRICE_INTERVAL:0:11:EUR;N__PRICE_INTERVAL:2:15:EUR;N__PRICE_INTERVAL:3:20:EUR;N__CHECKSUM:7f09d0bdd7236e5553d58e76735122769f6eec70c74713c97ce601e7641c8be7

Based on the highlighted __PRICE_INTERVAL parameters, the customer would be charged the following:

  • 11€ for interval 0
  • 15€ for interval 1 (This price is not defined in the URL. It was automatically derived from the price defined for interval 2.)
  • 15€ for interval 2
  • 20€ for interval 3
  • 12€ for interval 4 (This price is not defined in the URL. It is the default price of the dynamic product.)

🚧

Important

Read the following logic considerations before using the PRICE_INTERVAL or DISCOUNT_INTERVAL parameters:

  • The value specified for a particular interval will be applied to all preceding intervals if no other interval values are specified. For example, a company sets up a dynamic product in which the price for interval 3 is specified. The price for interval 3 will be applied to intervals 0-2.
  • The value specified for a particular interval will be applied to all preceding intervals until another value is specified. For example, a company sets up a dynamic product in which unique prices for intervals 0,1, and 3 are specified. The price for interval 3 will be applied to interval 2.
  • The default value will be applied to all intervals if neither the PRICE_INTERVAL nor the DISCOUNT_INTERVAL parameter is used. For example, a company sets a dynamic product with a default price 10€. Neither the PRICE_INTERVAL nor the DISCOUNT_INTERVAL parameter is used. As a result, the price for each interval is 10 €.
  • The default value will be applied to all intervals that occur after the intervals specified in the PRICE_INTERVAL or DISCOUNT_INTERVAL parameters. For example, a company sets up a dynamic product with a default price 10€. The PRICE_INTERVAL parameter is used to specify unique prices for intervals 0-3. The price for interval 4 will be 10€.
  • <date> - date (yyyymmdd)

Sets up the date on which the subscription is up for renewal.

❗️

Warning

__RENEWALDATE allows you to set a custom next billing date. Be aware that any subsequent renewal dates occurring after this custom next billing date will be calculated based on one of the following:

  • The Recurring Subscription Interval set up for the product in the Products section of Commerce Assistant. See Products ✱.
  • The length of the Recurring Subscription Interval set up in the Configure > Manage Products section of our web admin tool.

As a result, any subsequent renewal dates will be calculated based on the following formula:

__RENEWALDATE + <recurring subscription interval/length of recurring billing interval>.

  • <count>;<unit> - integer; string
    Time until the first recurring billing event occurs. can be M for months or D for days.

🚧

Important

The maximum allowed length for <count> is three characters for months (M) and four characters for days (D).

📖

Example

The first recurring billing event should occur after 100 days.

__TIMETOFIRSTREBILLING:100;D

Product Selection

Using the parameter dp_s<selection ID>, you can also create customized checkout process URLs including a dynamic discount price for the <selection ID> product selection. For example, this parameter is useful for applying a percentage discount to all items within a product selection.

You can use the dp_s<selection ID> parameter as follows:

&dp_s<selection ID>=
__PRICE:<amount1>:<currency1>,<amount2>:<currency2>,…;<price type>
__DISCOUNT:<amount1>:<currency1>,…;<price type>
__CHECKSUM:<SHA256 checksum>

📖

Example

A company sets up a dynamic product selection (dp_s) price to 100 EUR/USD gross, and on top of that a 20% discount is applied to all items within the product selection, so a customer sees the 80 EUR/USD gross price in the checkout:

<https://www.cleverbridge.com/1584/?scope=checkout&cart=s1234&dp_s1234=**PRICE:100:EUR,100:USD;G**DISCOUNT:20:PCT__CHECKSUM>:<SHA256 CHECKSUM>

More than One Dynamic Product

You can submit more than one dynamic product in one URL. The product ID must be unique in the URL. Therefore, the rules for constructing the URL differ, depending on whether or not you want to submit different products or multiple instances of the same product:

If you want to submit different dynamic products in one URL, add the parameter dp_<product ID> for every product in the cart.

📖

Example

...

&cart=111111,123456&dp_111111=**PRICE:49.95:USD;N**NAME:Basic Package**CHECKSUM:<SHA256 CHECKSUM>&dp_123456=**PRICE:29.95:USD;N**NAME:Premium Package**CHECKSUM:<SHA256 CHECKSUM>

If you want to submit the same product multiple times in one URL, add the parameter dprno_<RunningNo> for every instance of the product in the cart. In addition, add &allowmultiple=true to the URL, which enables you to add multiple occurrences of the same product.

📖

Example

...

&cart=111111,111111&dprno_1=**PRICE:49.95:USD;N**NAME:Basic Package**CHECKSUM:<SHA256 CHECKSUM>&dprno_2=**PRICE:29.95:USD;N**NAME:Premium Package**CHECKSUM:<SHA256 CHECKSUM>&allowmultiple=true

If you are building a cart containing multiple dynamic products and requiring the data to be encapsulated behind a session URL, add the cartreset=true parameter. This is to ensure that your cart will contain the exact same dynamic products even if the page is refreshed.

Dynamic Product Protection Logic

The checksum for dynamic product protection is an SHA256 hash key based on the following string:

SHA256(dp_<productId>=__PRICE:<amount1>:<currency1>,…;<price type>__DISCOUNT:<amount1>:<currency1>,…;<price type>__NAME:<name>#<seedfordynamicproducts>)

To calculate the checksum, you must insert the hash key (#) at the end of the dynamic parameter string, followed by the Seed for Dynamic Products that you defined in Commerce Assistant.

ParameterData typeDescription
Dynamic parameterstring__PRICE:29.95:USD,24.95:EUR;N__NAME:My Product Name
Seed for dynamic productsstringTEST
String based on SHA256 hashingstringdp_product ID=**PRICE:29.95:USD,24.95:EUR;N**NAME:My Product Name#TEST
SHA256 hashstring7f09d0bdd7236e5553d58e76735122769f6eec70c74713c97ce601e7641c8be7
Parameterstringdp=**PRICE:29.95:EUR,24.95:USD;N**NAME:My Product Name\_\_CHECKSUM:7f09d0bdd7236e5553d58e76735122769f6eec70c74713c97ce601e7641c8be7

❗️

Warning

The product name must not be URL encoded when the SHA256 hash key is generated. For example, a space should be a ' ' and not '%20'.

📘

Note

The sequence of the dynamic product parameters (__PRICE, __DISCOUNT, __NAME) is not important. However, you must use the same order for the dp parameter and the SHA256 hash key generation.

📘

Note

To find your Seed for Dynamic Products in Commerce Assistant, go to Account Setup > General > Additional Details. For more information, see Account Setup ✱.

Example of Dynamic Product Parameter with SHA256 Checksum

The fictional company, Shieldware, offers two software security products:

  • Internet Security Basic (215225)
  • Mobile Internet Security (215186)

Normally, when a customer adds these products to the cart and starts the checkout process, the URL appears as follows:

<https://www.shieldware.com/864/?scope=checkout&cart=215225,215186>

However, on January 1, 2019, Shieldware decides to offer a New Years Day promotion. Instead of creating new products or promotions in the Cleverbridge platform, they decide to overwrite some of the properties of these products, including the name and price, using the dynamic product parameter.

To do so, Shieldware completed the following steps:

  • They added the following parameter to Internet Security Basic (215225):

&dp_215225=__NAME:Internet%20Security%20Basic%20Special%20Offer__ADDITIONALNAME: New%20Years%20Edition**DISCOUNT:5:EUR;G__PRICE:50:USD,45:EUR;G

  • They added the following parameter to Mobile Internet Security (215186):

&dp_215186=__NAME:Mobile%20Internet%20Security%20One%20Time%20Offer__PRICE:95:USD;G

  • They calculated the checksum for both dynamic product parameters. The result is as follows:

SHA256(dp_215225=__NAME:Internet Security Basic Special Offer__ADDITIONALNAME:New Years Edition__DISCOUNT:5:EUR;G__PRICE:50:USD,45:EUR;G#SeedforDynamicProducts) = cdcb6fe13087b22afb69345c7feb412a3637bf14a09c41f9b3b950b81c585b38

SHA256(dp_215186=__NAME:Mobile Internet Security One Time Offer__PRICE:95:USD;G#SeedforDynamicProducts) = 7cfc913bc1712395b88369acc9130c396d69897e2d01e4fcecf3edcfcdbaf6b6

  • They added the dynamic parameters and __CHECKSUM:value to the original URL. For the New Years Day promotion, the URL appeared as follows:

https://www.shieldware.com/864/?scope=checkout&cart=215225,215186&dp_215225=__NAME:Internet%20Security%20Basic%20 Special%20Offer__ADDITIONALNAME:New%20Years%20Edition**DISCOUNT:5:EUR;G__PRICE:50: USD,45:EUR;G__CHECKSUM:cdcb6fe13087b22afb69345c7feb412a3637bf14a09c41f9b3b950b81c585b38&&dp_215186= __NAME:Mobile%20Internet%20Security%20One%20Time%20Offer__PRICE:95:USD;G__ CHECKSUM:7cfc913bc1712395b88369acc9130c396d69897e2d01e4fcecf3edcfcdbaf6b6

Quantity Settings

Checkout process URLs can contain parameters that control product quantities.

Item Quantity - Simple

&quantity=<quantity> - integer

Set the quantity of the product or product list. The customer can change the quantity of the products in the checkout process. If no quantity parameter is set, a single quantity is used as default.

📖

Example

&quantity=2

Customize Item Quantities

&quantity=<quantity>,<quantity>,<quantity> - integer

Enables you to limit the quantity values available in the quantity selector drop-down for the customer in the checkout process. Pass the number list separated by commas in the quantities parameter in the URL.

📖

Example

&quantities=2,4,5,7

The quantity selector drop-down can only be enabled when package pricing is configured. To enable package pricing, choose Top-Down Discount (Packages) in your product pricing setup and define the price for each available quantity.

📘

Note

To enable the drop-down selection of available quantities in your checkout, contact Client Experience.

Item Quantity - By Product
  • <product id - integer

ID of the product you want to set the quantity for. The ID must be part of the product list that is submitted in the cart parameter.

  • <quantity> - integer

Use a numeric value for the quantity of the product.

📖

Example

&quantity_123123=4

Item Quantity - By Running Number
  • <running cart no> - integer

Specifies the position of the product in the comma-separated list used in the cart parameter.

  • <quantity> - integer

Use a numeric value for the quantity of the product.

📖

Example

&cart=123123,123124&quantityrno_1=3&quantityrno_2=5

Minimum and Maximum Quantity
&minquantity=<quantity>&maxquantity=<quantity>
&minquantity_<productId>=<quantity>&maxquantity_<productId>=<quantity>
&minquantityrno_<runningNo>=<quantity>&maxquantityrno_<runningNo>=<quantity>

<quantity> - integer

Overrides the minimum and maximum quantity of the product. If these values are the same, the user cannot change the quantity in the cart.

📖

Example

&cart=123123&minquantity=10&maxquantity=10

Allow Items to Have Zero Quantity

<bool> - boolean

By default, items with a quantity of zero are automatically removed from the cart. Set this parameter to true to allow items with zero quantity.

This feature can be useful if you want to offer the customer a product selection.

📖

Example

&cart=123123&quantity_123123=0&allowzeroquantity=true

Coupon Settings

Coupons can be added to the checkout process. Use the following parameters to add coupon codes, and to enable or disable coupons.

Coupon Code Inclusion

<coupon code> - string

One of your entered coupon codes from within our database. This coupon code will be used for all products it is valid for. The customer automatically receives the discount and doesn’t have to enter the code during the checkout process.

📖

Example

&coupon=ABC-DEF-123

Enable Coupon
  • <enablecoupon=<bool> - boolean

By default, coupons are enabled if at least one product in the cart has an active coupon.

By setting this parameter to false, the coupon input field is not shown.

By setting this parameter to force, the coupon input field is shown, even though all included items are already discounted with an included coupon= parameter. This can be useful if you want to allow a customer to add a different coupon (with a higher discount).

📖

Example

&cart=123123&enablecoupon=false

  • <enablecoupon=<force> - string

By default, coupons are enabled if at least one product in the cart has an active coupon.

By setting this parameter to force, the coupon input field is shown, even though all included items are already discounted with an included coupon= parameter. This can be useful if you want to allow a customer to add a different coupon (with a higher discount).

📖

Example

A coupon of 30% is already passed on in a URL. If an additional coupon is sent in an email, no coupon entry field will be in the checkout. Use the force parameter to display the coupon code field despite the link already being included in another coupon. If the customer then enters a coupon from an email, the coupon of the URL will be overwritten.

Cart Settings

This section describes miscellaneous parameters used in a cart.

Prohibit Cart Changes

&lockcart=<bool> - string

Prevent customers from changing cart items.

📖

Example

&lockcart=true

Cart Reset

cartreset=<bool> - boolean

Set this parameter to true to reset the entire cart information in the current session; for example, coupon codes and recommendations submitted by a parameter.

📖

Example

&cartreset=true

Cart Item Reset

&cartitemreset=<bool> - boolean

Set this parameter to true to remove all items from the cart. Coupon codes and recommendations will still be active for new items added to the cart.

📖

Example

&cartitemreset=true

Cookie Settings

By default, Cleverbridge uses a checkout process that avoids setting cookies in the customer’s browser. However, in order to offer a persistent shopping cart hosted by Cleverbridge, cookie support must be activated. Otherwise, previous selections will be removed from the cart when the customer goes back to your website to select additional items.

Enable Cookies

&cookie=<bool> - boolean

By default, a cookie is not set in the customer’s browser. Set this parameter to true to enable a cookie for a persistent cart.

📖

Example

&cart=123123&cookie=true

📘

Note

Consider the following information when deciding on whether or not to use the cookie parameter:

  1. If cookie=true, Cleverbridge will drop a cookie on the customer's browser. If the customer exits the current session and returns at a later time, the shopping cart will be pre-filled with information from the previous session.
  2. If the cookie parameter is not used, Cleverbridge does not drop a cookie on the customer's browser. However, if the customer exits the current session and returns at a later point, we will read any pre-existing cookies and pre-fill the shopping cart based on this information.
  3. If cookie=false, Cleverbridge does not drop a cookie on the customer's browser, and we will ignore any pre-existing cookies if the customer exits the current session and returns at a later time. This option is useful for promotional campaigns, such as newsletters, where you do not want pre-existing shopping cart data to be added to your promotion.

For more information about how Cleverbridge uses cookies, see Enhance User Tracking and Security.

Reset MVT Candidate Cookie

&resetMvtCandidate=<bool> - boolean

Submit this parameter with a display URL (PURL) to reset any pre-existing MVT candidate cookies on the customer's browser. As a result, Cleverbridge will re-evaluate all MVT criteria for this customer.

📖

Example

&resetMvtCandidate=true

Continue Shopping URL

If this parameter is submitted to the shopping cart, the customer will see the Continue Shopping link.

&continueurl=<url> - string

Use this parameter with cookies turned on to offer an Add to Cart option on your product listing pages. The Continue Shopping URL should then link back to your product catalog.

The value of the parameter should be URL encoded.

📖

Example

&continueurl=http%3A%2F%2Fwww.cleverbridge.com

Continue Shopping Hash

&continuehash=<string> - string

Use this parameter to protect continue shopping links from phishing attacks and prevent unauthorized redirect links being created. It contains a hash string calculated using the seed for continue URL protection. The hash will be appended automatically to the Continue Shopping URL when a URL is entered into the Continue URL textbox in the Link Generator (Advanced) under Cart Settings.

📖

Example

&continuehash=B04871AA40A62560C0266H92C1ATA8FB

Currency Settings

This section describes the currency parameters used in checkout process URLs.

Pre-Assigned Currency Selection

&currency=<currency id> - string

Pre-assigned currency codes, based on ISO 4217.

📖

Example

&currency=USD

Selectable Currency List

&currencies=<currency id list> - string

Pre-assigned currency codes, based on ISO 4217. Use commas to separate items in the list.

📖

Example

&currencies=EUR,USD,CHF

Language Settings

This section describes the language parameters used in checkout process URLs.

Pre-Assigned Language Selection

&language=<language id> - string

Pre-assigned language codes, based on ISO 639-1.

📖

Example

&language=it

Reduced Language Selection

&languages=<language id list> - string

Reduces the language selection to those specified in the parameter. Use commas to separate items in the list. The codes are based on ISO 639-1.

📖

Example

&languages=it,pl

Disable Language Selection Option

&disableselection=<bool> - boolean

Set this to true to remove the language selection option from the cart.

📖

Example

&disableselection=true

Volume Discount Settings

You can add volume discount information to the checkout process. The discount information can be masked or turned off with the following parameters.

Hide Volume Discount Information

&showpricescale=<bool> - boolean

Set this parameter to false to hide information on volume discounts in the shopping cart.

This might be useful in targeted marketing, where you would usually expect your customers to only purchase a quantity of one.

📖

Example

&showpricescale=false

📘

Note

The volume discount is still applied.

Turn Off Volume Discount Feature for Products

&usepricescale=<bool> - boolean

Set this parameter to false to completely deactivate volume discounts for this transaction.

📖

Example

&usepricescale=false

Calculate Price Based on Offset Quantity

&basequantity=<basequantity> - integer

This parameter triggers a higher price scale for a purchase, which allows a higher volume discount for purchasing additional licenses.

For example, if a customer has already purchased 15 licenses and later purchases 10 more, where the next discount level is set to 20+, this parameter qualifies the new purchase for the higher discount.

This parameter must be protected to prevent customer misuse. For more information, contact Client Experience.

📖

Example

&basequantity=20

Additional quantity options:

&basequantity_<ProductID> 
&basequantity_s<SelectionID> 
&basequantity_i<InternalProductID> 
&basequantity[]

Configurations

The configuration parameter allows you to select one of the configurations set up in your account. You can use different configurations in order to provide different checkout flow designs and different feature sets.

📘

Note

You can determine and set your own individual configuration in collaboration with your Client Success Manager during onboarding. For more information about the available options, see Checkout Flow > Flow Design or contact Client Experience.

&cfg=<configuration> - string

Use this parameter to override the default Cleverbridge configuration. You are limited to the configurations set up for your account.

📖

Example

&cfg=design2017_nr

License Keys

You can add license keys to the checkout process with the following <string> parameters:

  • &previouslicense_<productId>=<string>
  • &previouslicenserno_<runningNo>=<string>

License code of a previously purchased license required for key generation. The code is available in the notification XML.

📖

Example

&previouslicense_123123=MyKey0011Code

Price Rules

You can add or change price rules in the checkout process with the following parameters:

Price Rule

&pricerule=<pricerule> - string

Use this parameter to override a price configuration set up in the Applicable Price Configurator in Commerce Assistant. This parameter controls which prices are used.

📖

Example

&pricerule=test123

Add Additional Price Rule to Cart

&addpricerule=<value> - string

Add new price rules each time you link to Cleverbridge, instead of providing an exclusive list of price rules.

📖

Example

&addpricerule=springna

Recommendations

Cross-sells, sub-sells, and up-sells are campaigns known as recommendations. When defining a campaign, you can select a recommendation parameter value that triggers the campaign.

List of Recommendations

&recommendation=<list of recommendations> - string

Parameter for the recommendation. Add a comma at the end of the values to include all campaigns that would usually be applied when no parameters are submitted in addition to the submitted campaigns. The example below includes the campaigns XS01, upab, cd and all default campaigns.

To deactivate all recommendations, use the recommendation=none parameter with no trailing comma.

📖

Example

&recommendation=XS01,upab,cd,

Add Additional Recommendation to Cart

&addrecommendation=<value> - string

Add new recommendations each time you link to Cleverbridge, instead of providing an exclusive list of recommendations.

📖

Example

&addrecommendation=recommdationv1

Release of Order

You can ensure that an order has to be approved by you with the following parameter:

&requirerelease=<bool> - boolean

Use this parameter to enable customers to place orders that are initially given an Awaiting Release by Client status and must be approved by you before being processed.

To approve or reject these orders, do the following:

  1. Go to Transactions > Purchases in the main menu of Commerce Assistant.
  2. Search for the purchase you would like to approve or reject.
    Open the purchase.
  3. Click the Acceptance drop-down menu at the top of the purchase viewer.
  4. Select one of the following:
    • Approve an order (to approve the order)
    • Reject an order (to reject the order)

You can use this feature for instance in the upgrade process, where the entitlement of the customer needs to be manually verified. You can also use this feature to validate that specific checkout processes are available to special entities only, such as schools, universities, or government organizations.

📖

Example

&requirerelease=true

Tracking

You can add or disable tracking information in the checkout process using the following parameters.

Tracking Parameter Inclusion

You can add tracking or conversion rate campaign applications to your checkout process. Examples of these applications are web analytics or third-party affiliate management systems.

In some cases, you might want to trigger the inclusion of a specific pixel application only for a specific campaign. This parameter allows you to specify a particular tracking or conversion campaign.

&tracking=<tracking pixel id> - string

Internal parameter provided by Cleverbridge for the tracking campaign.

📖

Example

&tracking=ua123456,geUA443222

Disable Affiliate Tracking

Cleverbridge offers an affiliate management system to track revenue through affiliates and collect and pay commissions.

Sometimes, no affiliate tracking or payment should be done, even if the customer browser has been tagged with an affiliate tracking cookie.

&affiliatetracking=<bool> - boolean

Set this parameter to false to disable affiliate tracking.

📖

Example

&affiliatetracking=false

Add Additional Tracking Code to Cart

&addtracking=<value> - string

Add new tracking codes each time you link to Cleverbridge, instead of providing an exclusive list of tracking codes.

📖

Example

&addtracking=azafb23

Dynamic Protected URLs

Use the following parameters to create dynamic protected URLs.

Dynamic Protected URLs - ID

&urlident=<id> - string

The unique identifier issued for every URL. By using this unique identifier, Cleverbridge can decide if an order should be accepted for a given URL. The client is responsible for choosing a unique identifier for each URL not used by the client before. Letters, numbers, and characters are allowed as part of this unique ID.

📖

Example

&urlident=dynamictest0025!

🚧

Important

This parameter is mandatory in dynamic protected URLs.

Dynamic Protected URLs - Expiry Date

&urlvaliduntil=<date> - date

Defines the expiration date of the dynamic protected URL. Dynamic protected URLs are valid for a maximum of twelve months, starting on the day the client sends the URL to the customer. If a customer uses this URL after the expiration date, the customer is redirected to an error page stating that the URL is no longer valid. The date should be specified based on ISO 8601.

📖

Example

&urlvaliduntil=2015-09-23

🚧

Important

This parameter is mandatory in dynamic protected URLs.

Dynamic Protected URLs - Usage

&urlusage=<quantity> - integer

Defines the number of times the dynamic protected URL can be used for a purchase. If customers use an unexpired URL with the number of uses already reached, customers are directed to an error page stating that the URL is no longer available.

📖

Example

&urlusage=2

📘

Note

This parameter is not mandatory. The default value is 1.

Dynamic Protected URLs - Query Hash

&queryhash=<MD5 hash> - string

Checksum of the entire query string. The hash is calculated using the complete query string and the Seed for Query Protection. For more information, see Create a Dynamic Protected URL (Dynamic UURL).

📖

Example

Shieldware wants to add a queryhash to the following URL so that it cannot be manipulated by a customer:

https://www.cleverbridge.com/847/?
scope=checkout&cart=s4014&dp_89858=__PRICE:666:USD,666:
EUR;N&dp_89859=__PRICE:999:USD,999:EUR;N

To do so, they complete the following steps:

  1. They extract the query part of the string (namely everything after the question mark):
scope=checkout&cart=s4014&
dp_89858=__PRICE:666:USD,666:EUR;N&dp_89859=__PRICE:999:USD,999:EUR;N
  1. They add their Seed for Query Protection to the end of the string:
scope=checkout&cart=s4014&
dp_89858=__PRICE:666:USD,666:EUR;N&dp_89859=__PRICE:999:USD,999:EUR;N
<protection seed for hashing>
  1. They calculate the hash using the following formula:

MD5(<URLQueryString><SeedforQueryProtection>)

  1. They add the MD5 hash to the original URL with the queryhash parameter:
https://www.cleverbridge.com/847/?
scope=checkout&cart=s4014&dp_89858=__PRICE:666:USD,666:EUR;N
&dp_89859=__PRICE:999:USD,999:EUR;N&
queryhash=aadf15917d308de98594d9d4ec236ece

📘

Note

To find your Seed for Query Protection in Commerce Assistant, go to Account Setup > General > Additional Details. For more information, see Account Setup ✱.

Customer Data

You can add specific customer information to the checkout process using the following parameters.

Contact Information

&<contact type><input field>=<string>, where:

  • <contact type> - enum

Your checkout pages can contain fields for different types of contact information. The default contact type is delivery, which means all checkout pages ask the customer to enter contact information for product delivery. In addition, your checkout pages can contain fields for billing and licensing contact information. Therefore, possible values for <contact type> are delivery, billing, and licensee.

📖

Example

&**delivery**Company=Fondement%20de%20Legerete

  • <input field> - string

The form for entering contact information can contain the following input fields:

FieldDescription
SalutationIdSalutation; possible values include: MR_ for Mr., MS_ for Ms., MRS for Mrs., and MISfor Miss.
TitleTitle
CompanyCompany name
CompanyTypeIdType of company, for example, non-profit, university, or government office.
FirstnameFirst name
LastnameLast name
Street1Street address
Street2Additional street information
PostalCodePostal code
CityCIty
StateIdFive- or six-character ID of the customer's country and state based on ISO 3166-2. It is required for Australia, Brazil, Canada, India, Ireland, Japan, the UAE, and the USA. For syntax, see GraphQL StateEnum.
CountryIdTwo-character ID of the customer's country based on ISO 3166-1 alpha-2. Submit with capital letters, for example, US.
Phone1Phone number
Phone2Additional phone number
FaxFax number
EmailEmail address
EmailRetypeConfirmation of email address
VatIdEuropean VAT ID
UrlURL

📖

Example

&delivery**Company**=Fondement%20de%20Legerete

  • <string> - string

The specification for URLs limits the types of characters allowed. If you submit customer data as parameters in the URL, be aware that most special characters must be submitted in a URL-encoded form. Further information about URL encoding and a content-encoding tool are available at https://www.ietf.org/rfc/rfc1738.txt.

📖

Example

&deliveryCompany=**Fondement%20de%20Legerete**

See the example of a checkout page that uses some specific customer data:

📖

Example

Open the following link in a browser for a checkout page that uses the customer data below:

Order Form Prefilled with Customer Data

&deliveryCompany=Fondement%20de%20Legerete
&deliverySalutationId=MR_
&deliveryFirstname=Jerome
&deliveryLastname=LeBlanc
&deliveryStreet1=8%20NE%20rue%20Chambiges
&deliveryCity=Paris
&deliveryPostalcode=75008
&deliveryCountryId=FR
&deliveryPhone1=01-11%2011%2011%2011
&deliveryFax=01-22%2022%2022%2022
&[email protected]
&[email protected]
Internal Customer ID

The internal customer parameter allows you to pass your own IDs through the checkout process.

&internalcustomer=<string> - string

Unique ID for a customer in your database.

📖

Example

&internalcustomer=7489257489

X-Parameters (Additional Information)

You can use self-defined additional parameters, called x-parameters, to mark the origin of orders or to submit your own transaction IDs to cleverbridge, see Set Up X-Parameters. The additional parameter is saved in our checkout process. You will be able to view any order that has additional information in the Cleverbridge platform reports and notifications. The special x-parameter x-at submits a tracking parameter that will also be visible for your affiliates in the Cleverbridge Affiliate Center.

X-Parameter

The internal customer parameter allows you to pass your own IDs through the checkout process.

&x-<name>=<value>, where:

  • <name> - string

Select a name for the additional parameter. Alphanumeric characters and hyphens are allowed. This value is case sensitive.

📘

Note

All additional parameters must begin with x-.

  • <value> - string

Actual value of the additional parameter you want to pass to the Cleverbridge system.

See below an example of an X-parameter:

📖

Example

&x-tracking=ABC&x-userid=12345

X-Parameter (Item-Based)

This x-parameter will appear on the item level within the Cleverbridge notifications.

&x-cbcitem<runningno>-<name>=<value>, where:

  • <runningno> - string

Running number that corresponds to the item you are tracking with the x-parameter.

  • <name> - string

Select a name for the additional parameter. Alphanumeric characters and hyphens are allowed. This value is case sensitive.

  • <value> - string

Actual value of the x-parameter you want to pass to the Cleverbridge system.

See below an example of an item-based x-parameter:

📖

Example

x-cbcitem1-license=as2-89das9-89sa81h

📘

Note

If you use the following notation, the x-parameters will be reported in the lower-level item object of your notifications.

&x-cbcitem<runningno>-<name>=<value>

However, the x-parameters will appear in the notifications as follows:

&x-<name>=<value>

For more information, see PurchaseItem Model.

📘

Note

If you adhere to the following notation, the x-parameters will appear on the item level of your notifications.

&x-cbcitem<runningno>-<name>=<value>

The fact that they appear on the item level could result in data mapping issues if items are removed from a shopping cart (or in case of another change that affects an item running number, such as a deactivation).

To prevent potential data mapping issues, use the following x-parameter notation to track individual items:

&x-item-<productID>-<name>=<value>

In this case, the x-parameters will be reported in the top-level object of your notifications. See Purchase Model.

However, if you use this notation, you yourself will have to do the mapping between the purchase item, the product ID, and the x-parameter.

Fallback URL

A fallback URL is a URL your customers are redirected to if they try to use an expired SURL, open an inactive MVT, or delete all products in their cart. The expired URL is recorded in the following parameter:

&prevUrl=<url> - string

A URL that a customer tried to call and that was either an expired SURL, an inactive MVT, or an empty cart. This URL is always URL-encoded.

📖

Example

&prevUrl=https%3a%2f%2fwww.cleverbridge.com%2f864%2f%3fscope%3dcheckout%26cart%3d214aaa

👍

Tip

  • You can set up the fallback URL under Setup > Account Setup in Commerce Assistant.
  • If the fallback URL is used, it is recorded in the Entry URL field of the Purchase Viewer.