Ideas - vespolina/vespolina-sandbox GitHub Wiki
All instances are created by a service
Perhaps we should set a recommended best practice of all instances are created through a service. My thought for this comes from some comments that docteurklein made on an interface commit and discussions we had about trying to make sure that there is a way to handle circumstances we haven't thought about.
The specific example was the MonetaryInterface, I couldn't think of a use case that would be different from what I had put in place, but having the Montary instance created by
$monetary = $this->container->get('ecommerce.monetary')->getMonetary($amount, $baseCurrency);
instead of
$monetary = new Monetary($amount, $currency);
IamPersistent
Process based approach
Instead of modeling the application / model around common entities such as a 'sales order' , 'shipment strategy' one could consider the business process itself as an entity or at least a way to drive the order to cash flow.
Thoughts on Business Process based modeling Inspiran
Use an work flow engine to drive various ecommerce flows
The order to cash flow could be technically implemented using a work flow supporting concepts such as user activities, system activities, notifications, sub flows, ...
Use an work flow engine to drive various ecommerce flows Inspiran