Generate SKU Schema
Overview
Stock keeping unit or SKU is a number assigned to a particular product by a digital or physical retail store for easy identification and inventory tracking purposes. The SKU number is a string of alphanumeric characters that uniquely identify details such as price, product options, and manufacturer of a particular product or service. SKUs are used in order notifications, electronic delivery, export files, etc.
SKU Management
For companies that manage large product catalogs with defined SKUs and that make regular changes to their prices and products (new versions, new options), the manual process performed in the Merchant Control Panel needs to be supported by an automatic solution as well. By using an automated flow, merchants decrease the time needed for this process, and also reduce the risk of human errors associated with the manual process.
In the 2Checkout platform, SKUs can be associated with a unique combination made up of:
- Product identification element
- Pricing configuration
- Plus minimum one of the following:
- Currency – defined as applicable to all currencies or only to specific ones
- Volume Discounts – defined as specific quantity or intervals (applicable only according to the volume discounts that are defined at pricing configuration level)
- Purchase Types – possible values: new purchase, renewal, upgrade, and trial
- Pricing Options – will be available considering the pricing option groups assigned to the selected pricing configuration
Reseller
Overview
Structure
| Reseller | Object |
| ResellerCode | String |
| Unique, system generated reseller identifier. Can be NULL. | |
| Company | String |
| Reseller company name. Can be NULL. | |
| FirstName | String |
| Reseller first name. Can be NULL. | |
| LastName | String |
| Reseller last name. Can be NULL. | |
| String | |
| Reseller email. Can be NULL. | |
| Phone | String |
| Reseller phone. Can be NULL. | |
| Fax | String |
| Reseller fax. Can be NULL. | |
| Country | String |
| Reseller country ISO language code (ISO 639-1 two-letter code). Can be NULL. | |
| State | String |
| Reseller state. For example, "Alabama","Alaska","Arizona". Can be NULL. | |
| City | String |
| Reseller city. Can be NULL. | |
| Address | String |
| Reseller address. Can be NULL. | |
| PostalCode | String |
| Reseller ZIP code. Can be NULL. |
Purchase order status change
Use the variables in the list below to customize the Purchase order status change shopper email according to your needs. Check the 'Mandatory' column to see the variables that are required in your customized version of the e-mail.
| Variable name | Description | Test Value | Mandatory |
|---|---|---|---|
|
ALLOW_MYACCOUNT_PROMO |
Include or exclude myAccount information in the email body |
1 | No |
| AVANGATE_LOGO | Avangate logo URL | https://secure.avangate.com/images/e...endor_logo.png | Yes |
|
BANKACCOUNT |
Avangate bank account |
[NLXXABNAXXXXXXXXXX (IBAN)] | No |
|
BANKNAME |
Avangate bank name |
ABN AMRO Bank Amsterdam | No |
|
BANKSWIFT |
Avangate bank swift code |
ABNANL2XXX | No |
|
BASE_URL |
Merchant's full host |
https://secure.avangate.com | No |
|
BUSINESS_COMPANY |
Avangate company name |
Avangate | Yes |
|
BUSINESS_HOTLINE |
Avangate support phone |
0 | No |
|
BUSINESS_HOTLINEUS |
Avangate US hotline number |
0 | No |
|
BUSINESS_OPEMAIL |
Avangate operational email address |
0 | No |
|
BUSINESS_OPFAX |
Avangate operational fax number |
0 | No |
|
BUSINESS_SUPEMAIL |
Avangate support email address |
0 | No |
|
COMMERCIALNAME |
Merchant's commercial name |
0 | Yes |
|
CURRENCY_ORIGINAL |
Original order currency (applicable to refunds) |
0 | No |
|
DELIVERABILITY |
Order delivery status |
0 | No |
|
ENCRYPTED_MERCHANT_CODE |
Encrypted merchant code |
0 | No |
|
EXTRA_INFO |
0 |
0 | No |
|
FIRSTNAME |
Shopper's first name used on the delivery information |
John | No |
| GATEWAY_ERROR_CODE | Gateway error code | GW_PROCESSING_ERROR See the full list of Possible Values |
No |
| GATEWAY_ERROR_MESSAGE | Reason why the transaction failed. (e.g. Invalid card, insufficient funds) | Error processing the card transaction. The card account has not been debited. Card data is invalid or incomplete. | No |
|
HAS_RENEWAL_PRODUCTS |
Flag that indicates whether at least one product has renewal settings |
0 | No |
|
HOTLINE_NUMBERS |
0 |
0 | No |
|
HOTLINE_NUMBERS.NG_PHONE[index1].HotlineName |
Countries where Avangate support information is available |
0 | No |
|
HOTLINE_NUMBERS.NG_PHONE[index1].HotlineValue |
Avangate phone number(s) for shopper support |
0 | No |
|
IS_RENEWAL |
Flag that indicates whether at least one product has renewal settings |
0 | No |
|
LANGUAGE |
Order language (abbreviated) selected by shopper |
en | No |
|
LASTNAME |
Shopper's last name used on the delivery information |
Doe | No |
|
NAMES_OF_PRODUCTS |
Names of all products in the order, comma separated |
0 | No |
|
ORDERDATE |
Order placement date |
10/9/2019 | No |
|
ORDER_AMOUNT_ORIGINAL |
Original order value (applicable to refunds) |
10/9/2019 | No |
|
ORDER_DATE_STANDARD_FORMAT |
Standard format used for the order placement date |
0 | No |
|
ORDER_FLOW |
Purchase flow used to place the order |
0 | No |
|
ORDER_STATUS |
Order status |
0 | No |
|
PAYABLE_TO |
Payee name (applicable to wire transfer) |
0 | No |
|
PAYMENT_TYPE_INFO |
English payment method name. Includes last four card digits (if applicable). |
0 | No |
|
PO_STATUS |
Status of the Purchase Order |
0 | Yes |
|
PRODUCTS |
0 |
0 | No |
|
PRODUCTS[index1].LICENSE_TYPE |
Type of purchased subscription |
0 | No |
|
PRODUCTS[index1].PNAME |
Product name |
0 | No |
|
PRODUCTS[index1].SHORT_DESCRIPTION |
Short product description |
0 | No |
|
PRODUCTS_DATA[index1].IdProduct |
Product ID number |
0 | No |
|
PRODUCTS_DATA[index1].PRODUCT_SHORT_DESCRIPTION |
Short product description |
0 | No |
|
PRODUCTS_NO |
Number of products in cart |
0 | No |
|
REFNO |
Order reference number |
9xxxxxx | Yes |
|
RETRYLINK |
Payment retry link |
0 | No |
|
RETRY_LINK |
Payment retry link |
0 | No |
|
SHOPPER_REFERENCE_NUMBER |
Shopper reference number |
PO12345 | No |
|
UPLOADLINK |
File upload link |
0 | No |
|
UPLOAD_LINK |
File upload link |
0 | No |
|
USER_EMAIL |
Email address used by shopper to login/signup to myAccount |
example@customer-email.com | No |
|
USER_TOKEN |
Shopper token for Avangate myAccount access |
0 | No |
|
WEBSITE |
Website where the shopper placed the order |
http://www.software-company-website.com | Yes |
Product Delivery Information (Sample)
Overview
Depending on your product type, the delivery policy can differ. Below you can find a few policy samples and you can choose to use the one that applies to your product type.
Delivery Policy for Tangible/Physical Products (Sample)
All orders are subject to product availability.
Shipping
If an item in your order is unavailable, we will ship you the part of your order that is available. When that item becomes available, we will ship you the rest of your order. Shipping costs for your order are non-refundable and are based on the weight of the items you order and your location. The date of delivery for your order may vary due to carrier shipping practices, delivery location, method of delivery, and the number of items ordered, and in addition, your order may be delivered in separate shipments.
Additional taxes and charges
Additional shipping charges may apply depending on your location and the size of your order. You are responsible for all taxes applicable to the delivery of your order, including sales tax, value-added tax, customs duties, and excise duties. If there is any damage to the items that you ordered on delivery, you must contact us within 5 days from receipt of your order.
Delivery Policy for Downloadable Digital Products (Sample)
Upon receipt of your order, you will either be prompted to begin your download immediately or you will receive an e-mail from us with instructions to complete your download. If you are prompted to begin your download immediately, your completion of the download will constitute delivery to you of the item(s) you purchased.
If you receive an e-mail from us with instructions to complete your download, the receipt by you of the e-mail will constitute delivery by us to you of the item(s) you purchased.
In case you are unable to download the item(s) you purchase or you do not receive an e-mail from us with instructions to complete your download, you must contact us within 5 days from the date of your order. If you do not contact us within 5 days from the date of your order, the item(s) you purchased will be considered received, downloaded, and delivered to you.
Delivery Policy for Services (Sample)
Upon receipt of your order, the services will be performed to you in accordance with the terms applicable to the services that you purchased. The nature of the services you purchased and the date of your purchase may impact the timing of the performance of the services. The services will be deemed to be successfully delivered to you upon the performance of the services
Enable/Disable product
Overview
Use the setProductStatus method to enable/disable products for your account.
Parameters
| Parameters | Type/Description |
|---|---|
|
sessionID |
Required (string) |
|
|
Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect. The sessionID expires in 10 minutes. |
|
productCode |
Required (string) |
|
|
Use this object to configure your subscription plan/products.
You can set all Product parameters except 2CheckoutID. The 2Checkout system sets the unique product ID. The 2CheckoutID is not editable. |
|
Status |
Required (Boolean) |
|
|
True or False, depending on whether you want to enable or disable a subscription plan/product. |
Request Example
<?php
require ('PATH_TO_AUTH');
$ProductCode = "YourProductCode";
try {
$ProductStatus = $client->setProductStatus($sessionID, $ProductCode, true); // TRUE to enable a product - FALSE to disable a product
}
catch (SoapFault $e) {
echo "ProductStatus: " . $e->getMessage();
exit;
}
var_dump("ProductStatus", $ProductStatus);
?>
Response Example
bool(true)
Add sources
Overview
Use the addPromotionSources method to define new sources for an existing promotion.
Parameters
| Parameter | Type/Description |
|---|---|
|
sessionID |
Required (string) |
|
|
Output of the Login method. |
|
promotionCode |
Required (string) |
|
|
The code corresponding to the promotion that you want to add products to. |
|
promotionSources |
Required (string array) |
|
|
Array of strings defining the promotion sources. |
Response
| Parameter | Type/Description |
|---|---|
|
promotionSources |
String array |
|
|
Array of strings defining the promotion sources. |
Request
<?php
require ('PATH_TO_AUTH');
// Promotion code corresponding to the promotion you want to add sources to
$promotionCode = '';
// Sources array with the source values
$sources = ['source1', 'source2'];
try {
$updatedPromotion = $client->addPromotionSources($promotionCode,$sources);
}
catch (SoapFault $e) {
echo "UpdatedPromotion: " . $e->getMessage();
exit;
}
var_dump("UpdatedPromotion", $updatedPromotion);
Pricing option
Overview
This object is returned directly or within a successful response from the following API requests:
Retrieve a price option group Retrieve assigned price option groups Retrieve price option groups
Pricing option group
| Parameters | Type/Description | |
|---|---|---|
|
Name |
String |
|
|
|
Price option group name.
Use this parameter when adding a new price options group.
To edit the name of a price option group use the Name parameter under the Translations object. |
|
|
Description |
String |
|
|
|
Pricing option group description. |
|
|
Translations |
Array of objects |
|
|
|
Details below. |
|
|
Name |
String |
|
|
|
Localized product pricing options group name under PriceOptionGroup. Localized pricing option child name under Options. |
|
|
Description |
String |
|
|
|
Localized product pricing options group description underPriceOptionGroup. Localized pricing option child description under Options. |
|
|
Language |
String |
|
|
|
ISO language code. (ISO 639-1 two-letter code). |
|
|
Code |
String |
|
|
|
Unique code that The 2Checkout system generates or set for each pricing options group. |
|
|
Type |
String |
|
|
|
The type of the pricing options group. Possible values: · RADIO · CHECKBOX · INTERVAL · COMBO |
|
|
Options |
Array of PriceOption objects |
|
|
|
Details below. |
|
|
PriceOption |
Object |
|
|
Code |
String |
|
|
|
The code you set or that the 2Checkout system generated for each pricing option child inside a pricing options group parent. |
|
|
ScaleMin |
Int |
|
|
|
The minimum value of a scale interval set for each pricing option child inside a pricing options group parent of the type INTERVAL. |
|
|
ScaleMax |
Int |
|
|
|
The maximum value of a scale interval set for each pricing option child inside a pricing options group parent of the type INTERVAL. |
|
|
SubscriptionImpact |
SubscriptionLifetimeImpact object |
|
|
|
Details below. |
|
|
Months |
String |
|
|
|
The value in months the 2Checkout system adds or subtracts from the initial billing cycle of a subscription. |
|
|
Impact |
String |
|
|
|
Possible values: · ADD · SUBTRACT · LIFETIME |
|
|
PriceImpact |
Object |
|
|
|
Details below. |
|
|
ImpactOn |
String |
|
|
|
Possible values:
|
|
|
Impact |
String |
|
|
|
Impact on price per unit:
|
|
|
Percent |
String |
|
|
|
The value of the percentage out of the price per product unit, when you usePERCENT for Method. |
|
|
Method |
String |
|
|
|
Possible values: · PERCENT · FIXED |
|
|
Amounts |
Array of objects. |
|
|
|
Details below. |
|
|
Currency |
String |
|
|
|
Currency ISO code - ISO 4217. |
|
|
Amount |
String |
|
|
|
The amount defined for each specific currency active for your account, when you use FIXED for Method. |
|
|
Default |
Boolean |
|
|
|
TRUE for preselected options. Missing for options that are not preselected. |
|
|
Name |
String |
|
|
|
Pricing option child name. |
|
|
Description |
String |
|
|
|
Pricing option child description. |
|
|
Translations |
Array of objects |
|
|
|
Details below. |
|
| Usage |
String. Defines the type of pricing for scale product options. Can be either regular (tiered pricing) or payperusage (metered billing). |
|
Order session content
Overview
The object below is returned directly or within a successful response from the following API requests:
Retrieve session content Retrieve contents with prefill Retrieve VAT or sales tax
Session contents object
| Parameters | Type/Description | ||||
|---|---|---|---|---|---|
|
Errors |
|
Array of strings | |||
|
|
|
Payment gateway processing errors. | |||
|
Items |
Array of objects |
||||
| Details below. | |||||
|
|
ProductDetails |
Object |
|||
| Details below. | |||||
|
|
|
Name |
String |
||
|
|
|
|
Product name. |
||
| ShortDescription | String | ||||
| Product short description. | |||||
| Tangible | Boolean | ||||
|
Possible values:
|
|||||
| IsDynamic | Boolean | ||||
|
Possible values:
|
|||||
|
|
|
ExtraInfo |
String |
||
|
|
|
|
The text entered in the Additional information field when generating Buy links, or via the INFO[PRODUCT_ID] parameter used in Buy links. |
||
|
|
|
RenewalStatus |
Boolean |
||
|
|
|
|
|
||
|
|
|
Subscriptions |
Object |
||
| Details below. | |||||
|
|
|
|
SubscriptionReference |
String |
|
|
|
|
|
|
Unique, system-generated subscription identifier. |
|
|
|
|
|
PurchaseDate |
String | |
|
|
|
|
|
The date time stamp when shoppers acquired their subscriptions corresponding to the moment when the 2Checkout system marks the purchase as finished. Format (YYYY-MM-DD HH:mm:ss). Default GMT+02:00.
e.g. 2015-08-11 15:18:52 |
|
|
|
|
|
SubscriptionStartDate |
String | |
|
|
|
|
|
Example: 2015-09-29 17:57:59 |
|
|
|
|
|
ExpirationDate |
String | |
|
|
|
|
|
The date time stamp of upcoming renewal/expiration for subscriptions not taking into account grace period settings.
Format (YYYY-MM-DD HH:mm:ss). Default GMT+02:00.
e.g. 2015-09-11 15:18:52 |
|
|
|
|
|
Lifetime |
Boolean |
|
|
|
|
|
|
|
|
|
|
|
|
Trial |
Boolean | |
|
|
|
|
|
|
|
|
|
|
|
Enabled |
Boolean | |
|
|
|
|
|
|
|
|
|
|
|
RecurringEnabled |
Boolean | |
|
|
|
|
|
|
|
|
|
PriceOptions |
Array of strings |
|||
|
|
|
Product price options. |
|||
|
|
Price |
Object |
|||
|
|
|
This object returns the price per unit at order line level.
In the case of trials, the object returns the costs for the trial to full subscription conversion. |
|||
|
|
|
UnitNetPrice |
Float |
||
|
|
|
|
The value per product unit, excluding sales tax/VAT expressed in the payment currency. |
||
|
|
|
UnitGrossPrice |
Float | ||
|
|
|
|
Total value per product unit, including sales tax/VAT expressed in the payment currency. UnitGrossPrice does not reflect any discounts. |
||
|
|
|
UnitVAT |
Int | ||
|
|
|
Sales tax/VAT per product unit expressed in the payment currency. |
|||
|
|
|
UnitDiscount |
Int | ||
|
|
|
|
Value of the discount per product unit expressed in the payment currency. |
||
|
|
|
UnitNetDiscountedPrice |
Float |
||
|
|
|
|
The value per product unit, expressed in the payment currency, excluding sales tax/VAT, from which 2Checkout deducts the unit discount. |
||
|
|
|
UnitGrossDiscountedPrice |
Float |
||
|
|
|
|
Total costs shoppers incur per product unit, expressed in the payment currency. This value includes sales tax/VAT, 2Checkout and affiliate commissions, but 2Checkout deducts the value of any discounts. |
||
|
|
|
UnitAffiliateCommission |
Int |
||
|
|
|
|
Value of the affiliate commission per product unit calculated expressed in the payment currency.
2Checkout deducts discounts from the costs incurred by shoppers before calculating affiliate commissions.
2Checkout does not take into account shipping costs when calculating affiliate commissions.
NULL when 2Checkout does not apply an affiliate commission. |
||
| VATPercent | Int | ||||
| Percentage of VAT charged on the order. | |||||
| HandlingFeeNetPrice | Int | ||||
| Handling fee applied to your net price configuration. | |||||
| HandlingFeeGrossPrice | Int | ||||
| Handling fee applied to your gross price configuration. | |||||
|
|
|
Currency |
Optional (string) |
||
|
|
|
|
The currency ISO code for the payment - ISO 4217. Example: usd. |
||
|
|
|
NetPrice |
Optional (double) |
||
|
|
|
|
The value per order line, excluding sales tax/VAT expressed in the payment currency. |
||
|
|
|
GrossPrice |
Optional (double) |
||
|
|
|
|
Total value per order line, including sales tax/VAT expressed in the payment currency. UnitGrossPrice does not reflect any discounts. |
||
|
|
|
NetDiscountedPrice |
Optional (double) |
||
|
|
|
|
The NetPrice value per order line, excluding sales tax/VAT, from which 2Checkout deducts discounts. NetDiscountedPrice is expressed in the payment currency. |
||
|
|
|
GrossDiscountedPrice |
Optional (double) |
||
|
|
|
|
Total costs shoppers incur per order line, expressed in the payment currency. This value includes sales tax/VAT, 2Checkout and affiliate commissions, but 2Checkout deducts the value of any discounts.
Example:
|
||
|
|
|
Discount |
Optional (double) |
||
|
|
|
|
Value of the discounts per order line expressed in the payment currency. |
||
|
|
|
VAT |
Optional (double) |
||
|
|
|
|
Value of sales tax/VAT per order line expressed in the payment currency. |
||
|
|
|
AffiliateCommission |
Optional (double) |
||
|
|
|
|
Value of the affiliate commission per order line, calculated from the NetDiscountedPrice expressed in the payment currency. Or NULL. 2Checkout does not take into account shipping costs when calculating affiliate commissions. |
||
| LineItemReference | String | ||||
| System-generated item reference. | |||||
| PurchaseType | String | ||||
|
Possible values:
|
|||||
| ExternalReference | String | ||||
| External order reference that you control. | |||||
|
|
Code |
String |
|||
|
|
|
Unique product identifier your control. Max length 256 characters. |
|||
|
|
Quantity |
Int |
|||
|
|
|
Number of units |
|||
|
|
SKU |
String |
|||
|
|
|
SKU identifier. |
|||
|
|
CrossSell |
Object |
|||
| Details below. | |||||
|
|
|
ParentCode |
String |
||
|
|
|
|
The product code of the master product you set to trigger the campaign. |
||
|
|
|
CampaignCode |
String |
||
|
|
|
|
Unique, system-generated identifier for cross-sell campaigns. |
||
|
|
Trial |
Object |
|||
| Details below. | |||||
|
|
|
Period |
Int |
||
|
|
|
|
The length of the trial subscription lifetime in days. |
||
|
|
|
GrossPrice |
Float |
||
|
|
|
|
Total trial price in the payment currency before 2Checkout deducts any taxes, discounts, etc. |
||
|
|
|
VAT |
Float |
||
|
|
|
|
The total value of taxes for the trial in the payment currency, before 2Checkout deducts any discounts. |
||
|
|
|
NetPrice |
Float |
||
|
|
|
|
Total trial price in the payment currency, not including taxes, before 2Checkout deducts any discounts. |
||
|
|
AdditionalFields |
Array of objects |
|||
| Details below. | |||||
|
|
|
Code |
String |
||
|
|
|
|
The alpha-numeric characters, underscores and dashes that are set as the field identifier. |
||
|
|
|
Text |
String |
||
|
|
|
|
Field text visible to shoppers in the cart. |
||
|
|
|
Value |
String |
||
|
|
|
|
Selected field value. |
||
|
|
Promotion |
Object |
|||
| Details below. | |||||
|
|
|
Name |
String |
||
|
|
|
|
Promotion name. |
||
|
|
|
Description |
String | ||
|
|
|
|
Promotion description. |
||
|
|
|
StartDate |
String | ||
|
|
|
|
The date when you set the promotion to start. NULL for promotions that start immediately after you create them. |
||
|
|
|
EndDate |
String | ||
|
|
|
|
The date when you set the promotion to end. NULL for promotions you want active indefinitely. |
||
|
|
|
MaximumOrdersNumber |
Int |
||
|
|
|
|
2Checkout only applies the promotion to a maximum number of orders you define.
Can be NULL if you want the promotion to apply to an unlimited number of orders. |
||
|
|
|
MaximumQuantity |
Int |
||
|
|
|
|
Discount only applies to a maximum number of units purchased through a single order, smaller than the quantity you defined. Shoppers purchase any extra units at full price. Can be NULL if you want the promotion to apply to an unlimited number units. |
||
|
|
|
InstantDiscount |
Boolean |
||
|
|
|
|
The instant discount option auto-applies the discount for ALL selected products, without the need for shoppers to enter a discount coupon. |
||
|
|
|
Coupon |
String |
||
|
|
|
|
Promotion coupon/voucher. |
||
|
|
|
DiscountLabel |
String | ||
|
|
|
|
Discounts can be set as a percentage from the product price or as a fixed amount in the chosen currency. |
||
|
|
|
Enabled |
String | ||
|
|
|
|
true or false, depending on whether a promotion is active or disabled. |
||
|
|
|
Type |
String | ||
|
|
|
|
|
||
|
Promotions |
Array of objects |
||||
| Details below. | |||||
|
|
Name |
String |
|||
|
|
|
Promotion name. |
|||
|
|
Description |
String | |||
|
|
|
Promotion description. |
|||
|
|
StartDate |
String | |||
|
|
|
The date when you set the promotion to start. NULL for promotions that start immediately after you create them. |
|||
|
|
EndDate |
String | |||
|
|
|
The date when you set the promotion to end. NULL for promotions you want active indefinitely. |
|||
|
|
MaximumOrdersNumber |
Int |
|||
|
|
|
2Checkout only applies the promotion to a maximum number of orders you define.
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 units purchased at once, smaller than the maximum quantity you defined. Shoppers purchase any extra units at full price. Can be NULL if you want the promotion to apply to an unlimited number units. |
|||
|
|
InstantDiscount |
Boolean |
|||
|
|
|
The instant discount option auto-applies the discount for ALL selected products, without the need for shoppers to enter a discount coupon. |
|||
|
|
Coupon |
String |
|||
|
|
|
Promotion coupon/voucher. |
|||
|
|
DiscountLabel |
String |
|||
|
|
|
Discounts can be set as a percentage from the product price or as a fixed amount in the payment currency. |
|||
|
|
Enabled |
String |
|||
|
|
|
true or false, depending on whether a promotion is active or disabled. |
|||
|
|
Type |
String |
|||
|
|
|
|
|||
|
AdditionalFields |
Array of objects |
||||
| Details below. | |||||
|
|
Code |
String |
|||
|
|
|
The alpha-numeric characters, underscores and dashes that are set as the field identifier. |
|||
|
|
Text |
String |
|||
|
|
|
Field text visible to shoppers in the cart. |
|||
|
|
Value |
String |
|||
|
|
|
Selected field value. |
|||
| BillingDetails |
Object Details below |
||||
| Person |
Object Details below |
||||
| FirstName | String | ||||
| Customer first billing name. | |||||
| LastName | String | ||||
| Customer last billing name. | |||||
| CountryCode | String | ||||
| Two-letters code for customer billing country. | |||||
| State | String | ||||
| Customer billing state. | |||||
| City | String | ||||
| Customer billing city. | |||||
| Address1 | String | ||||
| Customer billing address. | |||||
| Address2 | String | ||||
| Customer additional address information. | |||||
| Zip | String | ||||
| Customer billing zip code. | |||||
| String | |||||
| Customer billing email. | |||||
| Phone | String | ||||
| Customer billing phone. | |||||
| Company | String | ||||
| Customer billing company. | |||||
| FiscalCode | String | ||||
| Customer billing fiscal code. | |||||
| DeliveryDetails |
Object Details below |
||||
| Person |
Object Details below |
||||
| Phone | String | ||||
| Customer delivery phone number. | |||||
| FirstName | String | ||||
| Customer delivery first name. | |||||
| LastName | String | ||||
| Customer delivery last name. | |||||
| Company | String | ||||
| Customer delivery company. | |||||
| String | |||||
| Customer delivery email. | |||||
| Address1 | String | ||||
| Customer delivery address. | |||||
| Address2 | String | ||||
| Customer additional delivery address. | |||||
| City | String | ||||
| Customer delivery city. | |||||
| Zip | String | ||||
| Customer delivery zip code. | |||||
| CountryCode | String | ||||
| Customer delivery country code. | |||||
| State | String | ||||
| Customer delivery state. | |||||
| DeliveryInformation |
Object Details below |
||||
| ShippingMethod |
Object Details below |
||||
| Code | String | ||||
| System-generated code assigned to the shipping method. | |||||
| TrackingURL | String | ||||
| Tracking URL assigned to the shipping method. | |||||
| TrackingNumber | String | ||||
| Tracking Number provided to customers, used for obtaining more information about their package. | |||||
| Comment | String | ||||
| Additional information regarding the physical delivery of the product. | |||||
|
Currency |
String |
||||
|
|
The currency ISO code for the payment - ISO 4217. Example: usd. |
||||
|
NetPrice |
Float |
||||
|
|
Order value excluding sales tax/VAT expressed in the payment currency. |
||||
|
GrossPrice |
Float | ||||
|
|
Total order value, including sales tax/VAT expressed in the payment currency. GrossPrice does not reflect any discounts. |
||||
|
NetDiscountedPrice |
Float | ||||
|
|
The NetPrice order value excluding sales tax/VAT, from which 2Checkout deducts discounts. NetDiscountedPrice is expressed in the payment currency. |
||||
|
GrossDiscountedPrice |
Float | ||||
|
|
Total costs shoppers incur, expressed in the payment currency. This value includes sales tax/VAT, 2Checkout and affiliate commissions, but 2Checkout deducts the value of any discounts.
For example:
|
||||
|
Discount |
Float | ||||
|
|
Value of the discounts for an order expressed in the payment currency. |
||||
|
VAT |
Float | ||||
|
|
Value of sales tax/VAT expressed in the payment currency. |
||||
|
AffiliateCommission |
Float | ||||
|
|
Value of the affiliate commission for the order calculated from the NetDiscountedPrice expressed in the payment currency. Or NULL. 2Checkout does not take into account shipping costs when calculating affiliate commissions. |
||||
Authentication
Overview
Use the login method for the authentication process in the 2Checkout system.
Parameters
| Parameters | Type/Description |
|---|---|
|
MerchantCode |
required (string) |
|
|
Your merchant identifier (received from 2Checkout).
|
|
Date |
required (string) |
|
|
GMT ISO Date format (e.g. 2010-01-01 12:13:14)
|
|
Hash |
required (Object) |
|
|
Calculated HMAC_SHA256 signature based on MerchantCode and Date, using your secret key (see example below). |
Response
|
Parameters |
Type/Description |
|---|---|
|
sessionID |
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. |
Request
To create the HMAC_SHA256 source string use your merchant code (available here) and the date of the request, prefixing them with the length in bytes of each respective value, along with your account’s secret key (for UTF-8 characters the length in bytes might be longer that the string length). For example:
|
Parameters |
Type/Description |
|---|---|
|
MerchantCode |
Avangate |
|
|
8AVANGATE
|
|
Date |
2010-05-13 12:12:12 |
|
|
192010-05-13 12:12:12
|
|
HMAC source string |
8AVANGATE192010-05-13 12:12:12
|
|
Secret key |
SECRET_KEY |
|
Calculated HMAC_SHA256 signature based on MerchantCode and Date, using your secret key: |
|
|
bf763db7d333e9c3038698cf59ada3e6 |
|
<?php
$host = "https://api.2checkout.com";
$merchantCode = "YOURCODE123";
//your account's merchant code available in the 'System settings' area of the cPanel:
//https://secure.2checkout.com/cpanel/account_settings.php
$key = "SECRET_KEY";
//your account's secret key available in the 'System settings' area of the cPanel:
//https://secure.2checkout.com/cpanel/account_settings.php
$now = gmdate('Y-m-d H:i:s'); //GMT date format)
$algo = "sha256";
$string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
$hash = hash_hmac($algo, $string, $key);
try {
$client = new SoapClient($host . "/soap/4.0/?wsdl", array(
'location' => $host . "/soap/4.0/",
"stream_context" => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
))
));
$sessionID = $client->login($merchantCode, $now, $hash, $algo);
echo("Auth token: {$sessionID}" . PHP_EOL);
}
catch (SoapFault $e) {
echo "Authentication: " . $e->getMessage() . PHP_EOL;
exit;
}