Projects:Product Variants and Characteristics/Functional Specification
Product Variants and Characteristics - Functional Specifications
The purpose of this project is to enable the ability to create and easily manage Product Variants and to define additional characteristics to products.
Product Characteristics are attributes that can be added to the product definition that extend the description of each product. Examples of Characteristics are Size, Color, Quality, Shape or Weight. These characteristics can be used later to filter or search products.
Products can be related to a parent Generic Product. This is a generic product where common attributes like tax or prices are defined. By default products inherit all the attributes of the Model. They can be overridden on each product. Generic products cannot be purchased or sold or used in any document.
Product Variants are products with a common generic product with mandatory characteristics that define the product. For example the Generic product Shirts Summer Season 2013 by My Provider implements the Characteristics Size and Color as variants. This Generic Product will have as Product Variant each combination of Color and Size.
The scope of the project is to implement Product Characteristics and Variants. It will also have to deliver tools to manage the Variants in an easy manner.
It is necessary to be able to add additional Properties to the Product DAL object to be able to easily query for them. It should also be possible to add extra fields and columns in the Product main tab with the characteristics defined for the products. In Grid mode they should be filterable and sortable.
Performance is a key feature to measure within this project as it is expected to have high volume of data.
- Generic Product
- It is a product that is not directly sold or purchased. Each one has child products based on the categories defined in the Generic Product. Each of this products is called variant. The models are used to define common attributes for all its children as tax information.
- Each product child of a Generic Product fulfilling its mandatory characteristics. It inherits the definition of the Generic Product and can override it. For example a Generic Product sets a default price and specific variants might change it.
- Attribute added to a product, if it is variant it can be used to define the product (Color). Non variant characteristics are used to extend the description with valuable information that do not complete the definition of the product.
User roles & profiles
Business process definition
- User defined Characteristics
- Characteristics might have lists of possible values.
- List of values can be arranged in a tree, summary level values can only be assigned to Generic Products. For example summary level Green and children each provider's code for green color.
- Values of characteristics can be grouped in subsets.
- Characteristics might have lists of possible values.
- Product has a list of characteristics to apply and their corresponding values.
- Some characteristics can be Variants
- Characteristics and theirs values must be edited and viewed as Product attributes and not as children values.
- Some characteristics might allow multiple values and optionally a percentage.
- When a new Generic Product is created with variant characteristics it can be exploded to create all the variants.
- Products inherits properties and characteristics from the model.
- When adding a Generic Product to a Purchasing Document it should be possible to select the quantity required for each of its variants.
- Reporting available filtering and grouping by characteristics.
Functional requirements based on business processes
- Product Characteristics window
The Characteristics are defined in their own window. A characteristic is defined by a name and whether is variant or not. If it is variant then there will be an explosion, that is, from the generic product that contains all the values it will be created as many products (variants) as values
In the child tab you define the values for each characteristic. The available values can be grouped in subsets. For example the color characteristic might have a subset of values for each provider. Each value can have a code to be used to generate the variant Search Key. If subsets are used this code can be overwritten in the subset values tab.
|1.1||Header tab including Name||Must have||Done|
|1.2||Child tab Values including Name and Summary.||Must have||Done|
|1.3||Check Is Variant in the header. This value will be populated in the Product window when selecting the Characteristic||Nice to have||Done|
|1.4||Ability to group values in subsets.||Should have||Done|
|1.5||Button Add products that allows to add products to nodes that are not summary and belong to a characteristic that is marked as not variant||Should have||Done|
- Product window
The characteristics and its values are shown in a new column in the grid view as a concatenation. In form view the characteristics assigned to the product are included as read only fields in the main tab. Characteristics assigned can be variants or not. Characteristics are edited using a Manage Characteristics button. In this process it is possible to assign or remove characteristics to a product and edit their values.
Generic products with variant characteristics have a new tab with all the available values. This list can be filtered by subset or by summary values. It is possible to deactivate some values to avoid using them during the automatic variant generation process. It is also possible to define a variant characteristic as Defines Price. In this case it is possible to set a unit price in the desired values to overwrite the generic's price when a variant using that value is created.
Alternative to grid view: If it is not possible to add the columns it should be possible to implement advanced filters by the characteristics.
Processes related to generic products:
- Automatic Variant Creation: To automatically create all the variants based on the characteristics and their values. If a summary value of a characteristic is set on the generic product only its children values are considered. If a value subset is assigned to a characteristic only values of the subset are considered. Characteristic value's codes are used to build each variant Search Key.
- Manual Variant Management:
- Option 1: Popup window, or child tab, with a list of all the existing variants and the ability to add new ones setting the desired characteristic values.
- Option 2: Popup window or new tab with all the possible combinations of variants with checks to select/unselect the desired ones.
|2.1||Header tab in grid view must include a columns with a concatenation of all defined characteristics with their value. It has to include an advanced filter for characteristics.||Must have||Done|
|2.2||Header tab in form view must include as fields all characteristics assigned to the product.||Must have||Done|
|2.3||Generic Product field.||Must have||Done|
|2.4||Variants tab. New tab displayed when a generic product is selected showing all the variant products. Only Name, Search Key and Characteristics.||Nice to have||Not started|
|2.5||Generic Product flag to identify a generic product. Add display logics based on this field.||Must have||Done|
|2.6||New tab for characteristics assigned to the product with a variant flag. In case the product is generic include a tab with all the possible values of the characteristic with the ability to deactivate them. In this tab it is also possible to set the code for the values, this code is inherited from the subset value or from the characteristic value.||Must have||Done|
|2.7||New process to automatically generate Variants from the Generic Product. This process must take in the account if the generic product has a subset or a value already assigned to the characteristic. When the Search Key is generated it has to check if all the values of a characteristic has a code to be used.||Must have||Done|
|2.8||New process to manually manage variants of a generic product: P&E that allows to filter by the values of the characteristics (combinations). This P&E shows all the variants with a column that says whether the variant is already created or not. The ones that are already created can be edited to change their Name or Search Key. See user cases that will cover this point||Must have||Done|
|2.9||Ability to assign multiple values to a single characteristic with percentages.||Nice to have||Not started|
|2.10||New process to edit characteristic values that are not variants||Nice to have||Done|
|2.11||Ability to add an image to a specific value of the characteristic||Should have||Done|
|2.12||IDL for variants: Three variants by default and ability to add as many as required||Must have||Done|
- Purchase Order window
When selecting a Generic product a new button appears to select the variants to order. This opens a popup with a list with all the variants to include in the order and a box to set the quantity. When the popup is closed new order lines are generated based on the user selection.
|3.1||Process to select non generic products. Available properties to define are Quantity, and Price. This process can be launched as a P&E from the Purchase Order header. This P&E shows all the purchased products and can be filtered by the desired generic product or variant values.||Must have||Done|
- POS Hierarchical Product Characteristics
In the POS it should be possible to browse through categories considering that they can be organized in a tree. Clicking on a parent category should display its children categories. Generic products are considered as special categories and clicking on them would show all their variants.
|3.1||Modify POS Product browse to enable hierarchical categories.||Must have||Done|
|3.2||Add Generic products as extra categories.||Must have||Done|
- Not allow to select generic products all over the ERP
Products defined as Generic Product cannot be sold and purchased either. What can be sold or purchased are the variants related to the generic product. To ensure this rule many selectors, combos, processes and forms need to be changed
|4.1||Review and change Product selectors (in transactional windows and reports)||Must have||Done|
|4.2||Review combo boxes||Must have||Done|
|4.3||Processes that perform transactions with products: Not allow to do it with generic products||Must have||Done|
|4.4||Review triggers||Must have||Done|
|4.5||Add generic product field and char description in product selector (both selectors)||Must have||Done|
User Interface Mockups
Product generated entity class should include methods to handle characteristics.