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. 2Checkout 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 2Checkout 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/3.0/?wsdl", array(
    'location' => $host . "/soap/3.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;
}
$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);
?>