MAGENTO: How do I make a product compulsory and/or part of the purchase process?

  • My client is selling glasses.
  • Glasses need prescriptions.
  • Prescriptions require about 10 Custom Options.
  • Each Custom Option can have up to 360 values.
  • That makes for about 1000 values in each product’s set of 10 Custom Options.

So: 1000 products x 1000 Custom Option values = 1,000,000 database entries. For starters! [B]

  • Can one make a separate Prescription ‘Product’

    … that is part of the purchase ‘chain’, so that it’s stuck in the customer’s face, at some point in the purchase [/B]

… rather than a Related Product, (which they may not think to ‘buy’ AND which they CAN’T just tick and select, as there are further options to select in a spectacle prescription)?

Otherwise, I fear we will have a fat, slow, database.

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).

  1. 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.

  2. 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, …).


Thank you for replying, Brett.

Here’s what I think:

'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!)


Dear Brett,

Thank you.

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! :slight_smile:

Ok, here’s what I know now:

‘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.

My problem is that there are 1000+ product options, in terms of spectacle-prescription values alone.
This example might make it clearer:

So with a configurable product I would have to add 1000+ Simple Products(?) Yikes!

So I still think ‘Custom Options’ is the way to go.

It would just be nice if a ‘Prescription’ could be a separate product that the customer was forced to buy. Then you wouldn’t be filling up the database with 1000+options per product.