**Option 4)** When the user clicks proceed to checkout, the user has filled their basket, they've spent time on it and are more than likely committed to buying the item(s) in it. 

Users are more invested in the items after finding them and at the proceed/checkout point are willing to go the whole hog and buy them. The moment they click buy/proceed to checkout, they're committed. 

This is what Amazon and alot of ecommerce platforms do. Now I know that users are different etc but theres no reason to reinvent the wheel.

The reason I chose 4: 

**1)** may deter them right at the start to continue shopping and may interrupt their flow in looking for items and is a bit abrupt. 

**2)** adding an item to the cart doesnt mean they will buy it, its not uncommon for ecommerce platforms to report that users leave items in cards for long periods of time. 

**3)** stops them from adding removing items from the cart if they added too much of something or items by mistake, and may be uncomfortable at having to sign in/register to change it.

You can always test them with your users and see what returns the best conversions. But option 4 is a convention and arguably the best UX.