Designing a rather challenging search/filter/query for loads of possible parameters and values
I am designing a solution for product stock management, in which the users will be able to, for example, allocate a specific volume of a specific product (or type of product) to a specific store (actually a list of stores with different priorities on which ones get the available products first).
This solution will need a component that allows the user to (those are some examples, and, for the sake of brevity, please imagine that all items are preceded by the words "Search, filter and select multiple entries from a list of...")
- Stores/products by name (partial and/or full match);
- Products that belong to a specific category;
- Products that belong to a specific category OR another specific category;
- Categories and subcategories (not products from those, but the categories themselves can be selected);
- Stores/products with a specific attribute (like size or color);
- Stores/products with a specific attribute OR/AND other specific attributes;
- Stores/products whose specific attribute IS/ISN'T EQUAL/GREATER/LESSER than a specific value;
- Stores products whose specific attribute value FITS/DOESN'T FIT a specific range
Well, I think you get the idea. These parameters can be added to each other and, in a certain part of the solution, correlated to each other in a "Rule Editor" manner (configuration of AND/OR conditions and actions).
As the user filters the lists, he/she should be able to pick and choose from the results and build a "selection shopping cart"; meaning that the selection of items made from a specific set of filters isn't reset if this set (and therefore it's results) get changed. The user can change the filters, add some of the results to the selection, change the filters, add (or remove) some more, etc. In some cases, the user will then be able to start different actions regarding this selection at any time (like "delete selection" and/or "add attribute to selection", etc).
I believe that the component used at Mixpanel.com is a great reference of what we're going for:
It solves a lot of problems by using suggestive search and multiple steps when selecting concatenated parameters (ex: "Browser is chrome with version greater than 1.0"); as well as specifying different types of data (numeric, text, and so on).
Our solution would need to interact more directly (at least visually) with the lists (probably tables of some sort), have the "selection shopping cart" functionality, and, ideally, also be able to perform the "Rule Editor" functionality (maybe with a bit of differentiation in the design).
So, if any of you know of more references other than the Mixpanel one, I'd be very happy to hear about them, and also if you have any questions or have been presented with a similar problem.
I'll update this thread whenever I have something rough drawn up.
Thanks!