Create fixed discount
Overview
Use setPromotionDiscount to set a fixed promotion discount.
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 set the discount for. |
|||
promotionDiscount |
Required(Object) |
|||
|
Type |
Required (String) |
||
|
|
Discount type:
|
||
|
Value / Values |
Required (Int / Array of objects) |
||
|
|
|
||
|
|
Value |
Required (Object) |
|
|
|
|
Currency |
Required (String) |
|
|
|
|
Discount currency ISO code (ISO 4217). |
|
|
|
Amount |
Required (Int) |
|
|
|
|
Discount amount in corresponding currency. |
|
DefaultCurrency |
Required (String) |
||
|
|
Default discount currency ISO code (ISO 4217). |
Response
Parameter | Type/Description |
---|---|
promotionDiscount | Object |
Request
<?php declare(strict_types=1); class Configuration { public const MERCHANT_CODE = ''; public const MERCHANT_KEY = ''; public const URL = 'http://api.2checkout.com/soap/6.0'; public const ACTION = 'setPromotionDiscount'; public const ADDITIONAL_OPTIONS = null; public const PROMOTION_CODE = "AB3WMME0UA"; //array or JSON public const PAYLOAD = <<<JSON { "Type": "FIXED", "DefaultCurrency": "USD", "Values": [ { "Currency": "USD", "Amount": 10 }, { "Currency": "EUR", "Amount": 10 } ] } JSON; } class Client { public function call( string $url = Configuration::URL, $payload = Configuration::PAYLOAD, string $action = Configuration::ACTION, string $promotionCode = Configuration::PROMOTION_CODE ): ?object { if (is_array($payload)) { $payload = json_encode($payload); } if (!empty($payload)) { // SoapClient works with objects(StdClass) $payload = json_decode($payload); } $soapClient = $this->getClient($url); $sessionId = $this->getSession($soapClient); $args = array_filter([$sessionId, $promotionCode, $payload]); return $soapClient->$action(...$args); } public function getClient(string $url): SoapClient { return new SoapClient( $url.'?wsdl', [ 'location' => $url, 'cache_wsdl' => WSDL_CACHE_NONE, ] ); } public function getSession(SoapClient $client) { $date = gmdate('Y-m-d H:i:s'); $merchantCode = Configuration::MERCHANT_CODE; $key = Configuration::MERCHANT_KEY; $string = strlen($merchantCode).$merchantCode.strlen($date).$date; $hash = hash_hmac('md5', $string, $key); $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM'); return $client->login($merchantCode, $date, $hash); } } try { $client = new Client(); var_dump($client->call()); } catch (Exception $ex) { var_dump($ex); }