Dynamicweb 8.9.1

Release date: 29th of November 2016

As a service release, Dynamicweb 8.9.1 offers improvements to the ePay checkout handler, the Avalara Avatax  tax provider, as well as minor improvements to existing functionality. New indexing has been extended with a ContainsExtended operator which makes initial wildcard searches possible (with a corresponding performance penalty).

Additionally, more than 15 customer-bugs have been fixed in our continuous effort to improve stability.

Check the 8.9.1 Important notes and the bug fixes list before upgrade.


  • Improvements to ePay checkout handler, with new parameters added
  • Frequently Bought Items loop can now contain variants
  • A new tag - Ecom:Product.VariantText - returns variant combination labels in plain text
  • The Avalara Avatax tax provider wil now not calculate taxes for items with an ExemptionNumber set, and several issues pertaining to gift cards have been solved


  • New indexing now fatures a ContainsExtended operator,  which makes double-wildcard searches (*expresion*) possible. Note that this has a performance overhead.
  • A new notification DWN_IndexingLucene_OnAfterQueryParsed lets you subscribe to new indexing queries being parsed by Dynamicweb. Arguments passed contain the query generated by Dynamicweb, which can then be altered and returned to DW.


  • ProductCategories and ProductCategoryFields can now be created during import, just like product fields can

Add the option to require unique email on user create frontend


New checkbox in extranet module 'Create profile' node: Require unique Email When checked newly created users without unique emails cannot be created

Forms for editors: Validate field mappings when "create user" is selected

Forms for editors

When "Create user on form submit" is checked we now check that the required field mappings are present

Ability to set new impersonation without stopping current one

User Management

Templates updated to allow switching impersonated user without logging out

User address editing should be opened in the main window, not in a popup.

User Management

GUI for adding addresses to a user has been updated

Make it possible to view ProductVariant actually bought and not just main product in CustomCenter

Ecommerce - Customer Center

Frequently Bought Items loop can now contain variants

Retrieve orders based on customer number should also retrieve Frequently bought items, RMA, Saved cards

Ecommerce - Customer Center

Retrieve orders based on customer number should also retrieve Frequently bought items, RMA, Saved cards.

Add the option to get the discounted price from a custom double field on the discount matrix

Ecommerce - Discount matrix

In order discounts you can now get a discount amount from a custom product field of type Decimal (only for discounts of type amount and orderline exclusive)

Add product variant option text to tag

Ecommerce - Frontend

New tag: Ecom:Product.VariantText

Make it possible to change the order context and persist it on the user session/cookie

Ecommerce - Order Contexts

It is now possible to use a new parameter for ordercontext in the querystring, setordercontext=contextid,. This makes it possible to store the current contextid on a session/cookie instead, so that all add to cart, show cart etc. is using that context instead.

Add all available settings for Epay to the provider

Ecommerce - Payment\ePay

New parameters added for the epay checkout handler: CSS URL Mobile CSS URL Order text Description Google tracker Background color Opacity Decline text Read about the parameters here: http://tech.epay.dk/en/specification

Built-in browser isolation

Ecommerce - Shopping Cart v2

Added a new checkbox "Full cart isolation per browser, even for the same user" in Management settings - Ecommerce - Advanced - Shopping cart. When this setting is enabled it is possible to isolate the cart in different browsers (this means to render seperate carts in 2 different browsers).

XMLProvider: make it possible to create new CategoryFields on import.

Integration - Integration

ProductCategories and ProductCategoryFields can now be created during import similar to Product fields Sample config section: <config> <categoryField id="CategoryField1" templateTag="CategoryField1Tag" label="Category Field1" categoryId="MyCategory" typeId="1" /> <categoryField id="CategoryField2" templateTag="agCategoryField2Tag" label="Category Field2" categoryId="MyCategory" typeId="1" /> </config> this will create new MyCategory if it doens't exist and adds 2 category fields to it

OrderProvider: when used as destination, map [OrderCustomerAccessUserId] based on OrderCustomerExternalId

Integration - Data Integration

When importing an order where ExternalId is set we can now look up the AccessUserId based on the ExternalId

Batch Integration Scheduled tasks: Make "Secret" field read-only

Integration - Framework\Batch

Security key fields in Batch integration add-ins are now of type password (shown as *** instead of plaintext)

Make it possible to use email marketing to send to users that does not have email allowed flag set...

Online Marketing - E-mail Marketing

New checkbox in Email marketing ->Top folder settings -> Recipient provider: "Send to users that do not allow emails (Not recommended!)". Enabling this functionality lets you spam users which is not legal in all countries.

Support for Access database is being phased out

Platform - Access (db)

Support for Access database is being phased out. We strongly recommend upgrading to SQL before upgrading to Dynamicweb 8.9.1.

Add a notification to the emailhandler

Platform - API (Dynamicweb)

New notifications for the email handler: "DWN_STANDARD_USER_OnAfterLogin" "DWN_STANDARD_USER_OnExtranetLogin" "DWN_STANDARD_USER_OnExtranetLoginFailed" "DWN_STANDARD_USER_OnBeforeExtranetLogOff" "DWN_STANDARD_USER_OnBeforeForgotPassword"

Make PageView.Layout property public

Platform - API (Dynamicweb)

PageView.Layout property is now public

Add a ContainsExtended criteria to the search builder to allow leading wildcard searches

Platform - New Indexing

New criteria for query expressions: ContainsExtended Using it gives you a double wildcard search (*expression*) instead of the standard trailing wildcard (expression*) from contains. Please note that there is a performance penalty associated with using ContainsExtended

Add a notification to ParseQueryExpression

Platform - New Indexing

New notification: DWN_IndexingLucene_OnAfterQueryParsed Arguments passed contain the Query that is generated by Dynamicweb so it can be altered by customisations. Returns the Query object from the notification.

Sort new index source field drop down alpabetically

Platform - New Indexing

Source field drop down is now sorted alpabetically.