Forms

Updated: May 5, 2020
Contents

Overview

Forms Management module enables Providers to create and manage custom forms. They are used to collect additional information from the Vendor in the following scenarios:

  • Providers can request additional data during Vendor’s enrollment into the particular Marketplace when submitting the Distribution Contract(1).
  • Providers can request additional data during listing process to one of the Provider’s marketplaces. In this scenario, Provider can attach forms to collect additional information in the following scopes:
    • Product-level information (2)
    • Items-level information (3)

Please see detailed info about these scenarios below.

Creating forms

Provider has to create forms first and then assign it to an appropriate Distribution agreement. In order to create Forms provider must access Form management module from the home dashboard or navigation menu

Providers will be presented with the current list of forms or with the option to create a new one:

Use the ‘Create Form’ button to create a new form. The following pop-up will appear: 

In this popup following information is being asked:

  1. Name – Name of the form that is used to distinguish it from other forms.
  2. Type – following Form types can be selected:
    1. Enroll – The form is being used to capture additional information while enrolling into a particular Marketplace. Used to collect Vendor company-specific information required by the selected Marketplace (e.g. Bank Account Number, Primary point of contact, etc)
    2. Product – The form is being used to capture product specific information while creating a Listing. Provider may request different Product level information for particular Marketplaces (e.g. Product description) 
    3. Item – The form is being used to capture item specific information while creating a Listing. Provider may request different Item level information for particular Marketplace (e.g. MSRP, Detailed description, dependencies to other Items) 
  3. Schema – JSON representation of the form. All the elements of the form need to be defined in the JSON format. 

Schema definition

Forms are defined using JSON schema. Each element in the form (input field, dropdown, etc. ) must be described as a JSON element. We have an instant preview mode to make it easy to configure and make changes to a form. 

Following types of elements of the Form are currently supported:

1. Text Input

Basic text input field. 

JSON Schema:

{
   "required":true,
   "type":"text",
   "id":"name",
   "title":"Name",
   "note":"Text field description"
}

Preview:

2. Text Area

JSON Schema:

{
   "type":"textarea",
   "id":"notes",
   "title":"Notes"
}

Preview:

3. Checkboxes

JSON Schema:

{
   "type":"checkbox",
   "id":"checkeable_options",
   "title":"Checkable options",
   "note":"Check box Note",
   "meta":[
      {
         "value":"option_1",
         "label":"Option 1"
      },
      {
         "value":"option_2",
         "label":"Option 2"
      },
      {
         "value":"option_3",
         "label":"Option 3"
      },
      {
         "value":"option_4",
         "label":"Option 4"
      }
   ]
}

Preview:

4. Dropdown

JSON Schema:

{
   "type":"checkbox",
   "id":"checkeable_options",
   "title":"Checkable options",
   "note":"Check box Note",
   "meta":[
      {
         "value":"option_1",
         "label":"Option 1"
      },
      {
         "value":"option_2",
         "label":"Option 2"
      },
      {
         "value":"option_3",
         "label":"Option 3"
      },
      {
         "value":"option_4",
         "label":"Option 4"
      }
   ]
}

Preview:

5. Description

Use ‘description’ element to add some text between other elements on the form:

JSON Schema: 

{
   "id":"Description",
   "type":"description",
   "value":"**Bold Text** and new line:  \nAnother line of text"
}

Preview:

6. Section 

Divide elements into groups by using ‘section’ type:

JSON Schema:

{
   "id":"section",
   "type":"section",
   "value":"Home Address"
}

Preview:

Object fields

Each element of the form can be described using the following attributes:

PropertyTypeOptionalDescriptionExample
idstring
Field Identifier, should be unique, it will be used to refer field data in the resulting object. Should be alphanumeric plus underscore, lowercase.name
typestring
Field type, one of: text | section | checkbox | dropdown | textarea – see Field Types abovetext
titlestring
Field title, (localizable)Display Name
requiredbooleanIf set to true – field should be filled in before submitting formtrue
filterstringRegular expression to check data for validity/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s./0-9]*$/
metaarrayAdditional data for checkbox and dropdown[ { “label”: “Label 1”, “value”: “option_1” }, { “label”: “Label 2”, “value”: “option_2” }]
custom_errorstringCustom error to show if filter was not satisfiedEmail should be in format login@domain.name
valuestringDefault value
notestringSome additional explanation is written under the field 

Form Example

Here you can find an example of the form for your convenience:

[
   {
      "id":"name",
      "type":"text",
      "title":"Name",
      "required":true
   },
   {
      "id":"section",
      "type":"section",
      "value":"Home Address"
   },
   {
      "id":"email",
      "type":"text",
      "title":"Email",
      "custom_error":"Email should be in format login@domain.name"
   },
   {
      "id":"phone",
      "type":"text",
      "title":"Phone"
   },
   {
      "id":"checkeable_options",
      "type":"checkbox",
      "title":"Checkable options",
      "meta":[
         {
            "label":"Option 1",
            "value":"option_1"
         },
         {
            "label":"Option 2",
            "value":"option_2"
         },
         {
            "label":"Option 3",
            "value":"option_3"
         },
         {
            "label":"Option 4",
            "value":"option_4"
         }
      ]
   },
   {
      "id":"chooseable_options",
      "type":"dropdown",
      "title":"Chooseable options",
      "meta":[
         {
            "label":"Option 1",
            "value":"option_1"
         },
         {
            "label":"Option 2",
            "value":"option_2"
         },
         {
            "label":"Option 3",
            "value":"option_3"
         },
         {
            "label":"Option 4",
            "value":"option_4"
         }
      ]
   }
]

Attaching forms to Distribution Agreements

In order to be shown to the vendor, forms need to be attached to a distribution agreement. One form can be reused in multiple agreements. First, go to Agreements module from the Home Dashboard menu:

Select a program agreement that contains distribution agreements:

Select distribution agreement you want to attach forms to:

Next, find the section ‘Attach Forms’ and press ‘Edit’

The following pop-up will allow you to select a form for each form type.

Once selected, press Save to store the new configuration.

Is this page helpful?
Translate with Google
Copied to clipboard