Hi,
I see two ways to do it:
- You could create 2 warehouses, one for each type of product. And assign the products and shipping methods to their corresponding warehouse.
That way, on the checkout, if you have products from both warehouses, you'll have a shipping method selected for each warehouse and not one for the whole cart.
That way, the error won't happen.
- You could not restrict the shipping methods in the products. and instead have no weight for digital products and a weight for the other products. Then, you could add min/max weight restrictions on your shipping methods so that shipping methods for digital goods don't display if the cart has weight, but that the shipping methods for paper goods display as long as the weight in the cart is at least the weight of the lighter paper good in the shop. That way, the shipping methods for paper goods will display when at least one product with weight is in the cart.
That second option seems cleaner than the first but it will probably require a bit more work to change the settings compared as to what you currently have.