ccrz.ccApiSiteIndex.fetch

Executes a SOQL query of site index records, and returns a list of records that match you query.

Compatibility

This reference applies to:

Release Managed Package Version API Version
B2B Commerce for Visualforce Winter ’21 4.13 12
B2B Commerce for Visualforce Spring ’20 4.12 11
B2B Commerce for Visualforce Summer ’19 4.11 10
B2B Commerce for Visualforce Spring ’19 4.10 9
B2B Commerce for Visualforce Summer ’18 4.9 8

You can still call older versions of the API for this method, which can accept different input keys or return different output keys. Any differences in behavior for older versions aren't documented in this topic.

Note

Signature

global static Map<String, Object> fetch(Map<String, Object>)

Service Layer Classes

Data Service Provider
ccrz.ccServiceSiteIndex

Inputs (Required)

Map<String, Object> that must include the following required keys:

ccrz.ccApi.API_VERSION
The version of the B2B Commerce for Visualforce API to reference for the method call. We recommend that you use the ccrz.ccApi.CURRENT_VERSION constant whenever possible, and only reference a specific version for compatibility if necessary.

If this key isn't specified, the method returns a ccrz.ccApi.NoApiVersionException.

Note

Inputs (Optional)

The input map can also include the following keys:

ccrz.ccApi.API_SIZING
Map<String, Object> that specifies the scope of data that this method returns, including which fields the method returns for each record that matches the query.
ccrz.ccApiSiteIndex.ACTIVE
Boolean
Value Usage
true Return only site index records where the Active field is enabled.
false Ignore the value of the Active field when querying site index records.
ccrz.ccApiSiteIndex.CATEGORY_IDS
Set<String> of category IDs whose corresponding site index records you want to query.
ccrz.ccApiSiteIndex.IDS
Set<String> of site index IDs to query.
ccrz.ccApiSiteIndex.LOCALE
String that specifies a locale to query site index records for.
ccrz.ccApiSiteIndex.LOCALES
Set<String> of locales to query site index records for.
ccrz.ccApiSiteIndex.STOREFRONT
String that specifies the name of a storefront for filtering the query.

If the input data doesn't include this key, the method falls back to ccrz.cc_CallContext.storefront.

Note

ccrz.ccApiSiteIndex.URL_HASH
String that specifies a category's hashed friendly URL value to query site index records for. This string matches the value in a site index record's Friendly URL Hash field.

Outputs

Map<String, Object> that can include the following keys:

ccrz.ccApi.API_VERSION
Integer that indicates which API version was used for the query.
ccrz.ccApi.SUCCESS
Boolean
Value Usage
true The call completed.
false The call encountered errors.

B2B Commerce for Visualforce doesn't always return an exception for any errors that can occur. When this value is false, consider rolling back the API transaction to a previous savepoint.

Tip

ccrz.ccApiSiteIndex.SITE_INDICES
Map<String, Object> of ccrz__E_SiteIndex__c records that match the query.

To specify which fields the API returns for each site index record, request a specific data size for the ccrz.ccApiSiteIndex.ENTITYNAME key in your input data:

ccrz.ccApi.SIZING => new Map<String, Object> {
    ccrz.ccApiSiteIndex.ENTITYNAME => new Map<String, Object> {
        ccrz.ccApi.SZ_DATA => ccrz.ccApi.SZ_M
    }
}

For information about which fields are available with different data sizes, see the ccrz__E_SiteIndex__c reference.

Tip

Example

Query all site index records for a specific storefront and locale.

Map<String, Object> siteIndexFetchQuery = new Map<String, Object>{
    ccrz.ccApi.API_VERSION => ccrz.ccApi.CURRENT_VERSION,
    ccrz.ccApiSiteIndex.STOREFRONT => 'DefaultStore',
    ccrz.ccApiSiteIndex.LOCALE => 'en_US'
};
 
try {
    Map<String, Object> siteIndexFetchData = ccrz.ccApiSiteIndex.fetch(siteIndexFetchQuery);
    if (siteIndexFetchData.get(ccrz.ccApiSiteIndex.SITE_INDICES) != null) {
        Map<String, Object> siteIndexResults = (Map<String, Object>)siteIndexFetchData.get(ccrz.ccApiSiteIndex.SITE_INDICES);
        // ...
    }
} catch (Exception e) {
    // Error handling...
}