Here is a design you can try instead. It is rather complex but provides the ability to specify distinct pricing per physical item without being to repetitive.
products (think of this as a abstract bucket that groups physical products ie. part numbers).
- products_id (product physical item belongs to)
- products_id (product attribute corresponds to)
- attribute (name of attribute for products such as; color, size, weight, etc)
- weight (ordering when product has more then a single attribute)
- product_attributes_id (attribute value corresponds)
- attribute_value (value of attribute for color ie. red, blue, yellow, etc)
- product_part_numbers_id (physical item)
- product_attribute_values_id (attribute value)
Distinct pricing, stock info and attribute value combinations can now be specified per physical item (part_number).