Extending - an introduction
Extend the way Dynamicweb works by adding your own functionality through the Extensibility API and by building your very own custom module.
The Extensibility API is a set of extension methods that allow developers to react, extend and manipulate behavior in Dynamicweb and eCommerce.
There are many ways to extend Dynamicweb functionality:
- Custom Modules
- APIs & custom endpoints
- Price providers
- Sales discount providers
- Checkout handlers
- CMS Extensibility
- Custom URLs
- News v2 module
- Use of Notification Subscribers
- Ribbonbar Extensibility (Custom functionality for the backend UI)
Setting up Visual Studio
Here's a short guide to set up Microsoft Visual Studio to make use of essential features and addons, making your developing experience as smooth as possible.
Adding or creating a project in Visual Studio
- To add your website-folder to the Solution Explorer
- “File” -> “Open website…”
- To create a new solution/template
- “File” -> “New website…” -> “ASP.NET Empty Web Site”
IntelliSense in Visual Studio
It's possible to add Dynamicweb and Razor support for IntelliSense in Visual Studio 2015.
Dynamicweb templates for Visual Studio
To facilitate development of Dynamicweb custom modules we provide a set of Visual Studio templates.
These templates are provided as a .vsix installer.
To install the Dynamicweb Visual Studio templates:
- Download this package
- Unpack it
- Double click the .vsix installation file and click install (Figure 5.1)
If your Visual Studio is correctly installed this is all you need.
After the templates are installed:
- Restart Visual Studio
- Open your project
- Select New item from the Add menu (Figure 5.2)
In the selector, open the Dynamicweb 9 section and select a suitable template for your project (Figure 5.3).
Notifications allow developers to subscribe to system events, such a new orders or changes in stock states.
You can use them to update external systems with order data - or just to send an e-mail to the shop manager when the stock is running low.
For examples of the notifications API please see: