Add a subscription plan/product
Use the addProduct method to create subscription plans/products for your 2Checkout account in SOAP API 4.
Parameters
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. |
Required (object) |
|
|
Use this object to configure your subscription plans/products.
You can set all Product parameters except 2CheckoutID and GroupName. The 2Checkout system sets the unique product ID. The 2CheckoutID and GroupName not editable. |
Mandatory parameters
ProductName ProductCode PricingConfigurations
Response
bool(true)
Request
<?php $host = "https://api.2checkout.com"; $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 ) )) )); function hmac($key, $data) { $b = 64; // byte length for md5 if (strlen($key) > $b) { $key = pack("H*", md5($key)); } $key = str_pad($key, $b, chr(0x00)); $ipad = str_pad('', $b, chr(0x36)); $opad = str_pad('', $b, chr(0x5c)); $k_ipad = $key ^ $ipad; $k_opad = $key ^ $opad; return md5($k_opad . pack("H*", md5($k_ipad . $data))); } $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'); //date_default_timezone_set('UTC') $string = strlen($merchantCode) . $merchantCode . strlen($now) . $now; $hash = hmac($key, $string); try { $sessionID = $client->login($merchantCode, $now, $hash); } catch (SoapFault $e) { echo "Authentication: " . $e->getMessage(); exit; } $Product = new stdClass(); $Product->2CheckoutId = null; $Product->ProductCode = 'API_Imported_1234567899'; $Product->ProductType = 'REGULAR'; $Product->ProductName = 'API_Subscription Imported New'; $Product->ProductVersion = '1.0'; //Shipping classes /* $Product->ShippingClass = new stdClass(); $Product->ShippingClass->Name = '2o9rlujkvg'; $Product->ShippingClass->Amount = 89.40; $Product->ShippingClass->Currency = 'GBP'; $Product->ShippingClass->ApplyTo = 'ct29dr3fj4'; $Product->ShippingClass->Type = 'bii521vp6k'; */ $Product->GiftOption = false; $Product->ShortDescription = 'Placeat cumque necessitatibus est minus praesentium ut non quibusdam. Molestias provident tempore eligendi mollitia quia.'; $Product->LongDescription = 'Corrupti inventore vitae nesciunt ab. Nemo cum non maiores. Non repudiandae est iste voluptatibus.'; $Product->SystemRequirements = null; $Product->ProductCategory = null; $Product->Platforms = array(); $Product->Platforms[0] = new stdClass(); $Product->Platforms[0]->PlatformName = null; $Product->Platforms[0]->Category = null; $Product->Platforms[1] = new stdClass(); $Product->Platforms[1]->PlatformName = null; $Product->Platforms[1]->Category = null; $Product->ProductImages = array(); $Product->ProductImages[0] = new stdClass(); $Product->ProductImages[0]->URL = null; $Product->ProductImages[0]->Default = false; $Product->ProductImages[1] = new stdClass(); $Product->ProductImages[1]->URL = null; $Product->ProductImages[1]->Default = true; $Product->TrialUrl = null; $Product->TrialDescription = null; $Product->Enabled = True; //Product additional fields /* $Product->AdditionalFields = array(); $Product->AdditionalFields[0] = new stdClass(); $Product->AdditionalFields[0]->Label = 'i44wak1dzp'; $Product->AdditionalFields[0]->Code = 'ITYAK0OEWJ'; $Product->AdditionalFields[0]->Enabled = false; $Product->AdditionalFields[0]->Required = false; $Product->AdditionalFields[0]->URLParameter = 'id1ktigl6d'; $Product->AdditionalFields[1] = new stdClass(); $Product->AdditionalFields[1]->Label = 'aig699lmo1'; $Product->AdditionalFields[1]->Code = 'V28TP07PQN'; $Product->AdditionalFields[1]->Enabled = false; $Product->AdditionalFields[1]->Required = true; $Product->AdditionalFields[1]->URLParameter = '8to9p6y54j'; */ //Product localization /* $Product->Translations = array(); $Product->Translations[0] = new stdClass(); $Product->Translations[0]->Name = 'zsg7wtg4e5'; $Product->Translations[0]->Description = 'Voluptate iure ut quam omnis impedit. Deserunt facere id dolores doloribus quis. Minima nostrum ut possimus incidunt vel est sint. Odit tempora omnis iste nesciunt commodi accusantium placeat.'; $Product->Translations[0]->Language = 'pt'; $Product->Translations[0]->LongDescription = 'Pariatur molestiae sit dignissimos modi. Aut modi libero numquam repudiandae. Doloribus explicabo delectus fugiat amet. Excepturi quo consequatur sint adipisci.'; $Product->Translations[0]->SystemRequirements = 'c16tvyg88c'; $Product->Translations[0]->TrialUrl = 'UNCAUGHT TYPE: anyURI'; $Product->Translations[0]->TrialDescription = 'Voluptas rem sit ut voluptas molestias quidem ut. Maiores facilis tempora voluptates. Consequuntur illum recusandae hic magni iste.'; $Product->Translations[1] = new stdClass(); $Product->Translations[1]->Name = 'cv2sx15aby'; $Product->Translations[1]->Description = 'Ut distinctio asperiores et a placeat voluptatem et. Et eveniet temporibus aut vel. Nemo occaecati praesentium dolor fugiat rerum assumenda expedita.'; $Product->Translations[1]->Language = 'fr'; $Product->Translations[1]->LongDescription = 'Et ut nostrum molestiae voluptates soluta. Molestiae cum in ut qui. Voluptatem voluptates vero odit quia corporis. In impedit eligendi sed expedita nihil temporibus nobis.'; $Product->Translations[1]->SystemRequirements = 'cfv2amk25j'; $Product->Translations[1]->TrialUrl = 'UNCAUGHT TYPE: anyURI'; $Product->Translations[1]->TrialDescription = 'Voluptatem ut possimus consequatur iste. Recusandae id quia sed quibusdam aut debitis. Cupiditate harum architecto quod quia.'; */ $Product->PricingConfigurations = array(); $Product->PricingConfigurations[0] = new stdClass(); $Product->PricingConfigurations[0]->Default = false; $Product->PricingConfigurations[0]->Code = null; $Product->PricingConfigurations[0]->Name = 'API Pricing Configuration Test'; $Product->PricingConfigurations[0]->BillingCountries = array(); $Product->PricingConfigurations[0]->PricingSchema = 'DYNAMIC'; $Product->PricingConfigurations[0]->PriceType = 'NET'; $Product->PricingConfigurations[0]->DefaultCurrency = 'USD'; $Product->PricingConfigurations[0]->Prices = new stdClass(); $Product->PricingConfigurations[0]->Prices->Regular = array(); $Product->PricingConfigurations[0]->Prices->Regular[0] = new stdClass(); $Product->PricingConfigurations[0]->Prices->Regular[0]->Amount = 100; $Product->PricingConfigurations[0]->Prices->Regular[0]->Currency = 'USD'; $Product->PricingConfigurations[0]->Prices->Regular[0]->MinQuantity = 1; $Product->PricingConfigurations[0]->Prices->Regular[0]->MaxQuantity = 10; $Product->PricingConfigurations[0]->Prices->Regular[0]->OptionCodes = array(); $Product->PricingConfigurations[0]->Prices->Regular[1] = new stdClass(); $Product->PricingConfigurations[0]->Prices->Regular[1]->Amount = 200; $Product->PricingConfigurations[0]->Prices->Regular[1]->Currency = 'USD'; $Product->PricingConfigurations[0]->Prices->Regular[1]->MinQuantity = 11; $Product->PricingConfigurations[0]->Prices->Regular[1]->MaxQuantity = 100; $Product->PricingConfigurations[0]->Prices->Regular[1]->OptionCodes = array(); $Product->PricingConfigurations[0]->Prices->Renewal = array(); $Product->PricingConfigurations[0]->Prices->Renewal[0] = new stdClass(); $Product->PricingConfigurations[0]->Prices->Renewal[0]->Amount = 50; $Product->PricingConfigurations[0]->Prices->Renewal[0]->Currency = 'USD'; $Product->PricingConfigurations[0]->Prices->Renewal[0]->MinQuantity = 1; $Product->PricingConfigurations[0]->Prices->Renewal[0]->MaxQuantity = 10; $Product->PricingConfigurations[0]->Prices->Renewal[0]->OptionCodes = array(); $Product->PricingConfigurations[0]->Prices->Renewal[1] = new stdClass(); $Product->PricingConfigurations[0]->Prices->Renewal[1]->Amount = 60; $Product->PricingConfigurations[0]->Prices->Renewal[1]->Currency = 'USD'; $Product->PricingConfigurations[0]->Prices->Renewal[1]->MinQuantity = 11; $Product->PricingConfigurations[0]->Prices->Renewal[1]->MaxQuantity = 100; $Product->PricingConfigurations[0]->Prices->Renewal[1]->OptionCodes = array(); $Product->PricingConfigurations[0]->PriceOptions = array(); /* $Product->BundleProducts = array(); $Product->BundleProducts[0] = new stdClass(); $Product->BundleProducts[0]->ProductCode = '540Q45PQBN'; $Product->BundleProducts[0]->ProductId = 48439; $Product->BundleProducts[1] = new stdClass(); $Product->BundleProducts[1]->ProductCode = 'PA3JDB5SZ2'; $Product->BundleProducts[1]->ProductId = 46439; */ $Product->Fulfillment = 'NO_DELIVERY'; $Product->Prices = array(); $Product->GeneratesSubscription = True; $Product->SubscriptionInformation = new stdClass(); $Product->SubscriptionInformation->DeprecatedProducts = array(); $Product->SubscriptionInformation->BundleRenewalManagement = null; $Product->SubscriptionInformation->BillingCycle = 1; $Product->SubscriptionInformation->BillingCycleUnits = 'M'; $Product->SubscriptionInformation->IsOneTimeFee = false; $Product->SubscriptionInformation->ContractPeriod = new stdClass(); $Product->SubscriptionInformation->ContractPeriod->Period = -1; $Product->SubscriptionInformation->ContractPeriod->PeriodUnits = 'days'; $Product->SubscriptionInformation->ContractPeriod->IsUnlimited = TRUE; $Product->SubscriptionInformation->ContractPeriod->Action = 'RESTART'; $Product->SubscriptionInformation->ContractPeriod->EmailsDuringContract = 'altenwerth.elise@gmail.com'; //$Product->SubscriptionInformation->UsageBilling = 77; $Product->SubscriptionInformation->GracePeriod = new stdClass(); $Product->SubscriptionInformation->GracePeriod->Type = 'GLOBAL'; $Product->SubscriptionInformation->GracePeriod->Period = 14; $Product->SubscriptionInformation->GracePeriod->PeriodUnits = 'D'; $Product->SubscriptionInformation->GracePeriod->IsUnlimited = false; $Product->SubscriptionInformation->RenewalEmails = new stdClass(); $Product->SubscriptionInformation->RenewalEmails->Type = 'CUSTOM'; $Product->SubscriptionInformation->RenewalEmails->Settings = new stdClass(); $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal = new stdClass(); $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->Before30Days = true; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->Before15Days = true; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->Before7Days = true; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->Before1Day = false; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->OnExpirationDate = true; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->After5Days = false; $Product->SubscriptionInformation->RenewalEmails->Settings->ManualRenewal->After15Days = false; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal = new stdClass(); $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->Before30Days = true; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->Before15Days = false; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->Before7Days = false; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->Before1Day = false; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->OnExpirationDate = true; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->After5Days = false; $Product->SubscriptionInformation->RenewalEmails->Settings->AutomaticRenewal->After15Days = true; $Product->FulfillmentInformation = new stdClass(); $Product->FulfillmentInformation->IsStartAfterFulfillment = false; $Product->FulfillmentInformation->IsElectronicCode = false; $Product->FulfillmentInformation->IsDownloadLink = false; $Product->FulfillmentInformation->IsBackupMedia = false; $Product->FulfillmentInformation->IsDownloadInsuranceService = false; $Product->FulfillmentInformation->IsInstantDeliveryThankYouPage = false; $Product->FulfillmentInformation->IsDisplayInPartnersCPanel = false; /* $Product->FulfillmentInformation->CodeList = new stdClass(); $Product->FulfillmentInformation->CodeList->Code = '5C6F821DA1'; $Product->FulfillmentInformation->CodeList->Name = 'General delivery'; $Product->FulfillmentInformation->CodeList->Type = 'STATIC'; */ //$Product->FulfillmentInformation->BackupMedia = new stdClass(); //$Product->FulfillmentInformation->ProductFile = new stdClass(); /* $Product->FulfillmentInformation->AdditionalInformationByEmail = 'arlene03@hotmail.com'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations = array(); $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[0] = new stdClass(); $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[0]->Name = 'kbaa1aj7po'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[0]->Description = 'Velit delectus sed amet sunt. Sunt deserunt quos recusandae consequuntur est. Velit aut optio error eius rerum. Nihil ipsam possimus ipsum dolores consequatur adipisci.'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[0]->Language = 'fr'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[1] = new stdClass(); $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[1]->Name = 'l4ocvz9wwa'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[1]->Description = 'Esse voluptatem delectus officiis eos quas asperiores. Quas non hic reiciendis enim. Consequatur similique recusandae laboriosam et autem.'; $Product->FulfillmentInformation->AdditionalInformationEmailTranslations[1]->Language = 'pt'; $Product->FulfillmentInformation->AdditionalThankYouPage = 'rvlhvkmxkp'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations = array(); $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[0] = new stdClass(); $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[0]->Name = 'rl981w4nua'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[0]->Description = 'Qui explicabo molestiae dolorem consequuntur. Ullam maiores temporibus vitae. Totam eos et consequatur. Est sit minima animi nam ut aut.'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[0]->Language = 'en'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[1] = new stdClass(); $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[1]->Name = 'qye8hlwz3e'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[1]->Description = 'Id est rerum deserunt non et quia magnam. Minus aut nostrum dicta est officiis quia. Commodi nobis sit porro accusamus rerum quis. Fugit et asperiores eum.'; $Product->FulfillmentInformation->AdditionalThankYouPageTranslations[1]->Language = 'fr'; */ try { $NewSubscriptionPlan = $client->addProduct($sessionID, $Product); } catch (SoapFault $e) { echo "AddedProductInfo: " . $e->getMessage(); exit; } var_dump("AddedProductInfo", $NewSubscriptionPlan); ?>