In this paper we present an original approach for personalizing complex Web applications, in particular e-commerce applications. This approach is based on a clear separation of concerns, namely: base application functionality, user profile management, and personalization rules, and supports seamless addition of personalization features (such as recommendations, special offers, individual interfaces, etc). We first explain our view of e-commerce applications as views on application models, and briefly explain why personalization functionality should be dealt by separating concerns. We next introduce a simple example and focus on different personalization patterns, emphasizing on behavior personalization. We show which design structures are the most appropriated for obtaining seamless extensions to existing software. We finally discuss some further aspects in building customized e-commerce software.