Get Global Account Product List

Retrieves the account products from the global account product list based on the volumes and measures for the customer for the account.
A product is included in a global list if one of these criteria is met.
  • Volume or condition record exists for the product.
  • The product is included in a promotion that's created for the customer.
Resource
1GET_GLOBAL_ACCOUNT_PRODUCT_LIST
Available version
55.0
Request Parameters
Name Type Description Required or Optional
accountId String ID of the account record from Salesforce. Required
Apex Request Example
1// Logical endpoint name
2String endpointName = 'GET_GLOBAL_ACCOUNT_PRODUCT_LIST';
3// name of the salesorg for which the API must be scheduled
4String salesOrg = '0001';
5<namespace>.OffplatformCallout callout = new <namespace>.OffplatformCallout(endpointName, salesOrg);
6
7// Log Transaction Id
8String txId = <namespace>.TransactionHandler.getTransactionIdentifier();
9
10// Account Id for which the products in the global apl should be retrieved
11Id accountId = '001B000001Q48yMIAR'; // Kroger Atlanta
12
13Map<String, String> urlParameters = new Map<String,String>();
14urlParameters.put('accountid', accountId);
15
16String payload = null;
17
18<namespace>.OffplatformCalloutResponse response = callout.execute(txId, urlParameters, payload);
19
20if (response.status != 200) {
21   // Handle error and return error info to caller
22  
23} 
24// Fetch the list from the response
25Set<Id> accountproducts = new Set<Id>();
26String aplListString = (String) response.Result;
27if (!String.isEmpty(aplListString)) {
28    Map<String, Object> mapAccountProductList = (Map<String, Object>) JSON.deserializeUntyped(
29        aplListString
30    );
31    List<Object> listAccountProductListIds = (List<Object>) mapAccountProductList.get(
32    'accountproducts'
33    );
34    for (Object obj : listAccountProductListIds) {
35    accountproducts.add((Id) obj);
36    }
37}