Multi-vendor with custom shop site for each vendor

Installing WordPress with multisite enabled could let you do what you want. You could use a plugin to create a “template” site that is used for all new websites.

I used the Multisite Cloner plugin to accomplish this very thing on a recent project. You can configure multisite to allow users to choose their own theme. You may want to provide a set of themes that allow the user to change colors or upload their logo.

On my afore-mentioned recent project, there was a requirement that each new shop website needed to share products, I used the ThreeWP Broadcast Premium Pack to push products, pages, and posts to the other multisite instances within the network.

Once a user is customizing their instance, you could use WordPress categories or tags to display/hide certain products, say by creating a category or tag named “hidden” if they don’t want to show a certain product post on their site.