Creation of products completely except the admin
One option is to use a custom node bundle along with Rules. Allow the users to create the new node type. Then, when the node is being saved, use Rules (or a custom module) to take the values that were entered into the node form and carry them over to a product and save it.