Is there a way to uniquely identify a product. To me hat, shirt is a product type not an identifier of the product. You could have brown cowboy hat, brown mens dress hat, brown ladies hat etc. I think of J. Peterman on Seinfeld. He always had an unique identifier. For example "The Urban Sombrero" which came in several colors. Or the "Malaysian Jungle River Hat." If I order from J. Crew the products all have a unique identifier which if you go into the warehouse I be the boxes are labled with that identifier (example 2x12RX4). So I think it would be something like this:
tblProduct
productIdentifier (ex 2x12RX4, or The Urban Sombrero)
productType (Hat, Shoe, Etc)
fKeySupplier (a key to your supplier Table)
currWhslePrice (assuming all sizes and all colors have same price
currSalePrice (Same as above)
tblAvailableProductChoices
fkeyProduct (key to the product)
strSize (If necessary size of product)
strColor (color)
intQuantity (number of that product of that color, in that size on hand)
Look at the Northwind database if you are going to track orders, it is an ok example.