VirtoCommerce / vc-platform

Virto Commerce B2B Innovation Platform
https://virtocommerce.com
Other
1.23k stars 846 forks source link

VirtoCommerce MultiTenant #1219

Closed brunobertechini closed 6 years ago

brunobertechini commented 6 years ago

Hello there, I would like to know if vc-platform supports multitenant and how it is implemented.

When I say multitenant I mean one customer with multiple stores. And another customer with other stores.

Are these saved in the same database?

Are these controller only using permissions ?

Any documentation about this specific topic ?

Bruno

asvishnyakov commented 6 years ago

Hello @brunobertechini!

  1. Yes, if you have one admin (platform) and multiple stores - they share database. Currently, we're in process of migration to microservices architecture and some things already possible in current release, so maybe @tatarincev may say you how to have store with it's own database.

  2. I think we need clarify about who's customer. I will call customer a user, who use your store via storefront and I will call manager a user, who manage data on admin site.

    • For manager you may configure permissions to allow he/she view only one (or few) store(s) on admin site.
    • Customer may log in only to store where he/she was registered before. You can link stores, so their customers will be able use the same credentials to login into any of this linked stores.
  3. We have both developer and user guides in our docs. You can also look at Store module repository or Storefront repositories: for .NET Framework and .NET Core. You can also ask us here, on gitter, stackoverflow or our site (not sure about communication process and any payments).

brunobertechini commented 6 years ago

Thanks @asvishnyakov

Let me try to explain:

Im looking for a solution in terms of SaaS / MultiTenant for ecommerce.

I am evaluating several ecommerce platforms and virtocommece is the one that best fit so far.

My company will be a solution provider where we will use one platform like VirtoCommerce as base and start from there.

One deploy of our "ready solution" for multiple customers. When I say Customer I mean "my customer", i.e.: A given tenant (with a monthly subscription) that may have several stores.

Basically in virtocommerce terms, each tenant from this point of view must have its own Azure deployment in order to achieve this goal.

We are indeed using microservices (Soa Done Right Services) for our solution.

So (just for clarification in this scenario):

Provider = My company providing a "Erp+ECommerce" solution for OUR customers. Customer = Some company that has purchased our product subscription and may have one or more stores.

In our solution (one single deploy of VirtoCommerce) I do not see how to handle multiple tenants (each tenant will be a given customer with monthly subscription).

I can see how we can split up stores and admins but this, in my scenario, should be separated by tenant.

Are there any plans in future for microservices/dotnetcore in a roadmap ?

Regards

Woland2k commented 6 years ago

There are several ways how your scenario can be achieved with VC but for most of them you should try to keep customer data separated from each other. The reason is your want to be and to restore/backup data per customer.

As for the actual deployment, one of the best and most efficient way would be to use docker images. We have Linux one available for storefront and windows for backend.

brunobertechini commented 6 years ago

THanks @Woland2k My goal is to have one database per tenant.

But only one deploy of VirtoCommerce

Woland2k commented 6 years ago

It should be quite easy to change connectionstring based on customer logging in.

brunobertechini commented 6 years ago

Yes but still We would have a full installation not only a tenant.

Indeed for multitenant, you also have one database for all tenants. Its a common scenario. Althoght its not supported by VC.

But still Im moving forward and try to integrate one service bus with VC in order to publish events to my enterprise core ERP

Thanks again

brunobertechini commented 6 years ago

Closing. Reason: No answer.