Update upsell campaign
Overview
Use the updateUpSellCampaign method to update an upsell campaign via JSON-RPC 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];
$jsonRpcRequest = new \stdClass();
$jsonRpcRequest->jsonrpc = '2.0';
$jsonRpcRequest->method = 'updateUpsellCampaign';
$jsonRpcRequest->params = [$sessionID, $upsellCode, $upsell];
$jsonRpcRequest->id = $i++;
$upsellResponse = callRPC($jsonRpcRequest, $host);
Response
Parameters | Type | Description |
---|---|---|
Object |
Object containing information related to the upsell campaigns, including product information and discount settings. |