I'm looking into shopping cart possibilities for a website with a small number of products, each of which may have a couple of extras. E.g., a Widget may have a Bell and/or a Whistle, selectable by the purchaser.
Most advanced ecommerce systems, and even some of the basic external shopping baskets like PayPal basket, have some form of product option capability.
But products options can be a bit of a can of worms. What you think might be a simple requirement at first glance can turn out to be a much more complex requirement when you look at it indepth, and one which may rule out some ecommerce systems.
e.g. 1: Most ecommerce systems support simple product options which don't affect price, however if you want product options which do affect price this may rule out some systems (although most should cater for this in some way, hopefully in a multi-currency situation too).
e.g. 2: If you want table based shipping based on overall package weight, then many systems don't adjust weight with product options. So if you are selling a PC base unit and you want to sell a monitor as a product option you might have issues.
e.g. 3: For add-ons, sometimes you don't really want product options but rather you want the options as products in their own right, so you can describe them in more detail, control stock numbers and so people can buy them later individually. In this case rather than having product options you might need instead a 'People who purchased this item also purchased this item' facility for cross-selling / up-selling.
e.g. 4: Most ecommerce systems support simple product options which don't affect price, like colour, and size. If you are a clothes shop and you want to assign product option level stock control, stock control against combinations of multiple options (size, colour, cut), whereby you don't sell size 40 red shirts if they are out of stock, then this will rule out a number of systems.
e.g. 5: Some product options are notoriously difficult to handle with a lot of ecommerce systems, ones that don't affect price by adding to the base price, but affect it in other ways, e.g. selling made to measure curtains with separate width and drop options which affect base price either via a price table or via a price per square metre multiplication of width and drop
e.g. 6: Most off-the-shelf ecommerce systems don't handle product options well if you want to incorporate logic between options, e.g. in the case of a PC, only allow Windows Vista to be selected as an operating system option if the memory option is 1GB or over.
For these reasons it is difficult to make recommendations without knowing your products, options, and overall ecommerce requirements (shipping, stock, etc) in more depth.