This Apex class provides programmatic access to the retail order sObject, and its related sObjects.
Namespace
1cgcloud
Example Implementation
1cgcloud.RE_Order Order;
Supported Methods
getOrder()
Returns the RE_Order.Record instance with the order contents.
API Version: 59.0
Signature: global RE_Order.Record getOrder()
Example
1global class RetailOrderSaveCustomization implements System.Callable {2 public Object call(String m, Map<String, Object> params) {3 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');4 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder().getRecord();56 System.debug(order.Customer_Order_Id__c);7 return null;8 }9}
getOrderItems()
Returns the List<RE_Order.Record> instances with order items.
API Version: 59.0
Signature: global List<RE_Order.Record> getOrderItems()
Example
1public with sharing class RetailOrderSaveCustomization implements System.Callable {2 public Object call(String m, Map<String, Object> params) {3 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');4 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder().getRecord();5 List<cgcloud.RE_Order.Record> orderItemRecords = (List<cgcloud.RE_Order.Record>) orderWrapper.getOrderItems();67 if (orderItemRecords != null) {8 for (cgcloud.RE_Order.Record orderItemRecord : orderItemRecords) {9 cgcloud__Order_Item__c orderItem = (cgcloud__Order_Item__c) orderItemRecord.getRecord();1011 System.debug(orderItem.Delivery_Date__c);12 }13 }14 }15}
List<RE_Order.Record> getOrderItems()
Returns filtered List<RE_Order.Record> instances with order items.
API Version: 59.0
Signature: global List<RE_Order.Record> getOrderItems(Boolean includeNew, Boolean includeDirty, Boolean includeDeleted)
Example
1global class RetailOrderSaveCustomization implements System.Callable {2 public Object call(String m, Map<String, Object> params) {3 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');4 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder().getRecord();5 List<cgcloud.RE_Order.Record> orderItemRecords = (List<cgcloud.RE_Order.Record>) orderWrapper.getOrderItems(6 true,7 true,8 false9 );1011 if (orderItemRecords != null) {12 for (cgcloud.RE_Order.Record orderItemRecord : orderItemRecords) {13 cgcloud__Order_Item__c orderItem = (cgcloud__Order_Item__c) orderItemRecord.getRecord();1415 System.debug(orderItem.Delivery_Date__c);16 }17 }18 return null;19 }20}
append(SObject record)
Appends a custom sObject record to the RE_Order instance. When the order object gets saved, this record is inserted, updated, or deleted, depending on the RE_Order.Record instance state.
API Version: 59.0
Signature: global RE_Order.Record append(SObject record)
Example
1global class RetailOrderSaveCustomization implements System.Callable {2 public Object call(String m, Map<String, Object> params) {3 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');4 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder().getRecord();56 // Append a new SObject to be saved7 MyCustomObject__c mySObject = new MyCustomObject__c();8 mySObject.Field1__c = 'test1';9 mySObject.Duration__c = 23;1011 cgcloud.RE_Order.Record myRecordWrapper = orderWrapper.append(mySObject);1213 // Add a relationship to the Order__c record14 orderWrapper.addRelationship(15 myRecordWrapper,16 MyCustomObject__c.Order__c,17 orderWrapper.getOrder()18 );19 return null;20 }21}
Notifies the RE_Order instance about a relationship between two records.
Avoid using direct DML manipulations for records that are part of the transactional state of an order. During the order save process, the records provided by the RE_Order instances use temporary IDs for records that aren’t still in the database. Using the methods provided by the RE_Order object ensures that all relationships and IDs are properly resolved before committing.
API Version: 59.0
Signature: global void addRelationship(RE_Order.Record child, SObjectField relationField, RE_Order.Record parent)
Example
1global class RetailOrderSaveCustomization implements System.Callable {2 public Object call(String m, Map<String, Object> params) {3 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');4 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder().getRecord();56 // Append a new SObject to be saved7 MyCustomObject__c mySObject = new MyCustomObject__c();8 mySObject.Field1__c = 'test1';9 mySObject.Duration__c = 23;1011 cgcloud.RE_Order.Record myRecordWrapper = orderWrapper.append(mySObject);1213 // Add a relationship to the Order__c record14 orderWrapper.addRelationship(15 myRecordWrapper,16 MyCustomObject__c.Order__c,17 orderWrapper.getOrder()18 );19 return null;20 }21}
registerWork(DoWork work)
Adds work to be executed after the order is committed to the database. Use this method to perform additional operations after all the order-related records are correctly committed to the database. For information on the RE_Order.DoWork interface methods, see RE_Order.DoWork Interface
API Version: 59.0
Signature: global void registerWork(DoWork work)
Example
1global class RetailOrderSaveCustomization implements System.Callable {2 public class MyAfterCommitWork implements cgcloud.RE_Order.DoWork {3 cgcloud__Order__c m_order = null;45 MyAfterCommitWork(cgcloud__Order__c order) {6 m_order = order;7 }89 // This method will be called after the order and related record10 // changes are committed to the database.11 // If any error is thrown during the execution of doWork, the transaction12 // will be rolled back13 global override void doWork() {14 system.debug('Im here!');15 }16 }1718 public Object call(String m, Map<String, Object> params) {19 cgcloud.RE_Order orderWrapper = (cgcloud.RE_Order) params.get('order');20 cgcloud__Order__c order = (cgcloud__Order__c) orderWrapper.getOrder()21 .getRecord();2223 orderWrapper.registerWork(new MyAfterCommitWork(order));24 return null;25 }26}