...
The Campaign Item Calculation API is implemented as Apex class and is exposed as REST web service by using Salesforce standard functionality (see Apex Developer Guide for more information). For general information about the Campaign Item calculations, see 4.5 Net Calculator . The Campaign Item Calculation functionality calculates the net and gross amounts (B3-N3) and also calculates values in package Campaign Items.
...
| Lucidchart | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
| Code Block |
|---|
{
"campaignItems":[
{
"Id":"a0Y2K00000Fe82gUAB",
"ADvendio__Quantity_Discount_custom__c":10.0
}
]
} |
Response
| Code Block |
|---|
[ { "attributes": { "type": "ADvendio__Campaign_Item__c", "url": "/services/data/v49v50.0/sobjects/ADvendio__Campaign_Item__c/a0Y2K00000Fe82gUABa0w7Y00000oiqINQAY" }, "Id":"a0Y2K00000Fe82gUAB", "ADvendio__SalesRateDiscount1AbsCustom_Price__c":100.000000000 null, "ADvendio__SurchargeSalesPricePctAmount_B3APEX__c":-20 0.0003, "ADvendio__QuantityVatAmount__c":1000.00 0E-9, "ADvendio__FrequencyRateDiscount2AbsCustom__c":1 null, "ADvendio__Amount_B3APEXTaxableAmountType__c":80000.00 null, "ADvendio__AmountRateDiscount3AbsCustom_B2APEX__c":80000.00 null, "ADvendio__AmountAPEXRateDiscount4AbsCustom__c":80000.00 null, "ADvendio__QuantityAmount_DiscountB2APEX_custom__c":10 0.0000000000003, "ADvendio__AmountRateDiscount1Abs_netAPEX__c":72000 0.00, "ADvendio__AC__c":false,Name": "Google Video Delivery Data", "ADvendio__AgencyAC_Commission__c":"10", false, "ADvendio__Amountfrom_netDate_netAPEX__c":72000.00, "2022-01-01", "ADvendio__Amount_net3APEXnetAPEX__c":72000 0.0003, "ADvendio__from_DateVatAmountB__c":"2020-06-26", 0E-9, "ADvendio__untilSurchargeSalesPrice_Date__c":"2020-07-02", null, "ADvendio__VatAmountRateDiscount4Abs__c":0E-9, 0.00, "ADvendio__VatAmountBSortOrder__c":0E-9 9999.0, "ADvendio__RateDiscount1AbsFrequency__c":8000 1.000, "ADvendio__RateDiscount2AbsSurchargeB3Abs__c":0.00, null, "ADvendio__RateDiscount3AbsVatRate__c":0.00 null, "ADvendio__RateDiscount4AbsPacketItem__c":0.00 null, "ADvendio__Guaranteed_ThirdPartyCommissionAbsAI__c":0.00 null, "ADvendio__Quantity__c": 100.0, "RecordTypeId "ADvendio__Billing_category__c": "012A00000012g4fIAACPM", "CurrencyIsoCode":"EUR" "ADvendio__RateCalculationQuantity__c": null, } ] |
Simple request for a new Campaign Item (virtual Campaign Item)
A simple request with a Campaign Item we want to create, to calculate the amounts.
Call Amount calculation web service
| Code Block |
|---|
curl https://<my-domain-name>.my.salesforce.com/services/apexrest/ADvendio/ADvendio__Campaign_Item__c/DoCalculations/ -H 'Authorization: Bearer <SESSION_ID>' -H "Content-Type: application/json" -H 'X-PrettyPrint:1' -d @requestBody.txt --request PATCH |
...
| Code Block |
|---|
{ "campaignItems":[ { "ADvendio__from_Date__c":"2020-06-26", "ADvendio__Agency_Commission__c": "15", "ADvendio__ThirdPartyCommissionCustom__c": null, "Id": "a0w7Y00000oiqINQAY", "ADvendio__DstRate__c": null, "ADvendio__VatRateB__c": null, "ADvendio__SurchargeB2Abs__c": null, "ADvendio__Quantity_Discount_custom__c": 10.0, "ADvendio__Ad_Price__r": { "attributes": { "type": "ADvendio__Ad_price__c", "url": "/services/data/v50.0/sobjects/ADvendio__Ad_price__c/a0T7Y000005TxIQUA0" }, "ADvendio__NoThirdPartyCommission__c": false, "ADvendio__NoAgencyComission__c": false, "ADvendio__NoCustomerDiscount__c": false, "ADvendio__NoAgencyDiscount__c": false, "ADvendio__Ad_Spec__c": "a0R7Y00000Bi9J6UAJ", "ADvendio__Ad_Spec__r": { "attributes": { "type": "ADvendio__Ad_Specs__c", "url": "/services/data/v50.0/sobjects/ADvendio__Ad_Specs__c/a0R7Y00000Bi9J6UAJ" }, "ADvendio__NoThirdPartyCommission__c": false, "ADvendio__No_Quantity_Discount__c": false, "ADvendio__No_Agency_Discount__c": false, "ADvendio__NoAgencyComission__c": false, "ADvendio__No_Customer_Discount__c": false, "Id": "a0R7Y00000Bi9J6UAJ" }, "ADvendio__NoQuantityDiscount__c": false, "Id": "a0T7Y000005TxIQUA0" }, "ADvendio__Rate_Discount_4__c": null, "ADvendio__Media_Campaign__c": "a217Y000004lOHJQA2", "ADvendio__AmountAPEX__c": 0.03, "ADvendio__AgencyEarnings__c": null, "ADvendio__DstAmount__c": 0, "RecordType": { "attributes": { "type": "RecordType", "url": "/services/data/v50.0/sobjects/RecordType/0127Y000002Kg5VQAS" }, "Id": "0127Y000002Kg5VQAS", "DeveloperName": "Standard", "NamespacePrefix": "ADvendio" }, "ADvendio__SurchargeB3__c": null, "ADvendio__RateDiscount2Abs__c": 0.00, "ADvendio__Rate_Discount_2_custom__c": null, "RecordTypeId": "0127Y000002Kg5VQAS", "ADvendio__Ad_Price__c": "a0T7Y000005TxIQUA0", "ADvendio__Prorated__c": null, "ADvendio__ThirdPartyCommissionAbs__c": 0.00, "ADvendio__Rate_Discount_3_custom__c": null, "ADvendio__SurchargeSalesPricePct__c": null, "ADvendio__Amount_net3APEX__c": 0.03, "ADvendio__Amount_net_netAPEX__c": 0.03, "ADvendio__until_Date__c": "2022-12-31", "ADvendio__SurchargeB2__c": null, "ADvendio__Sales_Price__c": 0.34, "ADvendio__RateDiscount3Abs__c": 0.00 } ] |
Simple request for a new Campaign Item (virtual Campaign Item)
A simple request with a Campaign Item we want to create, to calculate the amounts.
Call Amount calculation web service
| Code Block |
|---|
curl https://<my-domain-name>.my.salesforce.com/services/apexrest/ADvendio/ADvendio__Campaign_Item__c/DoCalculations/ -H 'Authorization: Bearer <SESSION_ID>' -H "Content-Type: application/json" -H 'X-PrettyPrint:1' -d @requestBody.txt --request PATCH |
requestBody.txt
| Code Block |
|---|
{
"campaignItems": [
{
"ADvendio__from_Date__c": "2023-05-22",
"ADvendio__until_Date__c": "2023-05-28",
"ADvendio__Quantity__c": 1.00,
"ADvendio__Sales_Price__c": 100.000000000,
"ADvendio__Quantity_Discount_custom__c": 10.0,
"ADvendio__Ad_Price__c": "a0T7Y000005TxIWUA0",
"ADvendio__Billing_category__c": "CPW"
}
]
} |
Response
| Code Block |
|---|
[ { "attributes": { "type": "ADvendio__Campaign_Item__c", "url": "/services/data/v50.0/sobjects/ADvendio__Campaign_Item__c/a0w000000000002" }, "ADvendio__Amount_B3APEX__c": 100.00, "ADvendio__VatAmount__c": null, "ADvendio__RateDiscount1AbsCustom__c": null, "ADvendio__SurchargeB2Abs__c": null, "ADvendio__Quantity_Discount_custom__c": 10.0, "ADvendio__Ad_Price__r": { "attributes": { "type": "ADvendio__Ad_price__c", "url": "/services/data/v50.0/sobjects/ADvendio__Ad_price__c/a0T7Y000005TxIWUA0" }, "ADvendio__NoThirdPartyCommission__c": false, "ADvendio__NoAgencyComission__c": false, "ADvendio__NoCustomerDiscount__c": false, "ADvendio__NoAgencyDiscount__c": false, "ADvendio__Ad_Spec__c": "a0R7Y00000Bi9JBUAZ", "ADvendio__Ad_Spec__r": { "attributes": { "type": "ADvendio__Ad_Specs__c", "url": "/services/data/v50.0/sobjects/ADvendio__Ad_Specs__c/a0R7Y00000Bi9JBUAZ" }, "ADvendio__NoThirdPartyCommission__c": false, "ADvendio__No_Quantity_Discount__c": false, "ADvendio__No_Agency_Discount__c": false, "ADvendio__NoAgencyComission__c": false, "ADvendio__No_Customer_Discount__c": false, "Id": "a0R7Y00000Bi9JBUAZ" }, "ADvendio__NoQuantityDiscount__c": false, "Id": "a0T7Y000005TxIWUA0" }, "ADvendio__RateDiscount2AbsCustom__c": null, "ADvendio__Rate_Discount_4__c": null, "ADvendio__Media_Campaign__c": "a21000000000001", "ADvendio__AmountAPEX__c": 100.00, "ADvendio__AgencyEarnings__c": null, "ADvendio__RateDiscount3AbsCustom__c": null, "ADvendio__Amount_B2APEX__c": 100.00, "ADvendio__untilRateDiscount4AbsCustom_Date__c":"2020-07-02", null, "ADvendio__RateDiscount1Abs__c": 10.00, "ADvendio__QuantityAC__c":1000.00 false, "ADvendio__Salesfrom_PriceDate__c":100.000000000, "2023-05-22", "ADvendio__QuantityAmount_DiscountnetAPEX_custom__c":10 90.000, "ADvendio__Ad_PriceDstAmount__c": "a0HA000000LYVkZMAX"0, "ADvendio__BillingVatAmountB_category__c": null, : "CPM" } ] } |
...
| Code Block |
|---|
["ADvendio__SurchargeB3__c": null, { "attributesADvendio__SurchargeSalesPrice__c":{ null, "type":"ADvendio__Campaign_ItemADvendio__Rate_Discount_2_custom__c": null, "url":"/services/data/v49.0/sobjects/ADvendio__Campaign_Item "ADvendio__RateDiscount2Abs__c/a0Y2K00000Fe82gUAB": 0.00, }, "ADvendio__SalesRateDiscount4Abs_Price__c":100 0.00000000000, "ADvendio__Ad_SurchargeSalesPricePctPrice__c":0.00 "a0T7Y000005TxIWUA0", "ADvendio__QuantityFrequency__c":1000.00 null, "ADvendio__FrequencyThirdPartyCommissionAbs__c":1 0.00, "ADvendio__Amount_B3APEXSurchargeB3Abs__c":100000.00 null, "ADvendio__Amount_B2APEXQuantity__c":100000 1.000, "ADvendio__AmountAPEXGuaranteed_AI__c":100000.00 null, "ADvendio__QuantityBilling_Discount_customcategory__c":10.00000000000, "CPW", "ADvendio__Amount_netAPEXRate_Discount_3_custom__c":90000.00 null, "ADvendio__ACSurchargeSalesPricePct__c":false null, "ADvendio__Agency_Commission__c": "100", "ADvendio__Amount_net_netAPEX__c":90000 90.00, "ADvendio__Amount_net3APEX__c":90000 90.00, "ADvendio__from_Date__c":"2020-06-26", "ADvendio__until_DateThirdPartyCommissionCustom__c":"2020-07-02", "ADvendio__VatAmount__c":0E-9 null, "ADvendio__until_VatAmountBDate__c":0E-9 "2023-05-28", "ADvendio__RateDiscount1AbsSurchargeB2__c":0.00, null, "ADvendio__Sales_RateDiscount2AbsPrice__c": 100.0.00, "ADvendio__RateDiscount3Abs__c":0.00 "Id": "a0w000000000002", "ADvendio__RateDiscount4AbsDstRate__c":0.00 null, "ADvendio__ThirdPartyCommissionAbsRateDiscount3Abs__c": 0.00 } ] |
Simple request for new Campaign Items (virtual Campaign Items) in the same Media Campaign
...
System.debug(CheckAvailabilityService.getFakeId(MediaCampaign__c.SObjectType));
Then the following request can be used:
...
_
...
_
...
c.SObjectType));
Then the following request can be used:
| Code Block |
|---|
{ "campaignItems": [ "ADvendio__Quantity__c": 10.0, { "ADvendio__Salesfrom_PriceDate__c": 5.0"2023-05-22", "ADvendio__Billinguntil_categoryDate__c" : "CPM2023-05-28", "ADvendio__MediaQuantity_Campaign__c" : "a1E000000000001" }1.00, { "ADvendio__AdSales_Price__c": "a0HA000000LYVkZMAX"100.000000000, "ADvendio__Quantity_Discount_custom__c": 3010.0, "ADvendio__SalesAd_Price__c": 1.0"a0T7Y000005TxIWUA0", "ADvendio__Billing_category__c" : "CPMCPW", "ADvendio__Media_Campaign__c" : "a1E000000000001"}, { } ] } |
Simple request for a Package
A simple request with an existing Campaign Item to calculate the amounts for a package.
Call Amount calculation web service
| Code Block |
|---|
curl https://<my-domain-name>.my.salesforce.com/services/apexrest/ADvendio/ADvendio__Campaign_Item__c/DoCalculations/ -H 'Authorization: Bearer <SESSION_ID>' -H "Content-Type: application/json" -H 'X-PrettyPrint:1' -d @requestBody.txt --request PATCH |
| Code Block |
|---|
{ "ADvendio__from_Date__c": "2001-01-01", "ADvendio__until_Date__c": "2002-02-02", "campaignItemsADvendio__Quantity__c": [1.00, {"ADvendio__Sales_Price__c": 100.000000000, "Id" : "a0Y2K00000EwtA4UAJ"ADvendio__Quantity_Discount_custom__c": 10.0, "ADvendio__Ad_Price__c": "a0HA000000SmzxzMABa0T7Y000005TxIWUA0", "ADvendio__QuantityBilling_category__c": 1, "CPW" } ] "ADvendio__Sales_Price__c": 10002, "ADvendio__Billing_category__c" : "Fixed Price", "ADvendio__Media_Campaign__c" : "a1E000000000001" },} |
Simple request for a Package
A simple request with an existing Campaign Item to calculate the amounts for a package.
Call Amount calculation web service
| Code Block |
|---|
curl https://<my-domain-name>.my.salesforce.com/services/apexrest/ADvendio/ADvendio__Campaign_Item__c/DoCalculations/ -H 'Authorization: Bearer <SESSION_ID>' -H "Content-Type: application/json" -H 'X-PrettyPrint:1' -d @requestBody.txt --request PATCH |
| Code Block |
|---|
{ "campaignItems": [ { {"Id": "a0w7Y00000oirY1QAI", "ADvendio__PacketItemfrom_Date__c" : "a0Y2K00000EwtA4UAJ2023-05-22", "ADvendio__Aduntil_PriceDate__c": "a0HA000000SmzsCMAR", "2023-05-28" }, "ADvendio__Quantity__c": 1, { "ADvendio__Sales_Price__cId": "a0w7Y00000oirY3QAI" 10000, }, "ADvendio__Billing_category__c" : "Fixed Price",{ "ADvendio__Media_Campaign__c" Id": "a1E000000000001a0w7Y00000oirY4QAI" } ] } |
Usage in Apex
| Code Block |
|---|
List<ADvendio__Campaign_Item__c> cis = ... cis = ADvendio.ItemCalculationsService.doCalculations(cis); |
...