Need to limit Commerce Shipping Condition to only fire if there are no items that do not match
Unfortunately, the way that condition was written, it only matches for, &quot;Order contains any products from these categories.&quot; The logic you're looking for is, &quot;Order contains only products from these categories.&quot; For that, you'd need to write a custom condition plugin. This would be a reasonable core feature request for Drupal Commerce and would apply for the other &quot;contains&quot; conditions as well ... which leads me to believe we might implement it as an &quot;operator&quot; select list on the condition itself.