Configuration Options

Global Settings

The JustOn Self-Service Extension can be configured using the custom setting Global Settings. The Default record holds the default settings for your site.

To manage global settings, select Custom Settings in Setup, then open Global Settings > Manage.

Field Description
Invoice Template The invoice template for new subscriptions, specifies the name or ID of an ONB2__Template__c record.
Master Item Criteria An SOQL query condition that defines which items are master items. The MasterItemRetriever only returns items that match the criteria defined here.
ONB2__Active__c and ONB2__Subscription__c fields are exempt from the criteria. ONB2__Active__c must be true, ONB2__Subscription__c must be empty.
You can refer to account and contact fields using placeholders like
Language__c = [Account.Language__c]
Master Item Fields A comma separated list of master item fields that are to be shown on the Products page. Defaults to ONB2__Title__c,ONB2__Description__c.
Master Item Sort Order The sort order of the master items. If empty, defaults to the creation date. Accepts a valid SOQL order statement.
Subscription Building Either New or Reorder: If New is set, the extension creates a new subscription with each checkout. With Reorder, an existing subscription is used, if available.
Locale The default locale of your Salesforce Site (like en-US, de-DE), used for label overrides and number/currency formatting as well as for the translations of custom labels.
Logo Name The name of the logo image file, which must be stored as a file in the Documents tab.
Home URL The URL to be opened when a user clicks the site logo or site name.
Redirect after login The URL of the page to which the user is redirected after successfully logging in. It must begin with a slash (/) and include the namespace prefix, like /ONBSE1__Products.
Must not be empty.
Redirect after profile complete The URL of the page to which the user is redirected once the profile is complete. You can use parameters like /ONBSE1__Subscriptions?welcomeMessage=true.
Password Hash Iterations The number of iterations for the password hashing algorithm. Should be at least 500. Must be adjusted if there are CPU timeouts with password-based logins.
Username Field The API name of the field on the contact that holds the (optional) user name for the password-based authentication.
Pricebook Entry Sort Order The sort order of the master products. If empty, defaults to the creation date. Accepts a valid SOQL order statement.
Pricebook ID The ID of the price book whose entries are to be available on the Products page.
Restrict Salesforce users to local org If true, allows only users of the org where the self-service extension is installed. If false (default), any user with a Salesforce login can register/log in.
Allow partial payments If true, allows users to specify a payment amount that is smaller than the complete invoice amount due.
Full payment amount If true, allows users to pay the complete outstanding amount, irrespective of existing installments.
Can optionally be used if Allow partial payments is set true.

CSS Customization

You can customize the CSS of each page. To this end, the JustOn Self-Service Extension provides the custom object Style.

Field Description
Pages A multi-select picklist including all available pages. You can select multiple pages at once. If All is selected, the style is used on all pages.
Sequence If multiple styles apply to one page, they are ordered ascending by sequence. Styles with a greater sequence number override styles with lower sequence numbers.
Content The actual CSS to be applied.

To add, for example, a logo to the payment page, you can use the following CSS code:

.content::before {
    content: url(<image_path>);
    display: block;
    text-align: center;


You can use static resources for background images like, for example:

body {
    background: url({!$Resource.MyBgImage});
.content {
    background: url({!URLFOR($Resource.SelfServiceAssets, '/images/content_bg.png')})

JavaScript Injection

You can add JavaScript snippets to each page. Each snippet is wrapped into its own <script> tag. jQuery is injected to each page and can be used with the snippets.

To support this, the JustOn Self-Service Extension provides the custom object Script.

Field Description
Pages A multi-select picklist including all available pages. You can select multiple pages at once. If All is selected, the script is added to all pages.
Content The actual JavaScript snippet to be added.

Example JavaScript:

$(document).ready(function() {
    $('body').css('background', 'red');

Custom Labels

The Visualforce pages packaged with the JustOn Self-Service Extension make use of custom labels. The custom labels can contain up to 1000 characters and can include HTML markup.

You can overwrite the custom labels to adjust them to the needs of your business use cases.


To modify custom labels, you must enable the Translation Workbench. For details, see Enable and Disable the Translation Workbench in the Salesforce Help.

  1. Click to enter Setup, then open the Custom Labels list.

    In Salesforce Lightning, navigate to User Interface > Custom Labels.

    In Salesforce Classic, navigate to Create > Custom Labels.

  2. Click the name of the label you want to modify.

    To better find the relevant labels, create a filter for the namespace ONBSE1.

  3. Click New Local Translations/Overrides.

  4. Select the target language and specify the text as required.
  5. Click Save.

    For help about modifying custom labels, see Create and Edit Custom Labels in the Salesforce Help.


Set the locale in the global settings in order to select the intended translation.

Multiple Languages

The JustOn Self-Service Extension supports multiple languages.

The system shows a language switcher if there is more than one language with a label configured. The language switcher is prefixed with the ChangeLanguage custom label.

When a user accesses the site for the first time, the system tries to match the browser language and find a appropriate site language. The language is either a configured language with a label or the default locale defined in the global settings.

The language is stored in a cookie in the browser. If the user switches the language at the site, the content of the cookie is updated, and the page reloads with the selected language.

Enabling Languages

Languages are enabled using the custom setting Languages.

To manage language settings, select Custom Settings in Setup, then open Languages > Manage. Create a record for each language you intend to support.

Field Possible Values Description
Name IETF language tag
de, de-CH, fr, en-US
The language must be a supported Salesforce platform language.
Label UI display name
Deutsch, English, Español
Only languages with a label are shown in the language switcher of the UI.
The label should contain the native name of the language to help the user to find their own language quickly (like Español instead of Spanish).
Map to IETF language tag A fallback language – if a user requests the site with en-GB, it can be served using en.
The language defined here must be present and must have a label to show up in the UI.


Make sure to add and enable the languages in the Translation Workbench. For details, see Add Translated Languages and Translators in the Salesforce Help.

Example Configuration
Name Label Map to Description
de Deutsch Enable German as language and show it in the UI
de-CH de Map every Swiss-German request to the default German language
es Español Enable Spanish as language and show it in the UI
en-US English (US) Enable American English as language and show it in the UI
en-GB English (UK) Enable British English as language and show it in the UI
en en-US Map every English request to the default American English language


Object field labels can be translated using the Translation Workbench. For details, see Translate Terms in the Salesforce Help.

Custom labels can be translated when configuring the site. For details, see Custom Labels.

Field labels for the profile page can also be overwritten and translated. For details, see Profile.

Product translations are achieved via translation fields:

Product Field Product Translation Field Example for de Example for en-US
Name Name_<lang>__c Name_de__c Name_enUS__c
Description Description_<lang>__c Description_de__c Description_enUS__c

If the translation fields are empty or missing, the system falls back to the default fields.


When you create the translation fields, make sure to include them in your permission set and to add them to the JustOn Field Whitelist custom setting.