Reconstruct the solution to include Orchardcore.Commerce.Core (OCC-236)
Is your feature request related to a problem? Please describe
A clear and concise logic and code reuse.
Describe the solution you'd like
Move more common interface (classes) to Orchardcore.Commerce.Abstraction add a more project called Orchardcore.Commerce.Core for its implementation
IMO, Add at leat 2 projects, one is OrchardCore.Commerce.Abstraction, another is OrchardCore.Commerce.Core
When we add Orchardcore.Commerce.Core, all the service implementations in Orchardcore.Commerce whose interfaces are in other Orchardcore.Commerce.* projects should be moved there as well.
Also each of those services have to be reviewed. If there are entangled dependencies between different modules, those have to be rewritten in a provider style. These can be done in follow-up issues, but the issues have to be created before this one is resolved so we don't leave bad surprises for future us.
IMO, Add at leat 2 projects, one is OrchardCore.Commerce.Abstraction, another is OrchardCore.Commerce.Core
We already have that, in src/Libraries/OrchardCore.Commerce.Abstractions.