Skip to main content

QuickList Component

Zuora

QuickList Component

The QuickList is a lightweight global UI component that includes the following features:

  • Sorting on each column in the result table
  • Pagination with configurable page size
  • Single-select or multi-select across multiple pages
  • Expandable rows to show a sub list
  • Admin configuration page in Zuora Config to manage the QuickList component instances

The QuickList component is available in the Versions 6.2 and later of Zuora Quotes.

The QuickList component supports the following plug-ins:

  • IFilterPlugin: For integrating with the QuickFilter component
  • ISearchPlugin:  For integrating with the QuickSearch component
  • IAllowedRecodPlugin: For specifying rate plan IDs that you want to display in Guided Product Selectors

The following image shows a QuickList component instance in the single-select mode, sorted by Account Name.
QuickListExample2.png

The following image shows a QuickList component instance in the multi-select mode with embedded list (sub-list).

QuickListMultiSelect.png

See QuickList Component Settings for creating and managing the QuickList instances in Zuora Config.

QuickList Component Attributes

The QuickList component accepts the following attributes.

Attribute
Type
Required?
Description
contextIds Map
<Object, Object>
Optional

The context Ids associated with this particular list.

If you are using the "List Filter Admin" segmentation in this list with dynamic values to be retrieved through a context, pass in the context IDs here.

listName String Required The unique list name registered in Zuora Config

QuickList Component Plugins

The QuickList component supports the following plug-ins:

  • zqu.QuickListController.IFilterPlugin
  • zqu.QuickListController.ISearchPlugin
  • zqu.QuickListController.IAllowedRecordPlugin
  • zqu.QuickListController.IHierarchyAllowedRecordPlugin

The plug-ins are instantiated when the QuickList component is instantiated for the first time and are re-instantiated when the QuickList component is redrawn.

zqu.QuickListController.IFilterPlugin

Implement the custom IFilterPlugin to integrate the QuickList component with the QuickFilter component. The plug-in filters down the result set in the QuickList instance.

Interface Class Signature

 global interface IFilterPlugin {
   String getAdditionalFilters ( 
       Map<String, List<String>> localFragments,
       Map<String, String> contextIds,
      Map<String, String> params); 
}

zqu.QuickListController.ISearchPlugin

Implement the custom ISearchPlugin to integrate the QuickList component with the QuickSearch component.

Interface Class Signature

global interface ISearchPlugin {
   String getSoslSearchString (
      Map<String, List<String>> localStorageFragments,

      Map<String, String> params);
}

zqu.QuicListController.IAllowedRecordPlugin

Implement the custom IAllowedRecordPlugin to control which rate plan IDs are displayed in the Guided Product Selectors.

Interface Class Signature

 global interface IAllowedRecordPlugin {
   Set<Id> getAllowedRecordIds(
      Map<Object, Object> contextIds, 
      Map<String, String> pluginParams); 
}​

ContextIds contains the key/value pairs of the Guided Selling Step context and the IDs, e.g. Quote and the Quote ID if the context is set to "Quote" for the Guided Selling Step.

PluginParams contains the associated field set name and the SObject name specified in the Zuora Config QuickList setting.

If the context of the Guided Selling Step is set to be the current flow, the IAllowedRecordPlugin returns the IDs of the selected rate plans in the current Guided Selling Flow.

If the context of the Guided Selling Step is set to be the current quote, the IAllowedRecordPlugin returns the IDs of all the rate plans selected in the current Quote, including the saved rate plans, newly added but not saved rate plans.

See Allowed Records Plugin Example for a sample use case.

zqu.QuickListController.IHierarchyAllowedRecordPlugin

Implement the custom IHierarchyAllowedRecordPlugin to control which products and rate plans are displayed in the Lightning Guided Product Selector.

The IHierarchyAllowedRecordPlugin is supported in Lightning Guided Product Selector only.

Interface Class Signature

global interface IHierarchyAllowedRecordPlugin {  

   zqu.QuickListController.PluginResult getAllowedRecords(
      
Map<Object, Object> contextIds,

      Map<String, String> pluginParams);

}

contextIds contains the key/value pairs of the Guided Selling Step context and the IDs, e.g. Quote and the Quote ID if the context is set to "Quote" for the Guided Selling Step.

pluginParams should be empty.

The plugin returns zqu.QuickListController.PluginResult which contains a list of zqu.QuickListController.PluginRecord.

Each zqu.QuickListController.PluginRecord is a product record and contains the following:

  • relatedObjectIds: product Rate Plan ids
  • recordId: product id

Sample Code

global class sampleAllowedRecordPlugin implements zqu.QuickListController.IHierarchyAllowedRecordPlugin {
    global zqu.QuickListController.PluginResult getAllowedRecords
        (Map<Object, Object> contextIds, Map<String, String> pluginParams){
   
        zqu.QuickListController.PluginResult result = 
            new zqu.QuickListController.PluginResult();
   
        zqu.QuickListController.PluginRecord record = 
            new zqu.QuickListController.PluginRecord();
   
        record.recordId = '01to0000001tjqQAAQ';
        record.relatedObjectIds = new Map<String, List<ID>> 
            {'zqu__productrateplan__c' => new List<ID>
            {'a0Io000000kUsgZEAS', 'a0Io000000kUsgaEAC', 'a0Io000000kUsgcEAC'}};
   
        result.records = new List<zqu.QuickListController.PluginRecord>();
        result.records.add(record);
        return result;
     }
}

Example Use Case

This section provides examples on how to use the QuickList component on Visualforce pages.

Create a simple list in the single-select mode

This example shows you how to build a list of accounts in the single-select mode using the QuickList component.

  1. Create a new list in the QuickList Component Settings.
    • List Name: AccountList
    • Associated Field Set: zqu__Fields_For_Select_Billing_Account
    • SObject Name: Account
    • Selection Cardinality: Single-Select
  2. On a Visualforce page, add the following code:
<zqu:QuickList listname="AccountList" contextIds=""/>

When you open the Visualforce page, the QuickList component queries all the records of the Account object and displays them as shown in the example below:

QuickListExample2.png

Add an embedded sublist

In this example, you leverage the previous QuickList instance to add an embedded sub list and make the parent list multi-selectable.

  1. Create a new list in the QuickList Component Settings:
    • List Name: AccountQuoteList
    • Associated Field Set: zqu__Quote_Information
    • SObject Name: zqu__Quote__c
    • The Selection Cardinality field value has no effect when used in a sub list.
  2. Edit the list from the previous example, AccountList.
    1. Click the lookup icon for the Associated Sub List field and select the List Number for the AccountQuoteList list.
    2. In the Relationship Field Name field, enter the API name of the Quote Lookup field, zqu__Account__c.
  3. Refresh the Visualforce page from the previous example to see the changes. The Visualforce page does not need to be updated.
  4. Click + left to the Account Name to display the sublist of quotes for the account.
    QuickListExample5.png