Shuup provides a service API which is based on polymorphic models.
Currently Shuup provides two implementations of these services:
shipping methods, but the API allows implementing
other kind of services too.
Behavior of a service can be customized with
behavior components. Each behavior component
may limit availability of the service, or (conditionally) add costs to
it, or affect service delivery time (which in case of shipping methods
is the shipping time, but could have other meaning for other kinds of
services). It is possible to assign several behavior components to a