Developers/Providers

Providers are a special class type in Arcavias, like item and manager and are used to implement plugins and services. They fulfill special tasks that are a mix of an item and a manager, i.e. a provider does not follow the concept of DAO and DTA.

Because the two domains Plugin and Service make use of different approaches, they are explained separately in the next chapters. Before you start, take a look at the glossary to get familiar with the terms and connections between the involved classes.

Plugins
An activated plugin performs checks or actions in the basket of each customer or during the checkout process. This can be granting free shipping when a certain total amount is reached, setting a minimum order value or checking the basket integrity before the customer can buy the articles (products still available, prices still the same, etc.).

The main principle of plugins is, that each plugin provider executes actions on certain events in the basket. Every plugin setup does have it's own individual configuration. So it's possible to have two different plugin setups using the same plugin provider but with different configurations (and different decorators of course). There are some built-in plugins you can adapt to your needs, but the strength of Arcavias lies in its flexibility and modularity by creating your own plugins!


 * Plugins for the basket
 * Implementing plugins for the basket

Services
An activated service provider is either a payment or delivery service provider. Developers might know the adapter design pattern, which is implemented by the service providers.

For payment service providers you can think of it as an interface to payment providers like PayPal, which handle the money transfer between customer and shop owner. Similarly, a delivery service provider handles the communication to ERP (enterprise resource planning) systems or logistic partners which takes care of the delivery of the order from packaging to actual sending the parcel to the customer.

The main principle of service providers is that they can be used for different services with their own configuration and decorators. So it's possible to have two different services composed of the same service provider but with different configuration. An example would be the PostPay service provider, which could be used for cash on delivery as well as pay by invoice.


 * Delivery services
 * Implementing delivery services
 * Payment services
 * Implementing payment services