Newer Version Available
tpm-promotion Component Reference
Namespace
1cgcloudEvents
1{
2 detail : {
3 value: <<new value>>,
4 property: <<the property>>,
5 promotionId: <<promotionId>>,
6 }
7}onfocusedareachange
This event is triggered every time a different area of the application is navigated to.
1{
2 detail : {
3 value: {
4 area: 'PROMOTION_PLANNING',
5 section: 'PROMOTION'
6 },
7 property: 'focusedArea',
8 promotionId: 'a2WTC0000000F772AE',
9 }
10}onisplgridfilteropenchange
This event is triggered every time the P&L Filters are opened (true) or closed (false).
1{
2 detail : {
3 value: true,
4 property: 'isPLGridFilterOpen',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}onstatuschange
This event is triggered every time the tpm promotion component lifecycle state changes. Status changes are triggered by lifecycle operations on the Promotion record.
1{
2 detail : {
3 value: 'VALID',
4 property: 'status',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}oncalculationstatuschange
This event is triggered every time the promotion grids are calculated or recalculated.
1{
2 detail : {
3 value: 'LOADING',
4 property: 'calculationStatus',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}oneditmodechange
This event is triggered every time the edit mode changes for the page.
1{
2 detail : {
3 value: true,
4 property: 'editMode',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}onselectedtacticidchange
This event is triggered every time the focused tactic changes.
1{
2 detail : {
3 value: 'a37TC00000014j8YAA',
4 property: 'tacticId',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}onpromotionchange
This event is triggered every time any the promotion attributes change.
1{
2 detail : {
3 value: {
4 IsNew: false, // Flag to indicate if the record is new
5 IsDeleted: false, // Flag to indicate if the record is deleted
6 Id : 'a2WTC0000000F772AE', // Record id
7 cgcloud__Slogan__c: 'Sample Promotion', // Record attribute.
8 // All Promotion record fields will be present as attributes
9 ...
10 },
11 property: 'promotion',
12 promotionId: 'a2WTC0000000F772AE',
13 }
14}oneffectivecategorieschange
This event is triggered every time the promotion effective categories change.
1{
2 detail : {
3 value: [ // Array of Category product ids
4 "01t17000001siy5AAA"
5 ],
6 property: 'effectiveCategories',
7 promotionId: 'a2WTC0000000F772AE',
8 }
9}oneffectivebrandschange
This event is triggered every time the promotion effective brands change.
1{
2 detail : {
3 value: [ // Array of Brand product ids
4 "01t17000001siy5AAA"
5 ],
6 property: 'effectiveBrands',
7 promotionId: 'a2WTC0000000F772AE',
8 }
9}ontacticschange
This event is triggered any time any of the Tactic attributes change.
1{
2 detail : {
3 value: [ // An array of objects
4 {
5 IsNew: false, // Flag to indicate if the record is new
6 IsDeleted: false, // Flag to indicate if the record is deleted
7 Id : 'a37TC00000014j8YAA', // Record id
8 cgcloud__Comment__c: 'Sample Tactic', // Record attribute.
9 // All Tactic record fields will be present as attributes
10 ...
11 // Additional Fields
12 ProductFilter: {...}, // contains the Tactic Product Filter
13 EffectiveCategories: [...] // List of Effective categories for the tactic
14 EffectiveBrands: [...] // List of Effective brands for the tactic
15 },
16 ...
17 ],
18 property: 'tactics',
19 promotionId: 'a2WTC0000000F772AE',
20 }
21}ontacticfundschange
This event is triggered any time any of the Tactic Fund properties change.
1{
2 detail : {
3 value: [ // An array of objects
4 {
5 IsNew: false, // Flag to indicate if the record is new
6 IsDeleted: false, // Flag to indicate if the record is deleted
7 Id : 'a38TC00000014j8YAA', // Record id
8 cgcloud__Fund__c: 'a39TC00000014j8YAA', // Record attribute. Reference to the Fund__c record
9 cgcloud__Tactic__c: 'a37TC00000014j8YAA', // Record attribute. Reference to the Tactic__c record
10 // All Tactic Fund record fields will be present as attributes
11 ...
12 },
13 ...
14 ],
15 property: 'tacticFunds',
16 promotionId: 'a2WTC0000000F772AE',
17 }
18}onpromotionattachmentlinkschange
This event is triggered any time any of the Promotion Attachment Link properties change.
1{
2 detail : {
3 value: [ // An array of objects
4 {
5 IsNew: false, // Flag to indicate if the record is new
6 IsDeleted: false, // Flag to indicate if the record is deleted
7 Id : 'a40TC00000014j8YAA', // Record id
8 cgcloud__Promotion_Attachment__c: 'a41TC00000014j8YAA', // Record attribute. Reference to the Promotion_Attachment__c record
9 // All Tactic Fund record fields will be present as attributes
10 ...
11 },
12 ...
13 ],
14 property: 'promotionAttachmentLinks',
15 promotionId: 'a2WTC0000000F772AE',
16 }
17}onpromotionattachmentschange
This event is triggered any time any of the Promotion Attachment properties change.
1{
2 detail : {
3 value: [ // An array of objects
4 {
5 IsNew: false, // Flag to indicate if the record is new. Promotion attachments cannot be flagged as new
6 IsDeleted: false, // Flag to indicate if the record is deleted. Promotion attachments cannot be flagged as deleted
7 Id : 'a41TC00000014j8YAA', // Record id
8 cgcloud__Description_Language_1__c: 'Sample Attachment', // Record attribute. Reference to the Promotion_Attachment__c record
9 // All Tactic Fund record fields will be present as attributes
10 ...
11 },
12 ...
13 ],
14 property: 'promotionAttachments',
15 promotionId: 'a2WTC0000000F772AE',
16 }
17}onpromotioncategorieschange
This event is triggered any time the promotion categories change.
1{
2 detail : {
3 value: [ "01t17000001siy5AAA" ],
4 property: 'promotionCategories',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}onparticipatingcustomerschange
This event is triggered any time the promotion participating customers change. The participating customers list is used on determining the customers the Promotion will be pushed during the push process.
1{
2 detail : {
3 value: [ // Array of items
4 {
5 "included": true, // Is Included?
6 "externalid": "Supermarkets" // External id of the Participating Customer
7 }
8 ],
9 property: 'participatingCustomers',
10 promotionId: 'a2WTC0000000F772AE',
11 }
12}ontacticconditioncreationdefinitionschange
This event is triggers any time the Tactic Condition Creation Definitions for the tactics included in the Promotion change Value is an array with Tactic Condition Creation Definition SObject records:
1{
2 detail : {
3 value: [ // An array of objects
4 {
5 IsNew: false, // Flag to indicate if the record is new
6 IsDeleted: false, // Flag to indicate if the record is deleted
7 Id : 'a50TC00000014j8YAA', // Record id
8 cgcloud__Tactic__c: 'a37TC00000014j8YAA', // Record attribute.
9 // All Tactic condition creation definition record fields will be present as attributes
10 ...
11 },
12 ...
13 ],
14 property: 'tacticConditionCreationDefinitions',
15 promotionId: 'a2WTC0000000F772AE',
16 }
17}oncustomstatechange
This event is triggered every time the custom state changes. Custom State is a special area of the promotion state where customers can set their custom structures that will be sent to Salesforce to be processed and committed at the same time as the promotion.
1{
2 detail : {
3 value: {...} // Custom object
4 property: 'customState',
5 promotionId: 'a2WTC0000000F772AE',
6 }
7}tpm-promotion Component Reference Methods
The following are methods for tpm-promotion Component Reference.
generateTactic
API Version
55
Signature
generateTactic(tacticTemplateId)
Example Implementation
1component.generateTactic('a43TC00000014j8YAA') // tactic Id as parameter
2 .then((tactic) => {
3 // Add the tactic to the Promotion component
4 Object.keys(tactic).forEach((key) => {
5 component.setTacticField(tactic.Id, key, tactic[key]);
6 });
7 });navigateTo
API Version
55
Signature
getProperty(target)
Example Implementation
1component.getProperty('promotion');
2
3// Returns a Javascript object with attributes mapped to all promotion SObject
4// attributes
5// {
6// IsNew: false, // Flag to indicate if the record is new
7// IsDeleted: false, // Flag to indicate if the record is deleted
8// Id : 'a2WTC0000000F772AE', // Record id
9// cgcloud__Slogan__c: 'Sample Promotion', // Record attribute.
10// // All Promotion record fields will be present as attributes
11// ...
12// }push
API Version
55
Signature
push()
Example Implementation
1// Create callback functions
2const onBeforeSaveCallback = (data) => console.log('onBeforeSave', data.operation === 'push');
3const onAfterSaveCallback = (data) => console.log('onAfterSave', data.operation === 'push');
4const onAfterPushCallback = () => console.log('onAfterPush');
5const onErrorCallback = (error) => console.log('onError', error);
6
7// Setup callback functions
8component.setCallback('onBeforeSave', onBeforeSaveCallback);
9component.setCallback('onAfterSave', onAfterSaveCallback);
10component.setCallback('onAfterPush', onAfterPushCallback);
11component.setCallback('onError', onErrorCallback);
12
13component.push();
14
15// If the promotion is not pushable, onErrorCallback will be executed with an error message
16
17// onBeforeSaveCallback is executed
18// Data is saved to SFDC
19// onAfterSaveCallback is executed
20// Promotion Push process is scheduled
21// onAfterPushCallback is executedreload
API Version
55
Signature
reload()
Example Implementation
1component.reload();
2
3// Component will enter the "LOADING" state. After all data is reloaded from
4// SFDC, component will enter the "VALID" state.removeCallback
API Version
55
Signature
removeCallback(event, callback)
Example Implementation
1const onBeforeSaveCallback = () => console.log('onBeforeSave');
2
3// Setup callback functions
4component.setCallback('onBeforeSave', onBeforeSaveCallback);
5
6// Remove the callback
7component.removeCallback('onBeforeSave', onBeforeSaveCallback);save
API Version
55
Signature
save()
Example Implementation
1// Create callback functions
2const onBeforeSaveCallback = (data) => console.log('onBeforeSave', data.operation === 'save');
3const onAfterSaveCallback = (data) => console.log('onAfterSave', data.operation === 'save');
4const onAfterSyncCallback = () => console.log('onAfterSync');
5
6// Setup callback functions
7component.setCallback('onBeforeSave', onBeforeSaveCallback);
8component.setCallback('onAfterSave', onAfterSaveCallback);
9component.setCallback('onAfterSync', onAfterSyncCallback);
10
11component.save();
12
13// onBeforeSaveCallback is executed
14// Data is saved to SFDC
15// onAfterSaveCallback is executed
16// Promotion is synchronized fo Processing Services
17// onAfterSyncCallback is executedselectTactic
API Version
55
Signature
selectTactic(tacticId)
Example Implementation
1component.selectTactic('a37TC00000014j8YAA');
2
3// After executing, the TPM UI will focus the tactic 'a37TC00000014j8YAA'setCallback
API Version
55
Signature
setCallback(tacticFunds)
Example Implementation
1// Resolved promise
2
3// Create callback functions
4const onBeforeSaveCallback = (data) => {
5 return new Promise((resolve, reject) => {
6 window.setTimeout(() => {
7 resolve();
8 }, 2000);
9 });
10};
11const onErrorCallback = (error) => console.log('onError', error);
12
13// Setup callback functions
14component.setCallback('onBeforeSave', onBeforeSaveCallback);
15component.setCallback('onError', onErrorCallback);
16
17component.save();
18
19// onBeforeSaveCallback is executed
20// Process wait the returned promise is resolved
21// Data is saved to SFDC
22// Save process continues
23
24// Rejected promise
25
26// Create callback functions
27const onBeforeSaveCallback = (data) => {
28 return new Promise((resolve, reject) => {
29 window.setTimeout(() => {
30 reject(new Error('My Error'));
31 }, 2000);
32 });
33};
34const onErrorCallback = (error) => console.log('onError', error);
35
36// Setup callback functions
37component.setCallback('onBeforeSave', onBeforeSaveCallback);
38component.setCallback('onError', onErrorCallback);
39
40component.save();
41
42// onBeforeSaveCallback is executed
43// Process wait the returned promise is resolved
44// Promise is rejected
45// onErrorCallback is executed with the rejected errorsetCustomState
API Version
55
Signature
setCustomState(customState)
Example Implementation
1component.setCustomState(
2 Object.assign({},
3 oldCustomState, // Create a new object using the old one as baseline
4 {
5 myProp: 'Test'
6 }
7 )
8);setEditMode
API Version
55
Signature
setEditMode(value)
Example Implementation
1component.setEditMode(true);
2
3// After executing, the TPM UI will set the promotion into edit mode
4
5component.setEditMode(false);
6
7// After executing, the TPM UI will set the promotion into read only modesetParticipatingCustomers
API Version
55
Signature
setParticipatingCustomers(participatingCustomers)
Example Implementation
1component.setParticipatingCustomers([ // Array of items
2 {
3 "included": true, // Is Included?
4 "externalid": "Supermarkets" // External id of the Participating Customer
5 }
6]);setPLGridFilterOpen
API Version
55
Signature
setPLGridFilterOpen(value)
Example Implementation
1component.setPLGridFilterOpen(true);
2
3// After executing, the TPM UI will open the PL Grid filters
4
5component.setPLGridFilterOpen(false);
6
7// After executing, the TPM UI will close the PL Grid filterssetPromotionAttachmentLinks
API Version
55
Signature
setPromotionAttachmentLinks(attachmentLinks)
Example Implementation
1component.setPromotionAttachmentLinks([ // An array of objects
2 {
3 IsNew: false, // Flag to indicate if the record is new
4 IsDeleted: false, // Flag to indicate if the record is deleted
5 Id : 'a40TC00000014j8YAA', // Record id of the Promotion Attachment Link record
6 cgcloud__Promotion_Attachment__c: 'a41TC00000014j8YAA', // Record attribute.
7 // Reference to the Promotion_Attachment__c record
8 // All Tactic Fund record fields will be present as attributes
9 ...
10 },
11 ...
12]);setPromotionAttachments
API Version
55
Signature
setPromotionAttachments(attachments)
Example Implementation
1component.setPromotionAttachments([ // An array of objects
2 {
3 IsNew: false, // Flag to indicate if the record is new. Promotion attachments cannot be flagged as new
4 IsDeleted: false, // Flag to indicate if the record is deleted. Promotion attachments cannot be flagged as deleted
5 Id : 'a41TC00000014j8YAA', // Record id of Promotion Attachment record
6 cgcloud__Description_Language_1__c: 'Sample Attachment', // Record attribute. Reference to the Promotion_Attachment__c record
7 // All Tactic Fund record fields will be present as attributes
8 ...
9 },
10 ...
11]);setPromotionCategories
API Version
55
Signature
setPromotionCategories(categories)
Example Implementation
1component.setPromotionCategories([ // Array
2 '01t17000001siy5AAA' // Product2 Id referencing a Category record
3]);setPromotionField
API Version
55
Signature
setPromotionField(field, value)
Example Implementation
1component.setPromotionField(
2 'cgcloud__Slogan_Language_1__c', // Field name
3 'Test Slogan' // value
4);setSubAccounts
API Version
55
Signature
setSubAccounts(subAccounts)
Example Implementation
1component.setParticipatingCustomers([ // Array of items
2 {
3 "volume": 50, // Percent of volume for this sub account.
4 // Sum of included sub accounts volume must be 100 or less
5 "included": true, // Is Included?
6 "externalid": "Supermarkets" // External id of the SubAccount
7 }
8]);setTacticConditionCreationDefinitions
API Version
55
Signature
setTacticConditionCreationDefinitions(tacticConditionCreationDefinitions)
Example Implementation
1component.setTacticConditionCreationDefinitions([ // An array of objects
2 {
3 IsNew: false, // Flag to indicate if the record is new
4 IsDeleted: false, // Flag to indicate if the record is deleted
5 Id : 'a50TC00000014j8YAA', // Record id
6 cgcloud__Tactic__c: 'a37TC00000014j8YAA', // Record attribute.
7 // All Tactic condition creation definition record fields will be present as attributes
8 ...
9 },
10 ...
11]);setTacticField
API Version
55
Signature
setTacticField(tacticId, field, value)
Example Implementation
1component.setTacticField(
2 'a37TC00000014j8YAA', // Tactic field to set
3 'cgcloud__Comment__c', // Field name
4 'Sample Tactic' // value
5);setTacticFunds
API Version
55
Signature
setTacticFunds(tacticFunds)
Example Implementation
1component.setTacticFunds(
2 [ // An array of objects
3 {
4 IsNew: false, // Flag to indicate if the record is new
5 IsDeleted: false, // Flag to indicate if the record is deleted
6 Id : 'a38TC00000014j8YAA', // Record id
7 cgcloud__Fund__c: 'a39TC00000014j8YAA', // Record attribute. Reference to the Fund__c record
8 cgcloud__Tactic__c: 'a37TC00000014j8YAA', // Record attribute. Reference to the Tactic__c record
9 // All Tactic Fund record fields will be present as attributes
10 ...
11 },
12 ...
13]);