Well, in fact, not one correct answer, but, as an experience in working with rails, I would recommend one application.
If you split, there will be many times you will have to copy and paste the common code (becomes unmanageable). In addition, you will be dealing with a common database or multiple databases.
Without breaking, you can use a wildcard domain and access the current subdomain through request.subdomain to easily execute any logic that should happen in each subdomain. You will also only need to create a product model.
In short, all the requirements mentioned sound close enough to make one application the easiest.
source share