Create an upsell campaign
Overview
Use the createUpSellCampaign method to create an upsell campaign via JSON-RPC API 6.0.
Request parameters
Parameters | Type | Required/Optional | Description |
---|---|---|---|
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 option 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. |
Response parameters
Parameters | Type | Description |
---|---|---|
Object |
Object containing information related to the upsell campaigns, including product information and discount settings. |
Request sample
<?php require ('PATH_TO_AUTH'); $upsell = new \stdClass(); $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 = 'createUpsellCampaign'; $jsonRpcRequest->params = [$sessionID, $upsell]; $jsonRpcRequest->id = $i++; $upsellResponse = callRPC($jsonRpcRequest, $host);