I can think of two ways. The first would probably be the best method. It may also depend if the store needs to interface with a backend system (ERP).
Use a Configurable Product. You will need to setup an attribute set for ‘glasses’ or ‘prescriptions’… whatever you want to name it. Which will involve setting up attributes and attribute sets. They can be required and Text. or, you could set the attributes as dropdowns. This will likely be the simplest way to go.
If you want the user to have a ‘stored’ prescription, so they can order without having to type in their information over and over, you could create an Extension that read from custom User fields. But, this way could have problems. The buyer may have multiple people they purchase glasses for (kids, wife, …).
'Attribute Sets’ are for menu items that the store owner chooses when adding a product, like the particular Colour or Size of the individual item that he’s adding.
‘Custom Options’ are for menu items that the customer can choose from when buying a product, like his spectacle prescription values, which is what I want.
BUT, there are about 1000 menu items per product if I do it that way.
(I confess I added a set of prescription drop-down menus as an Attribute Set until I realised that only I, as admin, could choose from them. That was a D’oh!, moment.)
Attributes CAN be used for layered navigation (the menu items). But, they don’t necessarily need to. That’s one of the options for an attribute. (an attribute not an attribute set). Take a look at an attribute, you can set to use in ‘Layered Navigation’. It could be that your theme looks for attributes (don’t know how your theme is setup). But, usually, they won’t look for that. It (the theme) shouldn’t look at all attributes. Weight is an attribute! I doubt that you have a menu item for how much the glasses weigh!
Using custom options you will be required to add the same attributes to ALL of the products. That’s not the goal (I don’t think it’s yours either!)
Co-incidentally, I just found a tutorial that might let me do what I want using Attributes. I must say, it’s not an easy study. I’ll post here if I can do it. Magento is being slow, today, as well. Hey ho!
‘Configurable Products’ is for Product variants: Size, color, gender and so forth. So if the product is T-shirts, you can have 40 different shirt variants in stock, of various sizes and colours. So you make 40 Simple Products; ‘Configurable Products’ then lets the customer choose a Blue, 40in, men’s shirt, using drop-down menus.