View source | View content page | Page history | Printable version   

Projects:Filter Product Categories Definition



When logging into WebPOS the system retrieves the valid/applicable product categories from the server by doing a query for the valid products and identifying their unique list of product categories.

In high volume environments with millions of products, this query can take a very long time to run and is very resource intensive.

To solve this the proposal is to keep an explicit list of product categories by assortment. This list is computed from the products of an assortment. So no manual actions. The product category list is stored in a table: filter product categories. This table is a child table of assortment.

If the filter product categories are present in an assortment then the system should use these product categories when loading the product categories in WebPOS.

For backward compatibility: if there are no filter product categories for an assortment then the system should work in the same way as now.

Design Summary

Filter categories are to be defined as a child-tab (and table) of the assortment tab. The tab should be completely read only.

View larger

The new Filter Product Category table has the following columns:

There should be a unique key on the combination of assortment and product category.

The product categories filter table should be used when: the high volume product preference is set to Y

The java/logic changes are to be made here:

Computing the filter product categories

The following code has to be implemented:

  1. clear the filter product categories of the assortment (is necessary as also products can be removed from the assortment)
  2. check all products of an assortment and compute the set of product categories used in the assortment (group by product category of the active products in an assortment).
  3. create the new unique filter product categories in the assortment from this list.


After the development is done (when screenshots are available), update the user documentation here:

Retrieved from ""

This page has been accessed 1,267 times. This page was last modified on 11 August 2015, at 12:54. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.