Attributes, Options, osCommerce

In standard osCommerce, the product options system (aka attributes) is almost completely useless. The reason for this is obvious – attributes cannot be linked together to make a meaningful “sub-product”.


T-shirt – 12 in stock, of which:
3 are blue, large, round neck
4 are red, large, v-neck
2 are blue, small, round-neck
3 are blue, xxl, round-neck

In that example, you have only 1 product, but you need to set up “colour” (red and blue), “size” (s, l, xxl) and “style” (round neck, v-neck). In the standard attribute system, this will give you three dropdown menu’s showing the available options. Follow me so far?

What it means is that a potential buyer could choose a bunch of options that are simply not available – example: xxl, red, round-neck. And they would be able to check out. When they check out, overall stock is reduced by 1 bringing your number of available shirts down to 11.

But you have just sold something that does not exist…are you with me?

OK, so there are some steps you can take to combat this:

1. Install something called “QT Pro” – which is PITA to install and has many bugs.
2. Install “Master and Slave Products” – which is easier to install, but also has problems – it’s ubnwieldy in real life use.

Here’s my idea for a rework of the attribute system…

1. Allow the store owner to insert options as per normal.
2. Have an extra “options” page which will allow the store owner to make “attribute sets” (explanation below)
3. Assign these “attribute sets” to products.

What is an attribute set?

In the example above, this:

blue, large, round neck

is an attribute set. The store owner would link 3 options together and be able to insert the quantity available. He would also be able to give the “set” a SKU.

Then, in the product_info page, SKU’s would be shown, like this:

Description, blah blah
In stock:
( ) blue, large, round neck [SKU: qwerty123] – 3 in stock
( ) red, large, v-neck [SKU: qwerty124] – 4 in stock
( ) blue, small, round-neck [SKU: qwerty125] – 2 in stock
( ) blue, xxl, round-neck [SKU: qwerty126] – 3 in stock

Now, the next part of this modification, would be subtracting stock, this would be done in two stages. Let’s say the buyer purchases 1 of “qwerty123”. The overall stock of t-shirts would decrease from 12 to 11 and the stock of “qwerty123” would decrease from 3 to 2.

How does that sound? Can any of you see any flaws in my thinking? Anyone got any ideas to add to this?