The Znode provider engine makes extensibility, customization and integration easy.


Within the Znode eCommerce platform is a set of libraries we call the provider engine. The provider engine is one of the main areas for extensibility and is an important part of any customization and integration effort. 

The provider engine surrounds the shopping cart forming the heart of the Znode eCommerce platform. The components of the provider engine act on data within the shopping cart to handle the following processes and calculations: 

  • Payments
  • Promotions
  • Shipping
  • Suppliers
  • Taxes


For many people, the different provider types found in Znode are more than enough to use out-of-the-box. However, many other people also have a need to create their own providers to handle other scenarios specific to their business. The provider engine in Znode gives you a consistent set of classes on which to base your own custom provider implementations, making it easy to extend the platform without having to modify the Znode code-base itself. 

For example, you can create your own custom providers in their own .NET assembly, and then deploy that assembly to your website, where it will be automatically recognized for use within Znode.

Easier Upgrade Path

The design of the provider engine allows you to greatly extend Znode’s capabilities, all without having to modify a single core library.  This approach means you have a much cleaner upgrade path for future versions of Znode.

Low Barrier to Entry

Another important aspect of the provider engine is that the design of all provider types is exactly the same. Essentially, once you create one custom provider type, you know how to create *any* custom provider type, whether it’s for shipping, promotions, taxes, etc. This means that your learning curve is small because once you’ve learned one, you’ve effectively learned them all.



The payments provider is comprised of two main groups:

- Payment types: credit card, PayPal, Google Checkout, purchase order, charge on deliver, and 2Checkout.

- Payment gateways: Authorize.Net, Verisign, PaymentTech, PayPal, WorldPay, and CyberSource.

Using the Znode admin, you can setup and configure payment rules specific to your business using the above payment types and gateways. But if those aren’t sufficient, you can always create your own payment provider and use that instead.

Example: You want to use Stripe as your payment processor. You can create your own payment type, named something like StripeGateway, which invokes Stripe’s API to process your credit card payments.


Promotions in Znode are handled by the promotions providers, several of which come pre-packaged:

  • Amount or percent off brand
  • Amount or percent off catalog
  • Amount or percent off category
  • Amount or percent off order
  • Amount or percent off product
  • Amount or percent off shipping
  • Amount or percent off X if Y purchased
  • Call for pricing
  • Change product details

While the out-of-box promotions in Znode handle 80% of customer needs, you might have specific business scenarios that require you to build your own custom promotion types. This is easily accomplished by extending any of the existing promotion types and implementing your own promotion rules.

Example: You need a promotion that limits the quantity someone can purchase in a specified timeframe. You can create your own promotion type, named something like VariableHourPromotion, that check’s the user’s previous order history and determines if they are over the specified limit.


Znode comes with the following shipping providers and rules pre-built into the platform:

  • FedEx
  • UPS
  • USPS
  • Quantity-Based Rate
  • Weight-Based Rate
  • Flat Rate
  • Fixed Rate

But if you need to implement your own custom shipping rules, calculations, and processing, you can do that by extending the provider engine with your own custom shipping provider.

Example: You do all of your shipping through DHL. You can create your own shipping provider, named something like DHLShipping, which calls out to a DHL service to perform shipping cost calculations and retrieve estimated delivery dates.


The supplier providers in Znode are essentially notification processes to let suppliers know details about an order. Znode supports the following supplier notification types:

  • Emails: Used to send emails to particular suppliers during the checkout process.
  • Web services: Used to invoke any kind of web service for particular suppliers during the checkout process.

Creating your own custom supplier providers is easy, yet very powerful because it allows you to integrate your checkout and order fulfillment process with any vendor you have in your supply chain.

Example: You have a vendor who needs to know the quantity ordered every time their products have been ordered. You can create your own supplier web service type, named something like VendorSupplierService, which invokes a remote web service at the vendor to pass them the product and quantity information.


Taxes in Znode consist of only one tax provider: sales tax. However, this one provider can be used to setup and configure sales taxes for all countries, each with potentially different tax rates. Not to mention you can create different tax classes that use different rules based on things like product types and categories.

And of course, the tax providers fall in line with all of the other provider types so that creating your own custom tax provider is simple and straightforward.

Example: You server many customers in Japan and need to account for their consumption tax. You can create your own tax provider, named something like JapanConsumptionTax, which performs the calculations necessary for all your Japanese customers.