A shoppingcart is an order (bestelling) which is not final yet (add a status attribute) So you don’t need shoppingcart as a separate entity. Your shoppingcart can be an order. This order will have one or many orderlines (which is not yet in your domain model). Each orderline will be either a Accomodation, a TravelPackage, a Flight or a Product (which is not yet in your domain model). Adding an orderline to the order will be how you add a product to your shoppingcart.