Details
-
Type: Improvement
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: 5.0.0
-
Fix Version/s: Short Term
-
Component/s: Staff Interface
-
Labels:None
Description
Often times people enter the same thing for "Name" as for "Label" when creating Configurable Options. It seems that unexpected behavior can happen if the name field contains special characters. For example, checking out with the standard order template with a config option having a "?" character will not allow it to be added to the cart.
We should do some validation to ensure that the name of a config option contains only alphanumeric characters and preferably no spaces. We probably don't want to force this if the option already exists, only when creating new options, otherwise it may prevent someone from editing an existing option.
The name should also exist, it cannot be left blank. And, the name should be unique. Don't allow an option to be created with the same name as another option. This normally wouldn't be a problem if options with the same name aren't assigned to the same group, except that you could assign them to 2 different groups and then assign those 2 config option groups to the same package, in which case they would conflict. So, it's probably better to make the name of each option globally unique.
NOTE! We cannot force config options to have a unique name. Very often someone will use the same option, with the same name (that integrates with a module), and have different pricing for different Packages that it is assigned to. If the name must be unique, then they would not be able to set different pricing, or they would not be able to use the same name that the module expects. We do want names to be unique per config option GROUP, so perhaps we can instead show a warning for a group, if the contents of the group have a conflicting config option name.
For example, under Packages > Configurable Options where the Groups are listed, show a warning icon on the left before the Config Option Group name. When clicking the row to expand and show the options, add an information/alert box above the table that lists the options.