To SKU or not to SKU
Everyone has told me that I *have* to have a SKU for everything I sell. That’s fine, and it’s also true. Everything that you sell should have some code or identifier on it so that every part of the organization has a common reference point for dealing with the order or dealing with the customer. The problem comes when you have custom products. At what point do you decide which options affect the sku and which don’t?
Take, for example, a roll of fabric. It is sold by the square yard and it is always 12’ widths. So 3 feet of length is 1 yard x 4 yards or 4 square yards. 6 feet of length is 2 yards by 4 yards or 8 square yards. So, you can see where this is going, can’t you? Do you create SKUs for each 3 foot length? Yes, you say? Okay, now we have about 1000 SKUs for that one product. Yeah, and we have 12 kinds of fabric, each a different mix of cotton and polyester. Okay, that’s only 12,000 SKUs, that’s nothing. We should write a simple script to populate some CSV files and import them into Magento, that’s doable.
Wait, why was I complaining again? Oh, because that’s a contrived and simple example. Take that fabric, with it’s thousands of sizes, dozens of fabric combinations, and add in colors. Sure, why can’t the customer order any color they want. They’re pretty savvy designers, so just give them the ability to punch in whatever CMYK values they want. Now do you see the problem? We’ve just taken our 12,000 SKUs and multiplied them by 100,000,000 (one hundred million (assuming each color level has a percentage 0-100%)). So now we have, easily billions of SKUs, just for 1 fabric product.
1 product?! Yeah, depending on the organization, some people in it may consider the fabric roll just 1 product. Spun cotton yarn might be another, fluffy polyester stuffing might be another. Perhaps this company only sells “6 products” in the mind of someone working there.
So, Billions of SKUs, that’s okay. Importing billions of SKUs? not okay. Duplicating a description, image, weight, tax class, etc etc for every single *possible* combination doesn’t seem worth while. I don’t have a problem with unique SKUs, as long as they can be dynamically generated.
At what point do you say? This doesn’t constitute a product that I want in Magento? I’m surprised that Magento doesn’t have an easy way to override the SKU or to even add line item details to each invoice/sales order.


1Charlie Armor posted Tue, December 18, 2007
We develop warehouse management systems and are looking at Magento as a possible ECommerce platform for a couple of our customers.
The usual definition of a SKU (stock keeping unit) in a warehousing environment is that it should be used as the unique identifier sufficient to identify a stock item.
If you have three rolls of fabric in three different colours each should have it’s own SKU if you want to track stock levels for each colour separately.
It is not necessary to create separate SKUs for different lengths of cloth, the length should be specified a the “Unit of Measure” associated with the SKU.
A SKU quantity of 50,000 might mean 50,000 square yards or 50,000 rolls, depending on the unit of measure associated with the SKU.
The best way of looking at SKUs is to consider whether or not it is sufficient to uniquely identify a product, the quantity value (or values) then define the amount of the SKU being reported on, delivered, moved, picked or whatever.
http://en.wikipedia.org/wiki/Stock_Keeping_Unit
2slaction posted Sat, April 12, 2008
This is a great example of how things can get carried away when building your online store if there isn’t enough project planning in place.
I worked on a project for a company that sold different lengths, material and colors of tubes. Given their inventory, they could have easily had over a million SKUs, but the sensible approach (and what Charlie mentioned) is to have unique SKUs for the different material and colors, but not size.
For the project, we ended making size a dynamic addition to the SKU, since in reality size is a dynamic attribute and it worked out fine. You may still end up with a few thousand SKUs, but in your case you should be able to generate dynamic SKUs that are easy to decipher by humans which should save time at the warehouse.
Just my 2 cents on the whole thing.