Shipping rates are going to be based on one of the following: total order amount, total order weight, or total item quantity. So for your scenario, based on the information that you provided, I would choose to use total order weight, and simply do not assign a weight; or assign a weight of zero for the digital items that you are selling.
Because you want to charge for the actual items you are shipping, you will need to create a rule based on weight (lb or kg - just be consistent for each one) which will trigger a shipping charge that you selected. For example: total weight over .25lbs but less than 5lbs = $10.00, or whatever you deem appropriate.
To get started, login to your paypal account and click on the "My Account" tab, click profile, and then My Selling Tools. On the "Profile" page, Click on "My Selling Tools" on the left side of the page.
Scroll down to the “Shipping my items” section and find "Shipping calculations". Click on "Update" for that row.
*Make sure you include all of the States that you ship to & currencies that you accept. For complete and detailed instructions, please try this link: https://www.paypal.com/us/webapps/mpp/get-started/shipping-calculator. Hope this helps!!