Skip to main content

Configurator Advanced - Knowledgebase / SalesPad / Configurator - Cavallo Technical Support

Configurator Advanced

Authors list
Overview

The Configurator is a tool that allows the user to create items that can be configured to customer specifications (i.e. computers, custom t-shirts, furniture, etc.) by selecting the available options (i.e. monitor, hard-drive, color, etc.) when entering an order. Upon order entry, options will be selected and the customer-specified selection will be saved to the relative line item in the form of a string code. The configured items can have items (components) attached to them.

This documents explains advanced set up and usage for the following components:

  • Status and Versioning
  • Adding Existing Options
  • Configured Items (Components)
  • Pricing
  • Restrictions
  • Value Mapping
  • Default Selection
  • Nested Configurations
  • Excel Import

Please refer to Configurator documentation for a basic description of the tool and examples of configurations.

Contents
Status and Versioning

The Configurator allows users to have different versions of the same configuration, helping them keeping track of the changes made over time. In order to turn on versioning, set the Save Configuration As New Version in Security to True.”

With versioning enabled, a new version is created the first time a user make and save changes on an existing configuration.

Note: Any subsequent save (on the open configuration) will keep the same version number, until the user closes and reopens the configuration.

Users can load older versions by click the ellipsis in the field Version.

An input box with a drop down allows users to select the version to load:

Note: Older configurations are all marked as Historical (only the current version can be Active). Notice that all the buttons are disabled, since this configuration is read only. The user can still launch the Test Configuration plugin to check what the previous configuration was like.

Users can resume older version by changing their Status and saving the configuration. In order to do that, you will have to turn on the Security setting Can Resume Historical Configurations.

Status

A configuration can have one of the following statuses:

  • Historical – Older versions; they cannot be used in a sales document. The configuration is read-only.
  • Active – The current version that can be used in a sales document.
    • Note: There can only be one active configuration for the same item.
  • Pending – Future version; not active yet; therefore, it cannot be used in a sales document.

The status of a configuration works in conjunction with versioning. The user can manually change it depending on the use case. These are some examples of use cases:

1. From “Historical” to “Active” – This will copy the current (older) configuration into a new version (which will be marked as “Active”), and it will change the status of the latest Active configuration into Historical. This requires the Security setting Can Resume Historical Configurations in the plugin Configurator to be set to True.

Example (version 1 to be changed):

Version Status
1 Historical
2 Historical
3 Active

Result:

Version Status
1 Historical
2 Historical
3 Historical
4 Active

2. From “Historical” to “Pending” – This will copy the current (older) configuration into a new version (which will be marked as Pending), and it will preserve the status of the latest Active configuration. This requires the Security setting Can Resume Historical Configurations in the plugin Configurator to be set to True.

Example (version 1 to be changed):

Version Status
1 Historical
2 Historical
3 Active

Result:

Version Status
1 Historical
2 Historical
3 Active
4 Pending

3. From “Active” to “Active” – Making any changes to an Active configuration will save a new version of it and mark the previous configuration as Historical. This requires the Security setting Save Configuration As New Version to be set to True.

Example (version 3 to be changed):

Version Status
1 Historical
2 Historical
3 Active

Result:

Version Status
1 Historical
2 Historical
3 Historical
4 Active

Note: Any subsequent changes to the configuration will not trigger a new version until the configuration is closed and reopened.

4. From “Pending” to “Active” – Pending configuration can be switched to Active. This will make the previous (active) configuration Historical. This will not create a new version.

Example (version 4 to be changed):

Version Status
1 Historical
2 Historical
3 Active
4 Pending

Result:

Version Status
1 Historical
2 Historical
3 Historical
4 Active

5. From “Active” to “Historical” – You can make the Active configuration Historical by changing its status.

Example (version 4 to be changed):

Version Status
1 Historical
2 Historical
3 Historical
4 Active

Result:

Version Status
1 Historical
2 Historical
3 Historical
4 Historical

6. From "Pending" to "Historical" – You can make the Pending configuration Historical by changing its status. This will make the current Active configuration Historical as well.

Example (version 4 to be changed):

Version Status
1 Historical
2 Historical
3 Active
4 Pending

Result:

Version Status
1 Historical
2 Historical
3 Historical
4 Historical

Note: Users can make a configuration Historical by just deleting it: clicking the Delete button does not remove the record from the database but it simply changes its status to Historical.

Adding Existing Options

Configurator allows users to easily add existing options from the current or other configurations. This functionality is designed for different configurations that have similar (or the same) set of options.

Steps:

1. Open the configuration CHAIR screen and select the Options page for the attribute Color (see CHAIR example in Configurator documentation).

2. Click the little triangle next to the New button and select the Add Existing Options from the menu.

3. In Add Existing Options screen, choose the desired configuration and the Attribute from which you want to copy the Options from (in this example T-SHIRT):

a. Make sure the option Make a Copy (top right corner) is checked.

4. Select the Options to copy and click OK: the options are now copied from the configuration T-SHIRT into the CHAIR.

Note: These new options are a hard copy of the ones from T-SHIRT, which means that any change made inside the configuration CHAIR does not affect the values in configuration T-SHIRT.

Options can be copied as a link instead of hard copy, meaning that one or more configurations can share the same values for the options. In order to do that, simply uncheck the box Make a Copy before copying the options.

Options that are linked (or shared) with other configurations are denoted by the blue foreground.

This solution is particularly useful if the users want to keep a single set of options that is the same across several configurations; this simplifies the maintenance because changes will not have to be made on each configuration, but only in one of them.

Note: Any change made to an option that is linked will affect all the configurations that share the option.

Configured Items (Components)
Dynamic Configured Items (Simple)

This sections shows how to create dynamic configured items. The example of the COMPUTER (see Configurator documentation) showed a 1-to-1 relationship between the option and the configured item (each option corresponds to one configured item):

Option Selected Configured Item
15" M1500
17" M1700
21" M2100
20 GB HD-200
40 GB HD-40
60 GB HD-60
80 GB HD-80
1 GHz 1GPROC
2 GHz 2GPROC
Inkjet 3-D2094A
Laserjet 4-E2094A

There are case in which the list of items depends on the selection of more than just one option. For instance, assume that the configuration CHAIR has only three items (or components), and each component can be one of the following item numbers:

Leg component:

Option Selected Configured Item
Legs Height Color
16" leg Wood
Black
White
000116WD
000116BLK
000116WHI
17" leg Wood
Black
White
000117WD
000117BLK
000117WHI
18" leg Wood
Black
White
000118WD
000118BLK
000118WHI

Back component:

Option Selected Configured Item
Legs Height Color
Classic style Wood
Black
White
0002CLWD
0002CLBLK
0002CLWHI
Modern style Wood
Black
White
0002MDWD
0002MDBLK
0002MDWHI

Seat component:

Option Selected "Color Configured Item
Wood
Black
White
000300WD
000300BLK
000300WHI

Instead of listing each one of the items shown above, users can use the Dynamic Configured Items to define masks and treat the items as smart part numbers. For instance, the items “000300WD,” “000300BLK,” and “000300WHI” can all be combined into “000300{COLOR.1}” (the string “{COLOR.1}” will be automatically replaced with the color code upon the selection of that option).

Note: The configurator generates the numbers; it does not create the items in Great Plains. Each item must be an existing inventory item in GP.

Steps to create dynamic configured items:

1. Determine which attributes play a role in the configured item numbers. From the tables above, we can see that Legs Height, Style, and Color are used to define the items.

2. In the Details tab, Attributes page, find the column Parameter Name and add the values as shown below:

a. They are the parameter (or variable) names that will be used in the masks.

3. Select the Attribute, Legs Height, and move to the Option page. Make the column Configured Item Code visible (if not already visible) and add the values as shown below:

a. These values represent the partial code that will create the final configured item (i.e. the digits “17” in the item 000117BLK)

4. Move to the Attribute, Style and add the following codes:

a. They will represent, for instance, the string CL in the item 0002CLBLK

5. Do the same for Color:

a. In this case they will represent, for instance, the string BLK in the item 0002CLBLK

6. Now that the parameters and the partial codes are defined, we can create the actual masks. Move to the Dynamic Configured Items tab and click New to add a new row.

a. This row represents the first item (leg component).

b. Click on the ellipsis to open up the String Formatter helper screen.

7. String Formatter is a tool that allows users to define the mask that will generate the configured item (in this case the leg component) based on the selection.

Look at the possible items for the leg component again: notice that all the items start with 0001, followed by 2 digits that represent the legs height, and some text that defines the color. This will be translated into a mask with the String Formatter.

Option Selected Configured Item
Legs Height Color
16" leg Wood
Black
White
000116WD
000116BLK
000116WHI
17" leg Wood
Black
White
000117WD
000117BLK
000117WHI
18" leg Wood
Black
White
000118WD
000118BLK
000118WHI

8. Click New, leave the Format Type to Fixed Text and add 0001 under String.

9. Click New again to add the second part of the item (the 2-digit code that represents the legs height).

a. Under Format Type select Attribute: Legs Height. You will notice that the Attribute Parameter will automatically be filled in with LEG, which is the value we added before in the Attribute under Parameter Name.

10. Add the third part (for Color). This is the final mask:

The mask “0001{LEG.1}{COLOR.1}” represents all the possible items for the leg component. In the Sample Item Number you can see the item number that would be generated when selecting the first options for Legs Height and Color.

11. Click OK to return to the main form. Under the column “Description” you can put “Leg component” as a note to yourself.

12. Add the appropriate UOfM (in this case EACH), and include the Quantity (in this case there are four legs):

Note: String Formatter is just a tool to help users create the masks. Users do not have to use this tool, as they can simply paste the string (in the example above “001{LEG.1}{COLOR.1}”) in the field String Format.

13. Add the second item (Back Component).

a. This items is composed of the fixed text “0002,” followed by two characters that represent the Style, and the text for Color.

14. The third one (Seat Component) is simpler because it only has the fixed text “000300” with the text for Color at the end. You should end up with a definition like this:

As you can see, all the possible items/components (9 for the leg component + 6 for the back + 3 for the seat) can be grouped in these three masks.

15. Run the plugin from the configuration screen (button Test Configuration at the top). Select some random options and test that the Configured Items return the expected list.

In this example, making a change on one attribute (for instance Color) will return a completely different set of items, while some attributes (i.e. Width) do not play any role as far as building the list of items:

Dynamic Configured Items can also be used without masks.

16. Add the item for the Gloss Paint if the user flags the check box, the item GLOSS PAINT will be added to the list of configured items.

In this case, we cannot use the Configured Item Code like before because this attribute does not have any option. Instead of using the string format, we will use the “Conditions”.

17. Click Add to add the item, and under String Format type GLOSS PAINT (notice that this time there is no mask: this is the actual item number). Fill in the appropriate values for UOfM and Quantity.

18. With GLOSS PAINT line selected, move to the right hand panel to Conditions and click New to add a condition:

This condition is satisfied when the Attribute Gloss Paint is equal to True. This means that the item GLOSS PAINT will be added only when this option is checked.

Dynamic Configured Items (Advanced)

In the example before we assumed that the same option would generate the same item code. For instance, the color selection would produce the suffix -WD, -BLK, or –WHI for all the three components (leg, back, and seat). This may not be always the case.

Assume that the color codes for leg and back component are alphanumeric (what we saw before), but for the seat component these codes are numeric (“-001,” “-002,” and “-003”):

Option Selected "Color Configured Item
Wood
Black
White
000300001
000300002
000300003

 

In order to make this to work we need to make few adjustments to the dynamic configured items and the masks we created before.

Steps:

1. First thing to do is add the additional suffixes to the existing ones. Go to the option page for Color.

a. The Configured Item Code column currently has the alphanumeric code.


2. Select any row and click the ellipsis in the field Configured Item Code. This will pop up the Configured Item Code Helper.

3. In this helper screen you can the first set of codes (-WD, -BLK, or -WHI). You can add a new one by clicking the button on the top field.

a. In the input box that appears after, simply type a description of the codes that you are about to add (this will be just a note to yourself).

4. Click OK. You will see that the column Config Item Code is now blank. Here you will type the new (numeric) codes (“-001,” “-002,” and “-003”).

The helper screen allows you to quickly navigate through all your set of codes using the drop down at the top.

From here you can also edit the name of the code by clicking the ellipsis button ( ). You can also delete an entire set with the delete button ( ).

5. Click OK to close the helper screen. You will see that Configured Item Code now has to sets of codes, separated by a comma.

Note: Since this case is a simple one (as there are only three options and two sets of code), you could have simply added the new values directly in the grid view, by separating them with other ones with a comma.

6. Go to the Dynamics Configured Items, select the row with the seat component, and click the ellipsis on the String Format column

7. In the String Formatter screen, click the little triangle on the right border of the form

This will expand the screen, showing some information from the Options page.

As you can see, this mask currently points to the alphanumeric codes (creating the Sample Item Number, 000300WD on the bottom left of the screen).

8. Click the Partial Item Code drop down and select the second element from the list (Numeric code)

This will switch the configured codes to the second set (the numeric values recently added in the options).

Notice that this also changes the Sample Item Number to 000300001, which is what we were trying to achieve.

Because of the simplicity of this example (there are only two sets of codes), you could have simply changes the number in the Sub String Position (for the Attribute: Color) from 1 to 2.

9. Click OK, save the configuration, and load the plugin from Test Configuration.

Notice that the last component (Chair Seat) has a different suffix compared to the other two (-003 instead of -WHI).

Note: You can have unlimited sets of configured item codes.

 

Conditions

Conditions can also be used in conjunction with masks in Dynamic Configured Items. For instance, we can create a condition so that we can only have two possible seat components (000300WD and 000300WHI), even if we have three colors.

Steps:

  1. In the Dynamic Configured Items tab, select the third row (000300{COLOR.1}) and click New in the Conditions

section.

2. Add the conditions as shown below:

3. With these conditions, we will have a configured item only if Color is either Wood or White.

We can include more than one attribute in the same condition.

In this case, the item will be included in the list if Color is either Wood or White, and the Style is Classic. Notice that all the conditions – for all the attributes – must be true (Color and Style). Within the same attribute, though, conditions are evaluated with the operator (i.e. either Wood OR White).

In case the attribute does not have any options, you can use the Operator and Value fields to create your condition (you can still use these fields when the attribute has options).

In this case, the item will be added only if Width is either less than 20 or between 22 and 24 inclusive.

 

 

Quantity Formula

The Dynamic Configured Items screen allows users to dynamically calculate the quantity using formulas. For instance, instead of having a fixed value, the quantity for the item GLOSS PAINT can be calculated based on the dimensions of the chair using this formula: 0.25 * width * (0.03 * back height + 0.02 * leg height).

Steps:

 

  1. Open the configuration CHAIR, and in the Attributes page add the following parameter names for Width and

Back Height.

a.These will be the parameters used in the formula (together with the LEG parameter already present).

The values for Width and Back Height will come directly from the user’s input: this is because the attributes are Text Box that already have numeric values. On the other hand, for the leg height we will need to associate the numeric value for the formula for each option.

2. Select the attribute Legs Height and move to the Options page.

a. Make the column Option Value visible and add the values as shown below:

Note: We need to specify these values only because the text in Name is not numeric (it contains the inch symbol "). If it did not have that, we could have used the values from Name without defining the values in Option Value.

3. Move to the Dynamic Configured Items tab and make the column Qty Formula visible.

4. Paste the following text into the Qty Formula field: 0.25 * WIDTH * (0.03 * BACK + 0.02 * LEG)

a. Notice the names WIDTH, BACK, and LEG are the parameter names specified before.

b. Make sure you set the Quantity field to 1 This value is going to be multiplied with the result of the formula.

5. Run Test Configuration and select a couple of different options to check that the formula works correctly.

Note: Quantity and Quantity Formula are applicable to all Configuration Type, while Quantity Fixed and Qty Fixed Formula are only for Manufacturing configurations.

 

 

Pricing

 

 

The price in Configurator can be defined in the following ways:

 

  • By specific configuration (static pricing)

  • By attribute-options break down (dynamic pricing)

  • With a formula

 

A configuration can have any of the three types of pricing methods, or combination of them.

 

 

Note: Configurator allows users to define partial pricing details with amounts up to 5 decimal places; however, the final price of the configured item will be rounded to the number of decimal places set up in Great Plains for that item.

Static Pricing

With static pricing, you can set a price for each specific configuration, meaning that each selection of options will have a specific price. Steps:

1.Open the configuration CHAIR and select the tab Pricing.

a. The tab contains a table with a column for each attribute in your configuration, plus a column for Price.

2. Click New to add the first price definition and start adding the options. Put 18 for Width and Back Height.

a. Notice that if the attribute has a Control Type of Text Box, the cell will be free-type.

3.Choose 17 under Legs Height.

a. Notice that if the attribute has a Control Type of Drop Down Single or Drop Down Multiple, the cell will be have a drop down with the available options listed in it.

4.Add the rest of the details as shown below. In this example, the price $740.00 will be applied only when the user chooses this exact configuration.

Multiple configurations can be combined together. For instance, we can extend the previous price to all the available colors. Meaning that, no matter what color the user chooses, the price will be $740.00 when the user selects the options specified in the definition.

Note: Listing all the options (like in this case for Color) has the same meaning as leaving the field blank.

Attributes that are Text Box can include a single value, a list of values (separated by commas like for Drop Down), or a range of values. For instance, we can extend the price $740.00 to all widths between 18 and 24 inclusive.

If the attribute has a Control Type of Check Box, the cell will have a check box with three states: checked, unchecked, and indeterminate (grayed out). Use the indeterminate state if you want the price to apply regardless if the option is selected (checked) or not in the plugin.

Using the static pricing could end up with a big pricing table definition. The best way to handle this is to keep all the prices into an Excel file, and then use the import tool to add the prices into the configuration (see section Excel Import for details).

 

Dynamic Pricing

 

Unlike static pricing, which requires you to define the price for each configuration (or group of configurations), with dynamic pricing the price can be broken down into three levels:

  • Configuration This value will always be added to the final price, no matter the options selected.

  • Attributes The value will always be added to the final price, unless the attribute is “Check Box.” In this case, the value will be added only if the option is checked.

  • Options – The price will be applied only if the option is selected.

The final price is built up by adding all the single prices from all the three levels describe before, depending on the selections made by the user.

 

Example of possible configuration with the final price of $760.00 for the configuration CHAIR:

In this example, the final price is the sum of the following single units:

Configuration

$360.00

Attribute “Style”

$20.00

Option “Modern”

$299.00

Attribute “Color”

$0.00

Option “Wood”

$45.00

Attribute “Gloss Paint”

$36.00

 

$760.00

 

Users can click the price amount on the attribute to see the pricing details (breakdown) for that attribute:

Note: The price details can be hidden from Security. In order to implement this, go to Sales Line Configurator and set Show Attribute Price to False. This will hide all the prices of the single attributes and show only the final price of the configured item.

Pricing Formula

Configurator allows users to define a formula that dynamically calculates the final price of a configured item. For instance, the final price of the item could be dictated by the dimensions of the product like this: $20 * width + $10 * (back height + leg). Steps:

1.Open the configuration CHAIR, and in the Attributes page make sure you have following parameter names for Width, Back Height, and Legs Height.

a. These will be the parameters used in the formula

2.Select the attribute Legs Height and move to the Options page.

a. Make sure you have the following values:

3.On the Configuration header, make the field Price Formula visible:

a. Right-click anywhere on the header, and click Customize Layout from the little context menu

b. From the Customization screen, drag the field Price Formula anywhere on the header, and the close the screen.

4.Paste the following text into the Price Formula field: 20 * WIDTH + 10 * (BACK + LEG)

a. Notice the names WIDTH, BACK, and LEG are the parameter names specified before.

b. Make sure you set the Price field to 1. This value is going to be multiplied with the result of the formula.

5.Run Test Configuration, select a couple of different options, and check that the formula works correctly.

Combining Different Pricing Methods

Static pricing, dynamic pricing, and the formula can be used concurrently: the final price will be the sum of each single part. Combining static and dynamic pricing could be useful when one type of pricing is the addition (or the discount) of the other. For instance, a configuration can use static pricing to define the unit prices, and use dynamic pricing as a discount for particular configurations.

Assuming the above configuration uses static pricing for the base price, $15.00 will be deducted from the final price when a configuration will look like the one above.

This could also work the other way around:

Assuming the above configuration uses dynamic pricing for the base price, $50.00 will be added to the final price each time the Color selected is Wood.

Pricing

 

The final price for the configured item (the item generated by the Sales Line Item Configurator plugin) can be created in Great Plains or in Configurator. The administrator can define which pricing option to apply by setting the Pricing Type accordingly:

The options for Pricing Type are:

  • Default: Use the price from the configured item that gets generated, if the item number already exists in GP (standard item*). Otherwise, (custom item) use Configurator pricing.

  • Configurator: Always use the price defined in Configurator.

  • Great Plains: Always use the price from Great Plains: if the configured item that gets generated already exists in GP (standard item*), use its price. Otherwise, (custom item) load the GP price for the Configurator Item Number.

*Standard items are applicable, for instance, in Manufacturing, where the Configurator plugin can either create a new item number, or reuse an item previously created in Great Plains. See documentation Configurator – Manufacturing for more details.

Restrictions

Restrictions is a functionality that allows administrators to set up rules that restrict one or more options/attributes based on the user’s selection. There are several type of restrictions:

  • Option-to-Option An option is restricted (not available) when another option is selected.

  • Option-to-Attribute An attribute is restricted (not available) when a specific option is selected.

  • Minimum and Maximum Values – Restrict the range of values (in case of “Text Box”) based on a specific selection.

Restrictions are maintained in the Restrictions tab. The tab is divided into two sections

  • The left hand side (Configuration Options) shows a list of all the options grouped by attributes

  • The right hand side (Restrictions) shows the restrictions. All the options are available for the selected option (item on the left)

Option-to-Option Restrictions

A configuration can be set up such that a particular option requires other options (from different attributes). For instance, the configuration COMPUTER can be created so that:

  • The 21” Monitor requires the 2 GHz Processor.

  • The 20 GB can be sold only with the 15” Monitor and 1 GHz Processor.

 

Steps:

1.Open the configuration COMPUTER” and select the tab Restrictions.

2.Set the first restriction: a 21” monitor requires the 2 GHz processor. Expand the attribute Monitor and select the option 21.

Once again, the right hand side shows all the possible options for (in this case) the option 21. By default, all the options are checked (available).

3.On the grid view on the right, expand the Processors row and uncheck the option 1 GHz.

a. This creates the restrictions between the option 21” Monitor and the 1 GHz Processor, leaving the 2 GHz the only available processor for the 21 monitor.

4.Now we will set the other restriction; the 20 GB can be sold only with the 15” Monitor and 1 GHz Processor. Expand the attribute Hard-Drive and select the option 20 GB.

5.In the Restrictions grid view, expand the attribute Monitor and uncheck the options 17” Monitor and 21” Monitor.

6.Also expand Processor and uncheck 2 GHz. You should end up with a screen like this:

7.To test these restrictions, launch the plugin from the configuration form, select the 17” Monitor, and click the drop down for attribute Processor. You will see both processors on the list.

8.Clear out the selection for Processor and change the monitor to 21”. If you click the drop down for Processor, now you will see only the option 2 GHz.

9.Clear out all the selections and choose the 20 GB hard drive. Click either the Monitor or the Processor drop downs: you will only see the options 15” and 1 GHz, respectively.

Option-to-Attribute Restrictions

Restrictions can be applied to an entire attribute. For instance, the configuration COMPUTER can have a restriction that does not allow any printer if the 15” monitor selected.

 

Steps:

1.Load the configuration COMPUTER and select the tab Restrictions

2.Expand the attribute Monitor and select the option 15 Monitor

3.In the Restrictions panel, uncheck the entire attribute Printer.

Note: If you want to restrict the entire attribute, you must uncheck the row Printer, and not all the single options under that attribute, otherwise the restriction would not work as expected.

4.Run the Test Configuration. You will see that as soon as you select the 15” Monitor, the attribute Printer will be completely disabled

Note: In this case, the attribute restricted (Printer) was optional; the restriction would work fine even if the attribute was required.

Minimum and Maximum Values Restrictions

Restrictions allow users to change the minimum and maximum values for text box under specific conditions. Recall that the configuration CHAIR has two text boxes that accept numerical values within a certain range:

We can create a restriction such that the minimum value for Width becomes 20” if the Style selected is Modern. Steps:

1.Load the configuration CHAIR and select the tab Restrictions.

2.In the Configuration Options grid view (on the left), expand the attribute Style and select the option Modern.

3.On the right hand side, find the row for Width and change the field Value Min to 20”.

a.Values that are different from the default are bold.

4.Launch the Test Configuration. Make sure that the minimum value is still 18 when no other options are selected.

5.Select the Modern for Style. You will notice that the value for Width has been deleted. This is because, as specified in our restriction, the value 18 became invalid due to the option Modern (the minimum would now be 20)

6.If we try to enter a value that is less than “20,” we will receive an error message

An attribute (or an option) can have as many restrictions as needed. The restrictions, though, are evaluated separately and cannot be combined. For instance, we could not set up a restriction such that the 20Width is applied when the Style is Modern and the Color is Wood. If we had these restrictions for Width, each would be applied separately like this:

  • Width is minimum 20” when Style is Modern.

  • OR Width is minimum 21” when Color is Wood.

As you can see, we need to make only one selection to restrict the Width.

In case we select both Modern and Wood, the most restrictive value will be applied (in this case 21”). This also means that Value Min and Value Max inside the restrictions should always be (respectively) greater than and less than the original Value Min and Value Max from the attributes.

To achieve more elaborated restrictions, administrator can use validation scripts (see section Validation Script for more details).

Clearing the Restrictions

There are several ways to remove the restrictions from a configuration:

  • Re-check all the Available options and attributes previously unchecked.

  • Restore the original values for columns Value Min and Value Max.

    • In this case, you can make the columns Base Value Min and Base Value Max visible to see the default values.

  • Use the Clear Restrictions buttons: these buttons will restore the Available check marks, as well as the Value Min and Value Max values.

    • There are two Clear Restrictions buttons: the one of the right hand side (in the Restrictions grid view) will remove the restrictions only for the attribute or option selected on the left; the one on the left hand side (in the Configuration Options grid view) will remove all the restrictions from the configuration, for all the attributes and options.

Validation Script

Validation script allows administrators to create C# scripts that integrate (or override) the core Restrictions functionality, making it possible to create more advanced restrictions.

 

For instance, we can restrict the Width to a minimum value of 20 only when the Style is Modern and the Color is Wood (in this case, both have to be true, something not possible to do using the standard “Restrictions”). This example assumes that there are no other standard restrictions in this configuration.

Steps:

1.Load the configuration CHAIR.

2.In the Attributes page, make the column Validation Script visible.

3.Select the row Width and click the ellipsis under the column Validation Script.

a. This will open the standard SalesPad C# Scripts editor.

4.Copy the following code and paste it into the script editor. Click Compile to make sure there are no errors

bool checkStyle = false; bool checkColor = false;
foreach (ConfigAttribute attr in config.Attributes)
{
if (checkStyle && checkColor) break;
if (attr.val_Name == "Style")
{
// Check the style
if (attr.Selection.GetStringValue() == "Modern") checkStyle = true;
else
}
return ""; // No need to continue
else if (attr.val_Name == "Color")
{
// Check the color
if (attr.Selection.GetStringValue() == "Wood") checkColor = true;

else
}
}
return ""; // No need to continue
if (checkStyle && checkColor)
{
// Apply the restriction: change the minimum value to '20' range.MinValue = 20;
}
return "";
 

This scripts checks if Style is Modern and the Color is Wood, and if it is the case, the minimum value for Width is changed to 20.

This script alone is not enough, we need to add two more: one for Style and one for Color. This is because the script is for the attribute Width only, meaning that it is triggered only when the user enters a value in this field.

 

Therefore the script does not prevent users from entering first a Width that is valid by default (but invalid with Modern and Wood), and then selected these two options. With a script on each of the three attributes involved, we will make sure that the restrictions are applied regardless of the order of entries.

 

Note: There are instances in which one script is enough, even if there are more than two attributes that play a role in the validation script. These instances occur if there is already a standard restriction for the attributes in the script.

5.Select the attribute “Style,” open the script editor, and paste the following code:

bool checkStyle = attribute.Selection.GetStringValue() == "Modern"; bool checkColor = false;

ConfigAttribute width = null;

if (!checkStyle)

return ""; // No need to continue

foreach (ConfigAttribute attr in config.Attributes)

{

if (checkStyle && checkColor && width != null) break;

if (attr.val_Name == "Width")

{

width = attr;

}

else if (attr.val_Name == "Color")

{

// Check the color

if (attr.Selection.GetStringValue() == "Wood") checkColor = true;

else

}

}

return ""; // No need to continue

if (checkStyle && checkColor)

{

// Clear the selection if less than 20

if (width.Selection.HasValue && width.Selection.GetNumericalValue() < 20) width.Selection.Set(null, false);

}

return "";

6.Now select the attribute “Color,” open the script editor, and paste the following code:

bool checkStyle = false;

bool checkColor = attribute.Selection.GetStringValue() == "Wood"; ConfigAttribute width = null;

if (!checkColor)

return ""; // No need to continue

foreach (ConfigAttribute attr in config.Attributes)

{

if (checkStyle && checkColor && width != null) break;

if (attr.val_Name == "Width")

{

width = attr;

}

else if (attr.val_Name == "Style")

{

// Check the style

if (attr.Selection.GetStringValue() == "Modern") checkStyle = true;

else

}

}

return ""; // No need to continue

if (checkStyle && checkColor)

{

// Clear the selection if less than 20

if (width.Selection.HasValue && width.Selection.GetNumericalValue() < 20) width.Selection.Set(null, false);

}

return "";

The last two scripts also check if Style is Modern and the Color is Wood like the first one; in this case, though, if the script returns true, the field for Width is cleared out if it contains an invalid entry.

7.Run Test Configurator

First test:

a. Select Modern and Wood

b. Try to type 18 in Width. You should get an error message (this is from the first script).

8.Second test:

a. Clear out all the previous selections

b. Type 18 in Width (you should NOT see any error message since this is a valid entry).

c.Select Modern and then Wood. As you make your second selection, you should see the field Width getting clear out (this is from one of the other two scripts).

Validation script can also be used to increase the range defined by Value Min and Value Max from the attributes, as well as change the Value Increment (this is not possible with the standard Restrictions functionality).

Value Mapping

Quantity and Unit of Measure

 

Configurator allows users to map any attribute to the field Quantity and/or Unit of Measure. With this mapping, the String Code generated by the selection will carry the quantity and/or unit of measure information (along with the user’s selection).

Steps:

1.Load the configuration COMPUTER.

2.In the Detail tab, add a new attribute called Unit (the name is just an example).

3.Make the column Map To visible and select Unit Of Measure from the drop down. This will map the attribute Unit with the Unit Of Measure field.

4.Move to the Options page and add two rows as shown below.

a. Make sure to include values for String Code.

5.Make the column Map To Value visible and add the specific values (units of measure) that you want the options to be associated with.

In this example, the first option Single Computer will be mapped with the unit of measure EACH, whereas Whole Box

will be mapped to CASE.

Note: The values in Map To Value must be valid GP unit of measures for the current item (in this case “COMPUTER”).

6.Launch the Test Configuration and test the new attribute.

Changing the attribute Unit will update the Unit of Measure field (as well as the String Code). At the same time, any changes made in the Unit of Measure field will also update the attribute Unit. With mapping, the unit of measure will be saved in the String Code. The field Quantity can be mapped as well in the same way as Unit of Measure.

Parent Configuration

This option is used to pre-populate fields of sub configurations with values from the parent (top) configuration. See section “Nested Configurations” for more details.

Default Selection

The configurator allows users to add default options, which are values that are pre-selected when the Sales Line Configurator plugin is launched.

Steps:

1.Open the configuration COMPUTER and add a new attribute called Graphics Card.

2.Move to the Options tab and add the following items. In this example we want to make the first option (Standard) the default selection.

a. Make the column Default Option visible and check the radio button.

3.Launch the plugin from Test Configuration. You will immediately see that the Graphics Card option is automatically selected to the first option (the default one).

Item Traits

Configurator allows administrators to track which Options (or “traits”) are selected in the Sales Line Configurator plugin when configured items are created. The purpose of the Item Traits is to allow users to query the Item Master table and see what options were chosen for the selected item.

Note: The same information can be extrapolated by the String Code. However, the String Code may not be as easy to read for the end user.

Steps:

1.Create a User Defined Field (in the Item Master) table for each trait that you want to track.

2.Open the Configuration screen and map each Item Master UDF with the appropriate Attribute.

3.Each value from the selection will be saved in a separate field (UDF) in the Item Master table (for the given configured item):

Using a simple query as shown below, users can see the traits (in separate fields) for the selected item:

Nested Configurations

SalesPad allows administrators to nest a configuration within another one. For instance, the configuration CHAIR can be added in the configuration COMPUTER as an additional attribute; this way, the chair can be sold as an additional option with the computer. With nesting, the user can reuse existing configurations in other ones, while keeping the logic of each configuration (such as String Codes, Pricings, Restrictions, etc.) separate from each other.

 

Steps:

1.Open the COMPUTER configuration and add a new Attribute

2.Under Control Type, select the option Configuration

3.Uncheck the box under Required to make, in this example, this attribute optional

4.Make the column Config Item Number visible (if not already), and type chair

a. This will be the item number of the configuration CHAIR.

As you tab off, Configurator will validate the entry (making sure that it is a legitimate configuration) and it will populate the

Name field (if empty):

Note: The field Config Item Number has an ellipsis that opens the Configurator Search screen, allowing the user to search and pick existing configurations.

5.Save the configuration and run the test plugin.

The sub configuration will appear as a check box. If checked, CHAIR will appear right below the attribute:

The sub configuration will feature all the attributes and options, as well as the prices, string codes, and restrictions of the configuration CHAIR as if it was used separately. The CHAIR configuration is wrapped around a group that can be collapsed, making the screen cleaner (in case you have more than one sub configurations). The selection in that sub configuration will be preserved:

The nesting can be of as many levels as needed, this means that sub configurations can have sub configurations as well.

Mapping

When using nested configurations, the user can set up mapping and have the fields pre-loaded with values from the parent configuration. For instance, both configurations can have the attribute Unit and the user can decide to map the selection from the sub configuration with the parent one.

Note: The mapping is applied to attributes that have the same Name and Control Type. Steps:

1.Make sure both CHAIR and COMPUTER have the same attribute Unit, with the same options:

2.In the Details tab, Attributes page, set Map To to Parent Configuration

3.Run the test plugin and make a selections: as soon as you flag the attribute Standard wooden chair, this sub configuration will have the attribute Unit prepopulated with the same value as the parent configuration COMPUTER.

Note: The mapping only prepopulates the sub configuration attributes, it does not synchronize the values from the two controls. For instance, if you change the value for Unit in COMPUTER, the selection will not automatically be updated in the CHAIR sub configuration.

Configured Items

When using nested configurations, the Configured Items will have the components from all the configurations (parent and sub configurations):

Excel Import

Configuration allows users to import several different types of data:

  • Attributes-Options

  • Dynamic Configured Items

  • Pricing

Attributes-Options Excel Import

The configuration form allows users to import attributes and options from an Excel file into a new or existing configuration. In this example we will import the following data for a new configuration T-SHIRT

The spreadsheet must be follow these specifics:

  • The first field must be the Attribute_ID.

  • In the Attribute_ID column, you must have numeric values for each attribute that you are importing.

    • It can simply be a sequence number like in the example above.

  • After the column Attribute_ID, you should have all the columns relevant to the attributes.

    • Column names are case sensitive and the have the underscore character instead of space.
    • You can import data for any field available in the configurator screen.

  • After the columns for the attribute, you must have the column Option_ID.

    • This column can have no data; its purpose is to separate the attribute columns from the option columns

  • After the column Option_ID, you should have all the columns relevant to the options.

    • Column names are case sensitive and the have the underscore character (_) instead of space.

    • You can import data for any field available in the configurator screen, except for the field Picture.

 

Notice that the data for options are grouped by attribute through the Attribute_ID field. Also notice that you need only one row of data for each attribute.

Steps to import the data:

1.Create a new configuration (in this examples we have the item T-SHIRT).

a. Open up an empty configuration screen, type T-SHIRT in the Item Number field, and tab off

2.Click Save.

3.In the Details tab, Attributes page, click the little triangle next to the New button and select Import Attributes And Options from the menu.

4.In the Windows file browser, select the file to import and click Open.

5.If the file has more than one spreadsheet, users will be prompted to select the sheet from a dropdown.

6.A confirmation message will indicate that the import is done. A log table will pop up if any error occurred during the import.

7.Double-check that the attributes and the options were imported correctly and save the configuration.

Note: The import tool does not remove current attributes and options. If you wish to replace the current values, you will have to manually delete them before running the import.

Dynamic Configured Items Excel Import

“Configurator” provides a tool to import the data for dynamic configured items from an Excel file. For instance, we can import the following table into the configuration CHAIR

Note: The column names should match the fields that you see in the grid view, with underscore instead of space. Steps:

1. Load the configuration CHAIR and select the tab Dynamic Configured Items.

2.Click the little triangle next to the New button and select Import Configured Items from the menu.

3.The standard Windows file browser will pop up allowing to select the file to import. Click Open.

4.If the file has more than one spreadsheet, users will be prompted to select the sheet from a dropdown.

5.Click OK to import.

6.A confirmation message will indicate that the import is done. A log table will pop up if any error occurred during the import.

Note: The import does not replace the existing data. You would need to manually delete the entries if you wish to replace the current items. Also notice that the tool only imports the Configured Items and not the Conditions.

Pricing Excel Import

Configurator allows users to import pricing in the Pricing tab from an Excel spreadsheet. The spreadsheet must reflect the same fields available in the tab (the set of fields depends on the list of attributes in the configuration).

Example of a pricing table saved as an Excel file:

Steps:

1.Click the little triangle next to the New button and choose Import Pricing.

2.The standard Windows file browser will pop up, allowing you to select the file that contains the prices to import.

a. If the file is not visible, choose a different file extension filter from the drop down on the bottom right corner of the dialog box.

3.Click Open. If the file contains more than one spreadsheet, an input box will pop up allowing you to select the sheet from a drop down.

a. The sheet with the same as the configuration’s item number will be preselected.

b. Click OK to import.

4.As soon as the import is done, you will see a confirmation message.

a. Any errors will be shown in a log table after the import, indicating the row and column and the error type.

5.Save the configuration.

 

Note: It is important that you save the configuration before leaving the Pricing tab. This is because the table is dynamically generated using the information from Attributes. Leaving the Pricing tab without saving the configuration may cause the loss of unsaved data.

Note: The import tool does not remove the current prices. If you wish to replace the current values, you will have to manually delete them before running the import.

Helpful Unhelpful