Add a subscription plan/product
Use the addProduct method to create subscription plans/products for your Avangate account.
Parameters
Parameters | Type/Description |
---|---|
sessionID |
Required (string) |
|
Session identifier, the output of the Login method. Include sessionID into all your requests. Avangate throws an exception if the values are incorrect. The sessionID expires in 10 minutes. |
Required (object) |
|
|
Use this object to configure your subscription plans/products.
You can set all Product parameters except AvangateID and GroupName. The Avangate system sets the unique product ID. The AvangateID and GroupName are not editable. |
Mandatory parameters
ProductName ProductCode PricingConfigurations
Response
bool(true)
Request
<?php function callRPC($Request, $hostUrl, $Debug = true) { $curl = curl_init($hostUrl); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSLVERSION, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json')); $RequestString = json_encode($Request); curl_setopt($curl, CURLOPT_POSTFIELDS, $RequestString); if ($Debug) { $RequestString; } $ResponseString = curl_exec($curl); if ($Debug) { $ResponseString; } if (!empty($ResponseString)) { // var_dump($ResponseString); $Response = json_decode($ResponseString); if (isset($Response->result)) { return $Response->result; } if (!is_null($Response->error)) { var_dump($Request->method, $Response->error); } } else { return null; } } $host = 'https://api.avangate.com/rpc/3.0/'; $merchantCode = "YOURCODE12345";//your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php $key = "SECRET_KEY";//your account's secret key available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php $string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s'); $hash = hash_hmac('md5', $string, $key); $i = 1; // counter for api calls // Call the login method for authentication $jsonRpcRequest = new stdClass(); $jsonRpcRequest->jsonrpc = '2.0'; $jsonRpcRequest->method = 'login'; $jsonRpcRequest->params = array($merchantCode, gmdate('Y-m-d H:i:s'), $hash); $jsonRpcRequest->id = $i++; $sessionID = callRPC($jsonRpcRequest, $host); $Product = new stdClass(); $Product->AvangateId = 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'; */ $jsonRpcRequest = array ( 'jsonrpc' => '2.0', 'id' => $i++, 'method' => 'addProduct', 'params' => array($sessionID, $Product) ); $addedProduct = callRPC($jsonRpcRequest, $host); var_dump ($addedProduct); ?>