Add products to a promotion
Overview
Use addPromotionProducts to add products to 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. |
|
promotionProducts |
Required (object) |
|
|
Code |
Required (string) |
|
|
System generated product code. |
|
pricingConfigurationCode |
Optional (string) |
|
|
System generated pricing configuration code. |
|
pricingOptionCodes |
Optional (array of strings) |
|
|
Pricing option codes that you control. |
Response
Parameter | Type/Description |
---|---|
promotionProducts | Object |
Request
<?php class Client { protected static $merchantCode; protected static $loginDate; protected static $hash; protected static $baseUrl; protected static $callCount = 0; protected static $sessionId = ''; protected static $client; public static function setCredentials($code, $key) { static::$merchantCode = $code; static::$loginDate = gmdate('Y-m-d H:i:s'); static::$hash = hash_hmac('md5', strlen($code) . $code . strlen(static::$loginDate) . static::$loginDate, $key); static::$sessionId = static::login(); } public static function setBaseUrl($url) { static::$baseUrl = $url; } public static function login() { $client = static::getClient(); return $client->login(static::$merchantCode, static::$loginDate, static::$hash); } public static function __callStatic($name, $arguments = array()) { $client = static::getClient(); array_unshift($arguments, static::$sessionId); $response = call_user_func_array(array($client, $name), $arguments); return $response; } protected static function getClient() { $opts = array( 'http'=> ['user_agent' => 'PHPSoapClient'], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, ], ); if (null === static::$client) { static::$client = new \SoapClient(static::$baseUrl . '?wsdl', [ 'location' => static::$baseUrl, 'cache_wsdl' => WSDL_CACHE_NONE, 'stream_context' => stream_context_create($opts), ]); } return static::$client; } } Client::setBaseUrl('https://api.avangate.com/soap/3.1/'); Client::setCredentials('YOUR_MERCHANT_CODE', 'YOUR_SECRET_KEY'); Client::login(); // Define first product to add to promotion $products1 = new stdClass; $products1->Code = 'YOUR_PRODUCT_CODE'; $products1->PricingConfigurationCode = 'YOUR_PRICING_CONFIGURATION_CODE'; $products1->PricingOptionCodes = ['code1','code2','code3']; // Define second product to add to promotion $products2 = new stdClass; $products2->Code = 'YOUR_PRODUCT_CODE2'; $products2->PricingConfigurationCode = 'YOUR_PRICING_CONFIGURATION_CODE2'; $promotionProducts = [$products1, products2]; // Array of product objects to be added to the promotion // Retrieve promotion details $promotionCode = 'YOUR_PROMOTION_CODE'; // code of the promotion that you want to add products to $response = Client::addPromotionProducts($promotionCode,$promotionProducts); var_dump($response);