Update Promotion

Updates the details of a given promotion in the promotion cache (without calculation).
Soft limits:
  • Maximum number of products managed by promotion is based on PromotionMaxManagedProducts. Default value is 900.
Resource
1UPDATE_PROMOTION
Available version
55.0
Apex Request Example
1String salesOrg = '0001';
2String endpointName = 'UPDATE_PROMOTION';
3Id promoId = 'promotionId';
4cgcloud__Promotion__c promo = [SELECT Id, cgcloud__Anchor_Account__c, cgcloud__Date_From__c, cgcloud__Date_Thru__c, cgcloud__Delivery_Date_From__c, cgcloud__Delivery_Date_Thru__c, cgcloud__Placement_Date_From__c, cgcloud__Placement_Date_Thru__c, cgcloud__Commit_Date__c, cgcloud__Promotion_Template__c FROM cgcloud__Promotion__c WHERE Id=:promoId LIMIT 1];
5String payload = JSON.serialize(new Map<String, Object>{
6    'promotionid'=>promo.Id,
7    'phase'=>'Planning',
8    'active'=>true,
9    'version'=>2,
10    'isfrozen'=>false,
11    'accoundsetid'=>null,
12    'accountid'=>promo.cgcloud__Anchor_Account__c,
13    'commitdate'=>Datetime.newInstanceGmt(promo.cgcloud__cgcloud__Commit_Date__c.year(), promo.cgcloud__cgcloud__Commit_Date__c.month(), promo.cgcloud__cgcloud__Commit_Date__c.day()).getTime(),
14    'datefrom'=>Datetime.newInstanceGmt(promo.cgcloud__cgcloud__Date_From__c.year(), promo.cgcloud__Date_From__c.month(), promo.cgcloud__Date_From__c.day()).getTime(),
15    'datethru'=>Datetime.newInstanceGmt(promo.cgcloud__Date_Thru__c.year(), promo.cgcloud__Date_Thru__c.month(), promo.cgcloud__Date_Thru__c.day()).getTime(),
16    'manualcalculationinput'=>new Map<String, Object>(),
17    'instoredatefrom'=>Datetime.newInstanceGmt(promo.cgcloud__Placement_Date_From__c.year(), promo.cgcloud__Placement_Date_From__c.month(), promo.cgcloud__Placement_Date_From__c.day()).getTime(),
18    'instoredatethru'=>Datetime.newInstanceGmt(promo.cgcloud__Placement_Date_Thru__c.year(), promo.cgcloud__Placement_Date_Thru__c.month(), promo.cgcloud__Placement_Date_Thru__c.day()).getTime(),
19    'shipmentdatefrom'=>Datetime.newInstanceGmt(promo.cgcloud__Delivery_Date_From__c.year(), promo.cgcloud__Delivery_Date_From__c.month(), promo.cgcloud__Delivery_Date_From__c.day()).getTime(),
20    'shipmentdatethru'=>Datetime.newInstanceGmt(promo.cgcloud__Delivery_Date_Thru__c.year(), promo.cgcloud__Delivery_Date_Thru__c.month(), promo.cgcloud__Delivery_Date_Thru__c.day()).getTime(),
21    'promotiontemplateid'=>promo.cgcloud__Promotion_Template__c,
22    'salesorg'=>salesOrg,
23    'aggregationcategory'=>null,
24    'calculationmode' => 'Writeback',
25    'firstdayofweek' => 1,
26    'firstweekofyear' => 1,
27    'productgrouplevels' => new List<String>{'Category'}
28});
29<namespace>.OffPlatformCallout request = new <namespace>.OffPlatformCallout(endpointName, salesOrg);
30<namespace>.OffPlatformCalloutResponse response = request.execute(
31    <namespace>.TransactionHandler.getTransactionIdentifier(),
32    null,
33    payload
34);
35
36system.debug(JSON.serialize(response));