Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
Update Promotion
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));