Dear slumley,
Thank you for the sample rules. If I understand you correctly, the "Courier" Ruleset works just as you want it (i.e. it is always offered with the correct shipping costs).
The Post office and Collect from office rules, on the other hand, should not be offered at all if any product from manufacturers 78, 82, 18, 64, 86, 94, 547, 560, 571 or 572 is in the cart. If this is the correct understanding, then your condition using issubset is wrong. In particular, your issubset means that the rule will not be offered if ONLY those prohibited manufacturers are in the cart. As soon as any other manufacturer is in the cart, the method will be offered.
On the other hand, a condition=contains_any(Manufacturers, 78, 82, 18, 64, 86, 94, 547, 560, 571, 572) will return to true if at least one of the given manufacturers is in the cart, but also potentially other manufacturers. If I understand you correctly, this is the very case where you want to hide your method (at least one of these manufacturers, but possibly also other manufacturers in the cart).
Have you actually tried my rules e.g. for "Collect from Office':
Comment=Tudortech; Condition=contains_any(Manufacturers, 561); Amount<1300; NoShipping
Condition=contains_any(Manufacturers, 78, 82, 18, 64, 86, 94, 547, 560, 571, 572); NoShipping
Shipping=0
If you add only one product from manufacturer Ryobi (id 547) to the cart, then the contains_any of the second rule will evaluate to TRUE and thus the second rule should prevent this method from being offered. Do you observe any other behavior?
If so, we'll need to start debugging the values of the Manufacturers variable (
open-tools.net/documentation/advanced-sh...merce.html#debugging). In that case, please simply prepend the following rule to your rulesets, which will print out the values of all available variables:
Message=All variables: <pre>{Values_Debug}</pre>; Value=0
Of particular interest is the value of the manufacturers list. Could you paste that here?
Best regards,
Reinhold