no need to complicate matters by having separate carts for the membership, physical and digital goods.
since you will be offering digital goods and subscriptions, you will need to force registration before checkout.
you will need to implement User Level authentication to handle the initial registration, then the different subscription levels.
for the user level, set the default value to 0 so that when a new registration is submitted they get the very basic access level.
your users table will also need to have a registration date column.
When an order is placed, you can update the UserLevel column based on the level that they purchased. in this thread:
i give an example of how to create a 14 day trial membership access rule, the same principle can be used for longer periods to create 30 day access rules or 6 month - 1 year access rules.
for the digital goods, see the tutorials on the eCart support page for creating a download center.
with mixed products like physical and digital goods in the same cart, the important thing is to have a productType column to mark whether a product is is digital or physical, this can be used when creating the download center and for the creating the shipping rules.