[eluser]Angel Web Design[/eluser]
You can do a lot of what you are asking with open cart. They have "affiliate" programs, and a plugin that allows affiliates to upload their own items for purchase. Works really well but the tech support is shockingly bad.