Some of our products are in-person training, for which shipping is irrelevant. Even saying "Free Shipping" seems weird - there is literally nothing to ship.
We have other products like books that require shipping. For these products we charge a flat handling fee plus a shipping fee based on the weight of the entire order.
I have not yet found a way to make all of this work in WooCommerce. Shipping zones with table rates work beautifully for the ordinary products that require shipping, but I can't get the handling fee to go away for the non-shipping products.