Shopping cart/mabdeljalil

This looks like two steps:
1.  Given the user is anonymous
2.  Given a user exists

You probably don't need the first one, anyway.