You are correct about Session and Cookie not being very scalable.
The most scalable e-commerce apps persist the shopping cart to the database. You can serialize it and store it as a blob, perhaps using the Profile system. You can also store it to a custom table.
If you do this, you'd want to make good use of caching, You would search the cache for the cart whenever required, and only fetch from the database if the cache is empty. You would, of course, purge the cache when items are added or removed.