I'm building a solution where we'll have multiple sites but with a single sign on.I'm not sure what would be the best way to handle multiple carts though. it's not possible to have multiple carts, right? Should I go for having multiple OrderForms and naming them to the site id or what is the preferred approach?
It's totally possible to have multiple carts.
Basically a customer can have multiple cart per name and per market.
Here's the way to create/get the cart for current user, current market, which the name is specified for the site (pseudo code, you'll need to check the APIs again)
var cartHelper = new CartHelper(SecurityContext.Current.CurrentUserId, "FirstSite", currentMarket);
define some constants for each of your site and then create/get carts based on relevant name should help.