Update upsell campaign
Overview
Use the updateUpSellCampaign method to update an upsell campaign via SOAP API 6.0.
Request Parameters
| Parameter Name | Type | Required/Optional | Description | 
|---|---|---|---|
| sessionId | String | Required | Unique 2Checkout session ID code. | 
| Code | String | Required | The code of the upsell campaign in UUID format. | 
| UpsellCampaign | Object | Required | New upsell campaign definition. | 
| Name | String | Required | Name of campaign, max 500 characters. | 
| StartDate | String | Optional | The date when the up-sell campaign starts, in the YYYY-MM-DD format. Can be NULL (starts immediately after enabling). | 
| EndDate | String | Optional | The date when the up-sell campaign ends, in the YYYY-MM-DD format. Can be NULL (ends immediately after disabling). | 
| DisplayForManualRenewals | Boolean/Integer | Required | Flag to control if the campaign will be displayed for manual subscription renewal orders. Can be set as true/false/0/1. | 
| Discount | Object | Required | Discount definition object, details below: | 
| Type | String | Required | Type of discount. Can be FIXED or PERCENT. | 
| Value | Integer | Required | Percentage discount value (PERCENT discount only). | 
| Values | Array of objects | Required | List of currency discounts (FIXED discount only), details below: | 
| Currency | String | Required | Code of Currency for the related amount. | 
| Amount | Integer | Required | Discount amount value for the related currency. | 
| DefaultCurrency | String | Required | Code of default Currency (FIXED discount only). | 
| PrimaryProduct | Object | Required | Main (primary) product object, details below: | 
| Code | String | Required | The code of the product that the recommendation is made for. | 
| Quantity | Integer | Required | The quantity for the primary product. Can be 0 (standing for any quantity). | 
| PriceOptions | Array of objects | Optional | Price options list for the primary product, details below: | 
| Code | String | Required | Price option group code. | 
| Options | Array of objects | Optional | Price options list, details below: | 
| Code | String | Required | Price option code. | 
| Value | Integer | Optional | Price option value (for scale interval price option group only). | 
| RecommendedProduct | Object | Required | Recommended product object, details below: | 
| Code | String | Required | The code of the recommended product. | 
| Quantity | Integer | Required | The quantity for the recommended product. Can be 0 (standing for “match quantity” setting). | 
| PriceOptions | Array of objects | Optional | Price options list for the recommended product, details below: | 
| Code | String | Required | Price option group code. | 
| Options | Array of objects | Optional | Price options list, details below: | 
| Code | String | Required | Price option code. | 
| Value | Integer | Optional | Price option value (for scale interval price options group only). | 
| Enabled | Boolean/Integer | Required | Sets the campaign enabled or disabled. Can be set as true/false/0/1. | 
| Description | Array of objects | Required | List of campaign language descriptions, details below: | 
| Language | String | Required | Code of the language. | 
| Text | String | Required | The text of the description in the associated language. | 
Request example
<?php
require ('PATH_TO_AUTH');
$upsell = new \stdClass();
$upsellCode = 'fc580e11-09e4-483f-b73e-cd0f460bcd9d';
$upsell->Name = 'December 2020 upsell campaign’;
$upsell->StartDate = '2020-12-21';
$upsell->EndDate = '2020-12-25';
$upsell->DisplayForManualRenewals = false;
// setup percent discount
$discountPercent = new \stdClass();
$discountPercent->Type = 'PERCENT';
$discountPercent->Value = 5;
// setup fixed discount
$discountFixed = new \stdClass();
$discountFixed->Type = 'FIXED';
$discountValues = [
    'USD' => 10,
    'EUR' => 8,
    'TRY' => 80,
    'RUB' => 1100,
];
$dv = [];
foreach ($discountValues as $curr => $amt) {
    $disc = new \stdClass();
    $disc->Currency = $curr;
    $disc->Amount = $amt;
    $dv[] = $disc;
}
$discountFixed->Values = $dv;
// assign discount
$upsell->Discount = $discountPercent;
# OR
# $upsell->Discount = $discountFixed;
// setup primary product
$primaryProduct = new \stdClass();
$primaryProduct->Code = $productCode;
$primaryProduct->Quantity = 1;
$ppPriceOptionGroup1 = new \stdClass();
$ppPriceOptionGroup1->Code = 'OPTGRP2';
$ppPriceOptionGroup1Option = new \stdClass();
$ppPriceOptionGroup1Option->Code = 'OptGrp2Code2';
$ppPriceOptionGroup1->Options = [$ppPriceOptionGroup1Option];
$ppPriceOptionGroup2 = new \stdClass();
$ppPriceOptionGroup2->Code = 'interval_scale_grp1';
$ppPriceOptionGroup2Option = new \stdClass();
$ppPriceOptionGroup2Option->Code = 'interval_scale_grp1-1-10';
$ppPriceOptionGroup2Option->Value = '6';
$ppPriceOptionGroup2->Options = [$ppPriceOptionGroup2Option];
$primaryProduct->PriceOptions = [$ppPriceOptionGroup1, $ppPriceOptionGroup2];
$upsell->PrimaryProduct = $primaryProduct;
// setup recommended product
$recommProduct = new \stdClass();
$recommProduct->Code = $recProductCode;
$recommProduct->Quantity = 0; // stands for “match quantity” 
$rpPriceOptionGroup1 = new \stdClass();
$rpPriceOptionGroup1->Code = 'CHECKB_LIST';
$rpPriceOptionGroup1Option1 = new \stdClass();
$rpPriceOptionGroup1Option1->Code = 'chk1';
$rpPriceOptionGroup1Option2 = new \stdClass();
$rpPriceOptionGroup1Option2->Code = 'chk3';
$rpPriceOptionGroup1->Options = [$rpPriceOptionGroup1Option1, $rpPriceOptionGroup1Option2];
$recommProduct->PriceOptions = [$rpPriceOptionGroup1];
$upsell->RecommendedProduct = $recommProduct;
$upsell->Enabled = true;
// setup languagte descriptions / texts
$enDescription = new \stdClass();
$enDescription->Language = 'EN';
$enDescription->Text = 'Buy <!--{RECOMMENDED_PRODUCT_NAME}--> for just <!--{RECOMMENDED_PRODUCT_PRICE}--> until Dec 25th';
$upsell->Description = [$enDescription];
try {
    $upsellResponse = $client->updateUpsellCampaign($sessionID, $upsellCode, $upsell);
} catch (SoapFault $e) {
    echo  'SOAP Exception caught: ' . $e->getMessage()
}
Response
| Parameters | Type | Description | 
|---|---|---|
| Object | Object containing information related to the upsell campaigns, including product information and discount settings. |