Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
documentToken
pageCount1
autoUpdatefalse
alignleft
typerich
autoSize1
macroIdda9bea7b-f36d-4d44-a9c3-590765b04680
pagesinstanceIdConfluence:7754241159
pages
width700
documentIddocumentToken719158b6-f2d6-44e1-86dd-9386affccbf6|105874146|1561362476|PaohlJJOG8YUppHi49DKilorGvegvujs1MKGNUXfOak=
documentId719158b6-f2d6-44e1-86dd-9386affccbf6|105874146|1561362476|PaohlJJOG8YUppHi49DKilorGvegvujs1MKGNUXfOak=
updated1597754768640
height500

...

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);

...