Save prices
Overview
Use the savePrices method to update product prices for a specific pricing configuration.
Parameters
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. |
Prices |
Array of BasicPrice objects |
|
Details below. |
Quantities |
QuantityInterval object |
|
Details below. |
PriceOptions |
Array of PriceOptionsAssigned objects |
|
Details below. Required for FLAT (without base price) pricing configurations. Is NULL for DYNAMIC (with base price) pricing configurations. |
PricingConfig |
Required (PricingConfigurationIdentifier object) |
|
System-generated unique pricing configuration code. |
type |
Require (string) • REGULAR • RENEWAL |
BasicPrice |
Object |
Currency |
String |
|
The currency ISO code used for shipping costs - ISO 4217. |
Amount |
Decimal |
|
Basic price. |
QuantityInterval |
Object |
MinQuantity |
Int |
|
The minimum quantity of volume discounts. Default is 1. |
MaxQuantity |
Int |
|
The maximum quantity of volume discounts. Default is 99999. |
PriceOptionsAssigned |
Object |
Code |
String |
|
Price option identifier. |
Options |
String |
|
The pricing options group option code you configured that the Avangate system uses to calculate product prices for pricing configurations without a base price. |
PricingConfigurationIdentifier |
Object |
ProductCode |
String |
|
The unique product code that you control. |
Country |
String |
|
The country assigned to the pricing configuration you’re editing. |
Response
bool(true)
Request
<?php $host = "https://api.avangate.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.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 $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; } $Prices = array(); $Prices[0] = new stdClass(); $Prices[0]->Currency = 'USD'; $Prices[0]->Amount = 999.99; $Prices[1] = new stdClass(); $Prices[1]->Currency = 'EUR'; $Prices[1]->Amount = 111.99; $Quantities = new stdClass(); $Quantities->MinQuantity = 1; $Quantities->MaxQuantity = 99999; $PriceOptions = null; /* $PriceOptions = array(); $PriceOptions[0] = new stdClass(); $PriceOptions[0]->Code = '04WCPNHWQ5'; $PriceOptions[0]->Options = array(); $PriceOptions[0]->Options[0] = 'loqmhwcpwk'; $PriceOptions[0]->Options[1] = 'n7332ux312'; $PriceOptions[1] = new stdClass(); $PriceOptions[1]->Code = '4CU1OVAGAA'; $PriceOptions[1]->Options = array(); $PriceOptions[1]->Options[0] = 'dvk7hv62jg'; $PriceOptions[1]->Options[1] = 'uf1svzaxcd'; */ $PricingConfig = new stdClass(); $PricingConfig->ProductCode = 'NewSubscriptionPlan_Code_12345'; $PricingConfig->Country = null; $type = 'REGULAR'; try { $NewPrice = $client->savePrices($sessionID, $Prices, $Quantities, $PriceOptions, $PricingConfig, $type); } catch (SoapFault $e) { echo "NewPrice: " . $e->getMessage(); exit; } var_dump("NewPrice", $NewPrice); ?>