No, the user should not be forced to login in order to use a wishlist-feature in an e-commerce website. Instead, take this opportunity to provide the user with a feature. Every time the user adds an item to his wishlist, you are given an opportunity to connect with the user. E.G.:
You have added {n} products to your wishlist. In order to retrieve your wishlist at a later time, please feel free to e-mail this wishlist to yourself, or sign up (it only takes a minute!) to access your wishlist from anywhere.
Reasons why I feel this is a more friendly way of communicating:
- You are opening up a feature that is otherwise reserved for people who are registered and logged-in. As a means to save the wishlist (a service) you can ask them to fill out their e-mail address, or to sign up;
- You are allowing your user to create a list of items before a purchase, without scaring them away with an action (filling out personal details) that is quite intrusive, after all: they apparently haven't even decided to use your services, yet.
Alternatively, you could choose, much like how the stackexchange network does it, to allow users to sign in with Facebook, Google, et cetera, in order to sign up. If, at any point in the future, you require more information from them, you can simply ask for it.
Arguments against such a feature (wishlist for people who are not signed in) could be that business people tend to want to know their potential customers. The point is that there are a lot of people just shopping and comparing, taking away that feature from them might scare them off, whereas offering that feature might compel them to stick around.