Is there a way to determine if an order requires shipping? We're selling a mix of both tangible and digital products with Commerce.

If an order doesn't require shipping, I'd rather just take them to directly to the final one page checkout/payment form.

Is there a way to determine this natively or do I need to add a "RequireShipping" field and loop through the line items to see if one exists in the user's cart?
Commerce_OrderModel has a getShippingMethod() that will return a Commerce_ShippingMethodModel class of the current shipping method, or null if nothing has been set.

If you've already got the order in the template is should be as simple as:

{% if order.getShippingMethod() %}
    Shipping.
{% else %}
    No shipping.
{% endif %}