Business Logic Layer
Znode uses a multi-tier Business Logic Layer (BLL) that has been organized to allow developers to easily extend the eCommerce functionality available out of the box.
- The BLL does not include any database access functionality. You must avoid adding any data access functions and use the DAL instead to retrieve data
- Modifying certain areas of the BLL could affect PCI compliance. You should refer to the PCI Compliance Guide included with Znode before making any changes.
Znode Business Logic Layer
The BLL in Znode includes 16 different C# libraries that can be modified and deployed independently.
|ZNode.Libraries.ECommerce.Entities||Library defines classes for Product, SKU and Add-Ons.|
|ZNode.Libraries.ECommerce.Fulfillment||Library takes care of Order fulfillment.|
|ZNode.Libraries.ECommerce.ShoppingCart||Library contains the implementation and management of the shopping cart.|
|ZNode.Libraries.ECommerce.Utilities||Library contains services which are used for common operations. Ex:Sending mail|
|Znode.Libraries.MediaStorage||Library contains services for managing media in different providers like local storage Amazon and Azure.|
|ZNode.Libraries.Search||Library contains services for managing search operations. Znode 9x contains the new Elastic Search search engine.|
|Znode.Engine.Promotions||Library contains services to handle coupon and promotion based discount calculations.|
|Znode.Engine.Shipping||Library encapsulates the shipping engine that calculates shipping rates for different providers like FedEx, UPS, USPS and "Custom".|
|Znode.Engine.Tasks||Library contains implementation of task schedulers|
|Znode.Engine.Taxes||Library contains services to handles tax calculations.|
|Znode.Engine.ERPConfigurator||Library contains services for importing data from other ERP system.|
|Znode.Engine.ERPTaskScheduler||Library contains services for scheduling data importing at specific time.|
|Znode.Engine.ImageHelper||Library contains services for managing images|
|Znode.Engine.SearchIndexer||Library contains services for calling the search library.|
|ZNode.Libraries.Resources||Library contains resources files which is commonly used in all applications|
View of the Znode BLL Libraries
Extending the Znode BLL
The Business Logic Layer can be easily extended. New library DLLs can be copied to a production server without redeploying the entire application. Furthermore, you can add new functionality to the Shipping, Supplier, Tax, and Promotion libraries and configure them to be available as options in the storefront Site Admin. For example, you may want to add a new Promotion that calculates 10% off orders on the 3rd day of every month. To do this you just need to do the following:
- Create a new class derived from ZNodePromotionRule (in this case you could start with the ZnodeCartPromotionAmountOffOrder.cs class as an example).
- Compile and run your application.
- Next, go into the Storefront site admin and choose “MARKETING” from the hamburger menu. Select “PROMOTIONS AND COUPONS”.
- Then, click on "Add New Promotion Rule Type" and fill out the form (again use ZnodeCartPromotionAmountOffOrder.cs as an example of how to fill this in).
- Now your new function will show up in the Select Discount Type drop down when you add a new “Promotion Rule”.
The same procedure will be used for extending the Shipping, Supplier and Tax libraries.