Table of Contents

Providers

Within DynamicWeb, providers are pieces of code which handle specific tasks as a part of regular work:

  • A PriceProvider handles product prices
  • A ShippingProvider handles shipping fees and maybe integrates with an external shipping service
  • A CartCalculationProvider handles, well, the calculation of shopping carts before checkout
  • Etc.

As an extensibility point, providers are therefore interesting when you want to take over a core part of how the normal system functions and replace it with your own logic.

In order to create a custom provider, you should inherit from one the the provider base classes exposed by DynamicWeb - they are listed below.

Provider Area Use
BaseProvider Integration Inherit from this provider to create custom integration providers – which communicate with an external system or e.g. imports from or exports to an unsupported file format.
AddinProvider Platform Use this to create your own add-in source for the Appstore, e.g. a private NuGet package feed.
HealthProviderBase Platform Use this to create custom groups or categories of Health-checks e.g. to verify the integrity of custom data.
ILoggerProvider Platform Use this provider for custom logging needs, e.g. if you need to generate logs for an external system.
SqlDataProviderBase Platform Use this to implement custom providers for data portability – a GDPR-related feature which allows users to download data about themselves. Typically used if you have custom data on users which should also be downloadable.
UpdateProvider Platform Use this provider to roll out updates, e.g. new database tables, columns, rows – or files.
IConfigurationProvider Platform Use this to read and write custom settings – e.g. to create your own custom extension to our GlobalSettings.
NavigationProvider Platform Used to extend the standard DynamicWeb navigation system, adding non-standard nodes to the NavigationItem. These nodes are than available in the NavigationTreeViewModel depending on the NavigationSettings passed to it.
IndexProviderBase Repositories Use this to implement a different index provider instead of Lucene.
CodeProviderBase Repositories This provider allows you to create dynamic or calculated right-side values in index query expressions – of the type ‘Code’. This could be e.g. ‘Customers who bought [ProductID] within 30 days’.
AddressValidatorProvider Commerce Used to implement address validation for orders and user addresses.
CartCalculationProvider Commerce Used to implement a custom cart calculation process, handling e.g. sales taxes, discounts, loyalty points, etc.
ConfigurableVatProvider Commerce Used to calculate VAT on a product. Mainly used in complex scenarios where VAT is calculated by an external system.
FeeProvider Commerce Used to manipulate shipping fees on an order.
FeedProvider Commerce Used to create custom formats for product feeds.
PriceProvider Commerce Represents a price provider used to overwrite or extend how Dynamicweb calculate prices by overriding FindPrice(PriceContext, PriceProductSelection)
FieldTypeProvider Platform Use this to create custom FieldTypeProviders to supplement the existing ProductFieldTypeProvider
ProductFieldTypeProvider Commerce Used to create custom product field types, e.g. calculated fields.
ShippingProvider Commerce Used to create custom shipping providers, typically integrations to external shipping services.
CheckoutHandler Commerce Used to create custom payment providers, typically integrations to external payment processors.
StockLevelProvider Commerce Used to override the standard stock level calculation in DynamicWeb, e.g. to combine stock from several external systems or to manipulate stock levels in another manner.
TaxProvider Commerce Used to calculate taxes in a product or order, e.g. by integrating with an external tax calculation service like AvaTax or Vertex.
ReturnMerchandiseAuthorizationReplacementOrderProvider Commerce
UrlDataProvider Platform
SmartSearchDataProvider Users
ExternalLoginProvider Users
DataItemProvider Deployment
DataProvider Deployment
DeploymentProvider Deployment
ImageAttributesProvider Platform
ImageConverterProvider Platform
ImageMetadataProvider Platform
ImageSizeProvider Platform
RecipientContentProvider Emails
EmailRecipientProvider Emails
EmailResendProvider Emails
EmailTrackingProvider Emails
MessageDeliveryProvider Emails
To top