In standard Microsoft Dynamics 365 for Finance and Operations for Retail, assortments:
But assortments do not have any effect on filtering products in the (retail) sales orders in the Microsoft Dynamics 365 for Finance and Operations client.
Order Entry Optimization adds the filtering of products based on assortments.
For mid to large size distributors and retailers it will be increasingly vital to be able to utilize multiple marketing and distribution channels that are highly effective, efficient and profitable. If we have to ask yourselves why this is increasingly vital it might already be too late. Your competitors are coming for your customers with a vengeance. They will have very clear and consistent messages that promises to deliver exactly what the need of your present customer and they actually have the means to deliver it! Even beyond the expectation of the customer.
One of the clearest messages is what one sells through a channel. Examples are best found online. The company Cool Blue sells through online channels like TVStore.nl where one can only find tv’s. Or digital camera’s through camerashop.nl. Cool Blue has more than 50 of these channels and they are not only online but also have physical shops. It’s clearly focused and highly successful. Another, more generic, example is the differentiation between the sizes of physical stores in categories. The smaller shops only sell the “core” product range and can be even specialized on some (local) brands. The bigge(r)(st) shops sell just about the complete product portfolio and even beyond that when they sell out of the catalogues of the suppliers. The alignment of the products to these channels out of the complete product portfolio is done through assortment functionality in Microsoft Dynamics 365 for Finance and Operations . Within assortments one can include and exclude complete ranges, products and variants.
Note
In standard Microsoft Dynamics 365 for Finance and Operations , we are only able to assign assortments to channels. We found that in many businesses it is useful to extend this functionality to other entities in order to sell or purchase products per:
We added the ability to in- and exclude products on quotes, (retail) sales- and purchase orders by assigning assortments to customers, suppliers, employees, sites, warehouses and customer or vendor chain. In Quotes, purchase or sales orders the assortments, coming from the sources mentioned above, are combined into an order specific assortment tailored to the combination of channel, customer/supplier, chain, employee, site or warehouse.
Given a total product file in a company an employee, customer and store (or warehouse or chain) could all have their own NON-overlapping subsets (assortments) of this product file. Standard Microsoft Dynamics 365 for Finance and Operations Retail functionality sets a default assortment in the header of an order or quote and that’s basically it. The list of products shown will be based on the set assortment. However, the total employee assortment may not be valid in combination with another assortment. For instance, the assortment of the customer or the channel might not overlap. When all assortments would have to be applied, very strictly, the items displayed in the order would only be the ones in the intersection of the three assortments:
Note
As stated, in different words, above assortments can be useful in three ways:
The user will be helped automatically by setting the correct (intersection of an) assortment and he or she can choose an assortment (see below for a further description) or remove the assortment filter. By which he gets to see the full product file. But what if the assortment should be applied very strict? This requires a setting which determines whether an assortment should be strictly applied or whether it is just a useful filtering mechanism for the operator.
Before the solution is fully described first the following: A total branch assortment can be set up containing multiple assortments. Besides, the same assortment can be just a help for one employee and restrictive for another and lastly a branch assortment can be a help for selling goods, but must be applied restrictive in case a user is acquiring goods that will go on stock for the branch. These facts lead to the conclusion that application of an assortments-“policy” (Non-restricting or restricting) is dependent on the entity the assortment is associated to and can be different when applied for acquisition or selling. In case a user tries to insert or types in an item, which is not part of the restrictive assortments, a message will appears telling him that is not possible.
View items
If an assortment is present in the order header, only items within this assortment are feasible. If no product group is specified in the order header, all items (except for the blocked items) are visible in lookup and allowed in the line.
Inserting items
On the order line, items can be added in several different ways. In case of retail orders, OR when assortment is set on the order, these items are filtered. It should not be possible to add an item (or variant) which is not part of the selected restrictive assortment. Therefore, the authorization of the assortment field in the order header is important to guarantee that items are sold solely to customers who are an official dealer, etc.
For this reason, on each entity two new fields have been added in the new field group assortment (except for the Retail channel as this is only applicable for sales orders/quotations):
Both fields have the options:
The assortment policies can be setup on vendor, customer, worker, site, warehouse, channel and company chain.
In standard Microsoft Dynamics 365 for Finance and Operations there is no assortment set on the order header. Now, assortments can be manually selected or are inherited to the header of the following order types:
The lookup of products on the order line will be filtered accordingly: products can be only selected if they are part of the order assortment. On the sales order header, tab General, the field “Applied assortment hierarchies” shows all assortments that are applied to the order. In the lookup it is possible to see the origin.
When the user clicks on the lookup in this field a form with grid shows the following information:
For example, if we have three assortments applied: Customer assortment, Channel assortment, Employee assortment. The user un-applies the Retail channel hierarchy entity and closes the lookup form. The text in the field “Applied assortment hierarchies” will only state “Staff, Customer” assortment names and the shown product listing when the user searches should be restricted to the intersection of staff (employee) and customer.
Field | Description | Remark |
Customer | SO, Retail-SO, Sales quotation, Sales agreement | - |
Vendor (Supplier) |
- |
PO, Purchase agreement |
Staff (Worker) ** |
SO, Retail-SO, Sales quotation, Sales agreement |
PO, Purchase agreement |
Site |
SO, Retail-SO, Sales quotation, Sales agreement |
PO, Purchase agreement |
Warehouse |
SO, Retail-SO, Sales quotation, Sales agreement |
PO, Purchase agreement |
Company chain |
SO, Retail-SO, Sales quotation, Sales agreement |
PO, Purchase agreement |
Retail Channel (Store) |
Retail-SO, Sales quotation * |
PO * |
* If Microsoft Dynamics 365 for Finance and Operations user is assigned to a retail channel then the retail channel assortments will be applied as non-restricted.
** On creation of an order the worker of the signed in user determines the assortment on the order header.
It is off course possible to create assortments and assign it to one or multiple channels. But we often see hierarchies in assortments. Many companies have stores sorted into sizes. E.g. Small, midsize and big. With nested assortments one does not have to maintain multiple assortments but by setting the parent child relation the child assortment will inherit the assortment of the parent. Doing so will keep the maintenance effort to a minimum. Changes to a parent assortment will automatically be transferred to its descendants once forward published.
There are basically two approaches of building up a nested assortment structure.
Child assortment is a subset of parent assortment
Start with an assortment that has all products in it and exclude in its descendants more and more products.
We have an assortment called Basic and it includes all the Electronics equipment. The company has 3 types of stores (small, medium and big).
We make the following assortments based on the store size:
Child assortment is extended with extra products
Start with the smallest assortments and extend this in the descendants of this assortment by adding product nodes, products or variants. We can do the previous example in another way and have a Basic assortment that we have it in all of our stores and based on the size of the store we extend the assortment. Let us take a supermarkets chain as an example. They have basic assortments that will be in all stores (ToGO). Then they will extend this assortment for the normal supermarkets and will extend it more for big stores. We will have the following assortments:
On the retail assortment details page a new section Nested assortments with two grids has been added. One grid shows the parent-assortments of the current assortment. The second shows the child-assortments of the current assortment.
When the assortment is in edit mode the user is able to add new parents:
Note
The lines from parent assortments are indicated with a Lock symbol and cannot be edited.
If you want to override such a line you can add a new record with the same key and change the line type, on save it will hide the line from the parent. On delete of this inserted line the parent will be restored.
Note
When the assortment is in edit mode the user is able to remove or delete a parent:
When the user does this, the product lines that were copied from the deleted parent, will be instantly deleted from the current assortment and the current assortment child assortments and all their descendants.
Note
Note
Note
When the assortment is in edit mode the user is able to add new children: This will open a lookup form. The user will be able to choose the child-assortment through a lookup:
The list of optional assortments is filtered so no circular relations can be set up.
When the assortment is in edit mode the user must be able to remove or delete a parent. When the user does this the product lines that were copied from the current assortment must instantly be deleted from the deleted child-assortment and all its descendants.
With the button “publish” the user indicates that the current assortment can be processed. During processing the current assortment product lines get “exploded” (in a hidden table) into a list of items and variants that are either in- or excluded for that assortment.
A new button called “Forward publish” has been added.
Clicking this button will trigger the publishing of the current assortment, its child assortments and all its descendants. If a child assortment or its descendants has multiple parents, it can only publish that child assortment if all its parent assortment are published!
Product lines that are copied from a parent assortment into the current assortment:
Product lines that are added from the current assortment:
*) For instance: If a category is excluded in the parent assortment and included in the current assortment. It should be prevented or corrected that the exclusion from the parent assortment exclude items based on this conflicting same level setup. This practically means that
the product line should not be copied or if it already exists it should be deleted from the current assortment product line list.
The in- and exclusion rules only work within an assortment. This means that if for the same level (Category, Product, variant) is included in assortment A and excluded in assortment B and in a certain order these two assortment get combined the end result will be that this level will be excluded.
Inserted lines in the child assortment always have a higher priority than the inherited lines from parents.
Field | Description | Remark |
Insert new product line | Child will not be overridden (Stylus) | Product line will be inherited from parent to child (Lock) |
Update product line |
Child will not be overridden (Stylus) |
Product line will be inherited from parent to child (Lock) |
Delete product line |
Child will not be deleted (Stylus) |
Inherited parent product line will be deleted from child |
Field | Description | Remark |
Insert new product line |
New child product line will be inserted Inherited line will be hidden |
New child product line will be inserted |
Update product line |
Child product line will be updated |
Delete product line |
Child product line will be deleted |
Assortments can be in one of the following status: Published, Draft or Expired.
Important
Retail > Retail IT > Products and inventory > Process assortments
If an assortment has expired all linkages to either parent or child-assortment will be deleted the first time the process assortment batch is run after the expiration date.
Retail > Headquarters setup > Parameters > Retail parameters
Extra parameter fields:
Field | Description | Remark |
Show non-applied assortments |
Show all assortments in the system on the order header, to help filter the items lookup |
Display all active assortments in the system on the order header. The ones that are applied to the order based on their origin (Channel, Worker, Customer, Vendor, Site, Warehouse or Chain) will be marked selected. The value of the assortment policy will be set accordingly. Assortments that do not have an origin (where table name is empty) will be set non-restrictive. |
Lower level inclusions precede higher level exclusions |
Default value for this field on creation of a new assortment. Used to simplify the setup of assortments |
The user can setup assortments in Category and Product management. An assortment is a multi-level category structure with products.
Assortments can be set up on the following entities:
Human resources > Workers > Workers > sub tab: Assortment
Warehouse management > Setup > Warehouse > Warehouses > fast tab: Retail
Warehouse management > Setup > Warehouse > Sites > fast tab: General
Accounts receivable > Customers > All customers > fast tab: Retail
Accounts payable > Vendors > All vendors > fast tab: Retail
Sales and marketing > Setup > Prospects > Company chains (customer chain / vendor chain)
Retail > Channels > Online stores > Ribbon tab: Channel > View assortments
Retail > Channels > Retail stores > All retail stores > Ribbon tab: Store > View assortments
In an order line there are generally four ways to insert an item:
The assortment is used for filtering the items in the lookup on sales orders, purchase orders, sales quotation, purchase quotation, sales agreement, purchase agreement. Specials are filtered out by default.
Specials are also filtered out by default on trade agreements, movement inventory journal, inventory adjustment journal, transfer inventory journal, counting inventory journal.
The available products per assortment can be listed, by using the query View assortment products. Important to note here is that this overview will display all available products within the assortment, but does not show Variant details. When a Variant item is added to the assortment, then the product is listed here, but it is not recognized as a Variant (=standard Microsoft Dynamics 365 for Finance and Operations behavior). However, on the orders, the excluded variants will not be visible.
Note