PIM-3197 : re-work and spec the product query builder