Price Lists & Rules with Multiple Tags

Hi Steve,

Thanks for the great question!

Short answer - no - it’s not currently possible to insist on multiple of the same product selection fields, e.g. multiple product types, or multiple product tags. As I’m sure you see, this could only work for product tags anyway, as none of the other fields allow for multiple rules to be met at once (with the exception of container type in mixed packs). For example, a product can’t be a Keg and a Cask, so the operator between these two parameters would have to be ‘or’.

Long answer:

I think you may have slightly misunderstood how the price book rules work. In all fairness, the way a computer interprets the rules isn’t always the same as how a human might. The computer is always consistent, so once you’ve got it, you’ve got it! I’ll run through your examples, and hopefully, this will clear it up a bit.


Product types: Multipack AND Product Tags "Tag A" or "Tag B"

This would match products that are multipacks and have either “Tag A” or “Tag B”. If a multi-pack has either tag, it will satisfy this rule’s criteria and use it. It doesn’t matter whether it has both or a single one of either tag - it meets the criteria as the operator is ‘or’. If the operator (which isn’t currently possible) was
“Tag A” AND “Tag B”, only products with both tags would meet the criteria.


Product types: Multipack AND Product Tags "Tag A" or "Tag B"
Product types: Multipack AND Product Tags "Tag A"

Your second example is a good one to further explain the above. Say you have a multipack product with Tag A (and not tag B). Breww will go through your rules from the top and pick the first rule that fully satisfies the criteria. Starting from rule one, it will read left to right. Product type: multipack - :white_check_mark:. Then it sees the 'AND" keyword and knows that the next whole query (Product tags) needs to be true as well. The next query is Product Tags: "Tag A" or "Tag B". The product must have Tag A or Tag B. The product has Tag A, so that satisfies the tags part. Both the product type parameter and the product tag parameter have been satisfied; therefore, this rule is selected. The second rule in this example can never be selected, as a multipack with Tag A will always be picked up by the first rule, regardless of its other tags.


Product types: Multipack AND Product Tags "Tag A"
Product types: Multipack AND Product Tags "Tag A" or "Tag B"

Similar to the second example, a multipack with Tag A (regardless of any other tags it might have) will always be selected by the first rule. And vice versa - a multipack with Tag B (regardless of Tag A status), will be picked up by the second rule. The “Tag A” referenced in the second rule isn’t doing anything, as no mixed packs with Tag A could ever make it to rule two.


The solution to all this would be to allow you to use the ‘and’ operator between product tags. For if you could do (note the *and*):

Product types: Multipack AND Product Tags "Tag A" *and* "Tag B"
Product types: Multipack AND Product Tags "Tag A"

then a product with just Tag A and not Tag B (and vice versa), couldn’t satisfy the first rule and would move on to the next one.

Please let me know if you need any further help in understanding this - I’m sure it’s helpful to others as well, so please do ask if so.

Finally, I have created a feature request for you, for the ability to use the ‘and’ operator between product tags.