Generally good! Use simple relation names rather than writing sentences on OM arcs, and if the relation isn't clear, define it separately in a textual addendum. All looks good, except for two tricky issues: (1) "Each User has one Cart. A Cart has a User or is anonymous with a session": is this anonymous cart created afresh for each session? Should you represent this explicitly? Will you transfer items to the user's cart when they log in? (2) " A Product has ! an Inventory and Price at each Store": the mention of the store suggests that something else is going on here that should be represented (or you shouldn't have mentioned the notion of a store).
Generally good! Use simple relation names rather than writing sentences on OM arcs, and if the relation isn't clear, define it separately in a textual addendum. All looks good, except for two tricky issues: (1) "Each User has one Cart. A Cart has a User or is anonymous with a session": is this anonymous cart created afresh for each session? Should you represent this explicitly? Will you transfer items to the user's cart when they log in? (2) " A Product has ! an Inventory and Price at each Store": the mention of the store suggests that something else is going on here that should be represented (or you shouldn't have mentioned the notion of a store).