Skip to main content

Entity plugin

Zuora

Entity plugin

Use the ISelectEntityPlugin on the EntityPlugin component to customize the Billing entity selection process.

ISelectEntityPlugin

Use the ISelectEntityPlugin on the SelectEntity component to customize the entity selection logic in your quoting process.

The ISelectEntityPlugin is executed when you click New Quote in a multi-entity org.

Interface class signature of the plugin is:

global without sharing class MySelectEntityPlugin implements
   zqu.SelectEntityComponentOptions.ISelectEntityPlugin {
      global zqu.SelectEntityComponentOptions.SelectEntityPluginResponse
    ​     selectEntityForNewQuote(String accountId, String opportunityId) {
            zqu.SelectEntityComponentOptions.SelectEntityPluginResponse resp =
            ​   new zqu.SelectEntityComponentOptions.SelectEntityPluginResponse();
            
            //Add implementation code here...
            return resp;
       }
 }           

ISelectEntityPlugin returns the SelectEntityPluginResponse class. The class includes the following properties.

Name Type Description
selectedId ID Salesforce ID of the Billing Entity to be used for the quote
autoSubmit Boolean

If true, the entity will be selected, and users cannot change it.

If false, the entity will be selected in the menu, but the user can change it.

Procedure

To activate the Select Entity Account plugin:

  1. Create a global plugin interface that implementszqu.SelectEntityComponentOptions.SelectEntityPlugin
  2. Register and activate the plugin.
    1. Navigate to Zuora Config > Quote Studio Settings > Plugins.
    2. Enable the Select Entity Plugin toggle and add the class name of your custom plugin.
  3. Click Save.

Example code

The sample code below returns the default entity id of an account and sets the autoSubmit to true so that users cannot change the default billing entity on quotes.

To test the plugin:

  1. Add a custom field, DefaultEntity__c, on the Account object.
  2. Populate the DefaultEntity__c field with an entity Id.
  3. Use the following code to implement the custom SelectEntity plugin.
  4. Register the plugin. See step 2 under the Procedure section.
  5. Create a new quote and see the entity field pre-populated with the default entity you gave in Step #2.
global without sharing class MySelectEntityPlugin implements 
   zqu.SelectEntityComponentOptions.ISelectEntityPlugin {
      global zqu.SelectEntityComponentOptions.SelectEntityPluginResponse 
    ​     selectEntityForNewQuote(String accountId, String opportunityId) {
            zqu.SelectEntityComponentOptions.SelectEntityPluginResponse resp = 
            ​   new zqu.SelectEntityComponentOptions.SelectEntityPluginResponse();
            Account acc = 
            ​   [SELECT Id,DefaultEntity__c FROM Account WHERE Id=:accountId LIMIT 1];
            if(acc.DefaultEntity__c != null) {        
               resp.selectedId = acc.DefaultEntity__c;
               resp.autoSubmit = true;
            }
            return resp;
      }
}