This sounds like you will need eCart, SecurityAssist, DataAssist and Universal Email at the minimum.
eCart to set up the cart functionality and buying/selling of products.
SecurityAssist to set up the 2 user classes and handle the login and management of pages that each can access.
DataAssist to store the email lists into the database and other database related issues.
Universal Email to send out the emails for the mailing lists.