Dynamicweb 9.9

Release date: August 25th 2020

As of Dynamicweb 9.9, Newtonsoft.json has been upgraded to v.12.0.3. If you have custom functionality using newtonsoft.json please update your code as required.

Like the last couple of releases, Dynamicweb 9.9 requires .NET Framework 4.7.2.

Dynamicweb 9.9 has been released. It is a transitional release, where we’ve focused on improving and stabilizing existing features, while converting core projects to more future proof technologies in preparation of Dynamicweb 10.

And so – without further ado – here are the release notes for Dynamicweb 9.9.

PIM has been improved in every area, but perhaps most notably when it comes to the product enrichment phase which contains a new grid edit mode for working with multiple products and variants in a single grid-like view, and also features improved image handling with e.g. previews of images and pdf content, inheritance rules for non-categorized assets, and better support for images in bulk-edit. Import/Export tool configurations can now be saved as presets and reused, and you can set up validation on custom field values. Our integration with Channable has also been improved and now supports order synchronization between Channable and a Dynamicweb solution, so you can view and work with Channable orders directly inside Dynamicweb.

  • Structure & Workflows
    • Queries
      • Check for completeness in query expressions
      • Control which columns are shown by default when the result of a query is shown
    • Better field selectors implemented throughout PIM
    • Warehouse navigation tree performance optimized
  • Enrichment
    • New GridEdit mode for working with multiple products and variants in a single view
    • Set up RegEx-based validation of custom field values
    • Images & Assets
      • Improved Image Panel UI and supports preview of images and PDF content
      • Set up inheritance rules for “non-categorized” assets
      • Add images & assets to PIM groups
    • Bulk-edit
      • Save and reuse bulk-edit configurations as presets
      • Better support for images
    • Import/Export
      • You can now export to “raw” Excel instead of the DW-specific format we usually use
      • Save a combination of fields & languages as a preset and reuse it the next time you export data
  • Publication
    • Support for Image Patterns on channels reintroduced
    • Improved Dynamicweb Feed templates
    • Completeness rules may now be applied at the group level
  • Other
    • IceCat
      • Connector extended to support more product information
      • Improved handling of IceCat fields and content
      • Assets from the IceCat MultimediaLinks field type are now supported
      • Mappings between IceCat languages and DW languages created
    • Channable
      • Orders can now be synchronized between Channable and a Dynamicweb solution
      • Product-data distribution to Channable has been extended with new information
      • Support for user-specific prices & stock in feeds

When it comes to Ecommerce, our focus has been on improving and extending our ViewModels – including the view-model based Customer Experience Center which will eventually replace the current customer center app. In addition to this we’ve also improved a number of existing checkout handlers, with QuickPay and EbizCharge now supporting inline payment. Two new checkout handlers are also being released; Adyen Checkout for our Dutch customers and Authorize.Net API for the American market. Finally, we’ve released several minor changes requested by our partner network, e.g. standard order fields for an OrderReference and OrderShippingDate, and standard product fields for Expected delivery and for handling product discontinuation.

  • New ViewModel-based Customer Experience Center app for listing orders, carts, quotes, ledger items, and recurring orders
  • Ecommerce Statistics have been overhauled and are no longer flash-based (yay!)
  • New discount validation loop makes it possible to show customers why they don’t receive a discount, e.g. spend $986 and get a free keychain!
  • Price Matrix prices can now be marked as with/without VAT
  • New CreateCart cart command for creating  order drafts
  • Payment:
    • New checkout handler: Adyen Checkout
    • New checkout handler: Authorize.Net API – this checkout handler uses the new Authorize.Net API
    • EbizCharge now supports iframe mode and has ACH support
    • The DIBS Easy provider can now be configured to pre-fill the payment form with information from the billing address fields
    • The Valitor checkout handler now supports Klarna payments and uses order information instead of user information for notification emails
  • Products:
    • New standard field for stock items – Expected delivery
    • New Discontinued Products section for marking a product as discontinued, selecting a replacement product, and controlling what happens if a link to a discontinued product is accessed
  • Orders:
    • Two new standard fields – OrderReference and OrderShippingdate – for integrated orders
  • ViewModels:
    • Support for loyalty points in PageViewModel
    • PrimaryOrDefaultGroup and InformativePrice added to the ProductViewModel
    • GroupId added to NavigationViewModel
    • Formatted price properties added to PriceViewModel
    • Product Catalog for ViewModels can now render a feed template when feed=true is added to the url

The Content area has seen minor improvements across the board, with the Visual Editor receiving special attention in the UX area. In Marketing we’ve improved the Back-in-Stock recipient provider and the SendGrid provider, and custom user fields can now be set at the group level and will inherit to all users in the group unless a value is defined on the user.

  • Visual Editor
    • Support for SVG images
    • General UX improvements
  • Comments
    • New Antispam settings introduced
    • New list of all comments available in backend
  • Forms for Editors
    • New Input pattern attribute on all fields allows you to set up RegEx-based validation of form input
  • Language Management tweaks:
    • Paragraphs used as global elements will now reference the correct language version instead of always referencing the version on the master
    • Copying a translated paragraph or page will copy the translated version on the language layer instead of the master version
  • Items
    • ItemRelationList items now support draft mode
    • ItemRelationList items now respect language management settings
  • The Back-in-Stock recipient provider can now send notification emails to users even if they have not signed up for regular emails
  • The SendGrid delivery provider can now use an API key for authentication instead of username/password
  • Custom user fields can now be set at the group level, and will inherit to users in the group unless a specific value is set on the user

Our Integration team has been preoccupied with with a series of LS Retail-related features – which are not ready for release yet but include feature such as pay online and collect in store, Cancel order in frontent and backend, and creating an LS Retail-based solution on top of a mode modern Dynamicweb base (Dynamicweb 9.9 and Rapido 3.4). The team is also exploring the strengths and weaknesses of OData. In addition, both our Business Central and Finance and Operations integrations have been updated to support latest major versions – and other minor tweaks, fixes, and improvements listed below.

  • Microsoft Dynamics 365 Business Central
    • Support for latest major version (BC16)
    • New release policy
      • Dynamicweb Plug-In Unit is available on AppSource for Dynamics 365 BC Online (SaaS).
      • Dynamicweb Plug-In Unit is available as Runtime Package for Dynamics 365 BC On Premise.
      • Dynamicweb Plug-In Unit is available as extension with source code visible for debugging purposes on Dev/Test servers. Access is given upon request.
    • Other Improvements
      • Batch-imported currency rates are no longer rounded. This was done to prevent minor rounding errors between asynchronous and synchronous price calculations.
      • Synchronously generated sales orders (Live carts) and asynchronous sales orders (scheduled orders) use the same method in the plug-in unit. This was done so that partner-extensions could extend live carts and scheduled orders in the same manner.
      • When importing contacts as Dynamicweb frontend users, we now make sure that they always get a currency code. This was done to prevent arithmetic-errors in customer price calculations for logged in B2B-users.
      • Added “isLCY-tag” to the base/local currency. This was done to allow integration developers and partners to detect the base/local currency of the ERP-system, without having to ask the ERP-Partner.
      • Mapped phone and mobile phone numbers from contacts in ERP to users in Dynamicweb.
      • Mapped EAN numbers from items in ERP to products in Dynamicweb.
      • Added a live integration setting to allow the use of ProductNumber, instead of ProductId, when live-calculating carts and creating sales orders in ERP. This option has been available for live price calculation in product catalog and product pages for a while, but not for orders. It meant live cart calculation of prices could not detect when items in ERP were setup as variants in Dynamicweb.
  • Microsoft Dynamics 365 Finance and Operations
    • Support for version 10.0.0.10
  • General features and improvements
    • New scheduled task add-in: Export data with custom request. This option allows integration developers and partners to send out Dynamicweb-data to a custom endpoint. We envision the use of Dynamicweb Provider as source provider to expose any table in Dynamicweb. Then asking an ERP-partner to extend the Dynamicweb Plug-in Unit with a request that can handle the table/column data being sent to the webservice URL which is already opened. The possibilities are endless. It could be sending favorite lists of users into customer records in ERP or abandoned carts. It could also be translated product data or other data enrichments.
    • When importing products using pagination, Dynamicweb no longer builds the index on every page/batch.
    • Excel Provider: Added a way to append, prepend and set constant script values. This is already available on other providers.
    • Fixed an issue where completed scheduled jobs looked like they contained warnings, despite having completed as expected.
    • Fixed an issue where scheduled jobs would not run its first time on the expected start time.
    • Added ability to run scheduled jobs in a sequence based on sort rank. Integration developers and partners can manipulate this sort rank with a drag and drop-enabled user interface.

At the Platform level the Monitoring area now contains a Data Health node which provides you with overview of the state of your database, and also current vs recommended security settings. We’ve also improved the Deployment tool which can now export a deployment configuration as a file, and then import it elsewhere using a scheduled task. This makes it possible to use deployment even if your staging and production environments are not on the same network. We’ve also introduced a number of filters when comparing source and destination, which makes it much easier to get an overview of changes.

At the Technical level all services in Dynamicweb.Services and Dynamicweb.Ecommerce.Services now use a generic caching framework and we’ve created a new cache overview under Settings > Developer > Cache.

  • New Data Health monitoring service released, providing you with an at-a-glance overview of potential issues with bad data and security settings
  • Analytics & Insights
    • Funnel Reports
  • SQL Firehose improved
  • Deployment
    • You can now use filters when comparing source and destination, showing only relevant
    • Save deployment to disk, import using scheduled task
    • Show up to 5 primary keys when comparing data
    • GridRows can now be deployed
  • Search & Indexing
    • Minimum & maximum values for numeric facets added to FacetViewModel
    • Better Did you mean suggestions
    • Frontend search statistics – track specific queries and see what people search for without seeing any results
    • New SkipGroupSorting option in the product index builder leaves out group sorting fields – this may improve performance and also makes it much easier to see what’s going on
  • The Generic Excel Exporter now responds to the url parameter dwtemplatetags=true with a list of all available placeholders, as well as dynamic file names when exporting a file.
  • You can now use TinyMCE 5 instead of CKEditor 4 in your editor configurations
  • The Image Handler now correctly supports transparency when converting to the webP format
  • Changes to GlobalSettings are now logged in the EventViewer
  • Caching
    • All services in Dynamicweb.Services and Dynamicweb.Ecommerce.Services now uses a generic caching framework
    • New cache overview under Settings > Developer > Cache (with a clear button)

Below you will find a raw list of all Features included in this release - please keep in mind that a feature in our development process probably doesn't correspond to what you think of when you hear the word 'feature'.

  • Implement new 'Customer Experience Center' module
    Apps
  • Form list default sort order and ability to save the order to user
    Apps\Forms for editors
    Forms for editors list is now sorted by name by default. Change of sorting is remembered for each user
  • ItemRelationList items should support draft mode
    Content
  • Move Visual Editor to Content Area
    Content
  • Settings for Specific users (admin users and up)
    Content
  • Save paragraph as templates from the content builder mode
    Content
  • Content builder - context menu (Row template settings) in the Row template folder
    Content
  • Restrictions on saved paragraph and row templates
    Content
  • Add “For Delivery Email Address” and “Use field for email recipient” to Order, Quote, and Cart flows
    Content
  • Merge Content Builder to 9.8
    Content
  • Add 'Comments' node in Ecommerce/Product catalog
    Content\Comments
  • Add 'Comments' in Marketing
    Content\Comments
  • Implement new EditorProvider - TinyMCE
    Content\Editor
  • Add missing toolbar options to ck editor add-in
    Content\Editor
    Added font settings to default ckeditor setup
  • Add sorting to Product itemtype fields
    Content\Items
  • ItemRelationList items should support language management
    Content\Items
  • Add annotation on a page node in the page tree if it has a navigation tag. Make the title attribute of that
    Content\Page Tree
  • Add a "Published" flag on website/area
    Content\Websites
  • Move and refactor viewmodels
    Ecommerce
    Move and refactored some viewmodels (previously unreleased)
  • Comparison of two time spans in report edit/create
    Ecommerce
  • Untranslated ProductCategoryFields should be shown like ProductFields
    Ecommerce
  • Include 'Price with VAT' and 'Price without VAT' in price calculations
    Ecommerce
    Included both 'Price with VAT' and 'Price without VAT' in price calculations
  • Make order drafts support prices with or without vat for unit prices changes
    Ecommerce
    Make order drafts support prices with or without vat for unit prices changes
  • Comparison of two time spans in report view
    Ecommerce
    Implemented comparison of two time spans in report view
  • Support sales prices in price matrix
    Ecommerce
  • Untranslated ProductCategories should be shown like CustomFields
    Ecommerce
  • Cleanup webapi project for Products
    Ecommerce
    Cleaned up webapi project for Products
  • Make excel file name dynamic
    Ecommerce
    Make excel file name dynamic
  • Add notifications for order validation
    Ecommerce
    Added notifications for order validation
  • Add values for toplevel properties like DWTemplateTags (not inside loops)
    Ecommerce
    Add values for toplevel properties like DWTemplateTags (not inside loops) to ExcelGenerator
  • Edit assortment should show the productnumber for attached products
    Ecommerce\Assortments
  • DEFAULT VALUES FOR EACH COUNTRY - where to store?
    Ecommerce\Country
  • Expose new properties in UI
    Ecommerce\Country
  • Expose properties in template
    Ecommerce\Country
    Template tags for country has 2 new tags: Ecom:Country.AddressEditFormat Ecom:Country.AddressDisplayFormat
  • Pay with points
    Ecommerce\Order discounts
  • Check why discounts are not applied
    Ecommerce\Order discounts
  • Improve new cache invalidation of Discounts
    Ecommerce\Order discounts
  • Make discount store all information needed to be used in frontend without expensive calculations
    Ecommerce\Order discounts
    Performance improvements to discount rendering
  • Improve discount loadtime
    Ecommerce\Order discounts
  • Make discounts searchable
    Ecommerce\Order discounts
    You can now search in discounts (Discounts & offers) The discounts are searchable by name, campaign name, percentage and amount. Notice that if you search for "50%" (with %) then it doesn't find the discount from the search in discount value because the value in the database is the value without %, så you need to search for "50" to hit the discounts with 50% discount value. If you search for "50%" it will find it if the name contains 50%.
  • Add Reference and shipping date fields to order
    Ecommerce\Orders
  • Change VAT calculations to avoid rounding errors
    Ecommerce\Orders
    Changed VAT calculations to avoid rounding errors
  • Price validation failed for order
    Ecommerce\Orders
    Added additional logging to price validation
  • ProductItems shouldn't recalculate on every render
    Ecommerce\Parts Lists
    ProductItems shouldn't recalculate on every render
  • Add ACH support to EBizCharge provider
    Ecommerce\Payment
  • Make a Proof of Concept on handle payments before the checkout step
    Ecommerce\Payment
  • Adyen payment gateway
    Ecommerce\Payment
  • EbizCharge Iframe mode
    Ecommerce\Payment
  • Support Klarna through Valitor
    Ecommerce\Payment\AltaPay
    Klarna payment is now supported through the Valitor gateway
  • Remove phone code from request to BBS/Netaxept/Dibs/Nets
    Ecommerce\Payment\BBS
    The strict validaion rule for the phone number field is removed from the provider so that BBS Netaxept doesn't fail with error if the phone number isn't valid.
  • Pre-fill DIBS easy payment form
    Ecommerce\Payment\DIBS Easy
    A new checkbox in DIBS easy settings: "Prefill customer address". When this is enabled, then customer billing information is posted to DIBS easy instead of being filled (again) in DIBS easy payment form. When checkbox is enabled the Customer information fields are hidden in DIBS easy payment form. You can show the customer info with the normal DW tags like Ecom:Order.Customer.Name if you edit the DIBS easy post template. Notice that if you enable "Prefill customer address" then you need to ensure (with ecom validation groups) that the customer can't leave the customer billing fields empty when checking out or else DIBS easy will return errors.
  • Add paytype to epay
    Ecommerce\Payment\ePay
  • Ability to make checkout via Klarna v3 with some extra country/currency
    Ecommerce\Payment\Klarna
    Added ability to make checkout via Klarna v3 with some extra country/currency
  • Only return active products in ecommerce loops
    Ecommerce\Product Catalog
  • Create an item editor for product catalog to return the full viewmodel.
    Ecommerce\Product Catalog
    Created an item editor for product catalog to return the full viewmodel.
  • Support feed=true for product catalog for viewmodel
    Ecommerce\Product Catalog
    You can now add feed=true to the url for product catalog for viewmodel to get the raw feed
  • Add meta title to viewmodel based groups and products
    Ecommerce\Product Catalog
    Added meta title to viewmodel based groups and products
  • Add new properties to product viewmodel
    Ecommerce\Product Catalog
    Two new properties were added to the product viewmodel PrimaryOrDefault group Informative price
  • Add new properties to cartorderline viewmodel
    Ecommerce\Product Catalog
    Added new properties to cartorderline viewmodel
  • Do not show group sorting fields in schema extender fields section when looking at an index
    Ecommerce\Product Search
    Do not show group sorting fields in schema extender fields section when looking at an index
  • Html decode values from rte in ecommerce when indexing
    Ecommerce\Product Search
    Html decode values from rte in ecommerce when indexing
  • Make an option to not index group sorting fields
    Ecommerce\Product Search
    Added repository build option to skip sort values
  • Do not fetch products for orders using ID combinations
    Ecommerce\Products
    Optimized how products for orders are fetched from db
  • Out of stock - Expected delivery
    Ecommerce\Products
  • Add a guard on internal dictionaries when adding products
    Ecommerce\Products
    Added a guard on internal dictionaries when adding products
  • Change AutoIdIndex to not eager load all keys
    Ecommerce\Products
    Changed AutoIdIndex to not eager load all keys
  • Create new method for getting only product keys to use in Discount.ProcessProductSelections
    Ecommerce\Sales Discounts
    Created new method for getting only product keys to use in Discount.ProcessProductSelections
  • Make it possible to return more than 5 parcel shops from GLS
    Ecommerce\Shipping\GLS
    Make it possible to return more than 5 parcel shops from GLS
  • Add UnitPriceBeforeDiscount property to CartViewModel
    Ecommerce\Shopping Cart
    Added UnitPriceBeforeDiscount property to CartViewModel
  • Ensure that the checkout step does not get cached in browser under no circumstances
    Ecommerce\Shopping Cart
    Ensured that the checkout step does not get cached in browser under no circumstances
  • Order update of Id is broken with the current caching
    Ecommerce\Shopping Cart
    Fixed UpdateOrderId (remove old key from cache + add new key to cache)
  • Cart Logging during checkout
    Ecommerce\Shopping Cart
    Added additional loggein to checkout
  • Additional Cart logging
    Ecommerce\Shopping Cart
    Even more logging added
  • Some Data Integration Activities have yellow warning icon despite being completed OK
    Integration
    Ensured that data integration jobs show the correct status
  • Dispose WCF client. Close() is not enough when in a faulty state.
    Integration
    Ensured that WCF clients are disposed of properly in error scenarios
  • Endpoint management: Prettify responses when testing
    Integration
  • ExcelProvider: Add Append, Prepend, Constant script values handling
    Integration\Data Integration
    Added Append, Prepend, Constant script values handling to the excel provider
  • File path for config-file for parameterized scheduled tasks should have root Files/Files
    Integration\Framework
    File path for config-file for parameterized scheduled tasks should have root Files/Files
  • Batch: When importing products using pagination, do not build index on every batch/page
    Integration\Framework\Batch
  • Export data with custom request add-in: General ability to export DW database tables as XML
    Integration\Framework\Batch
    Added General ability to export DW database tables as XML
  • "Begin" + "Repeat every" on scheduled tasks must behave as expected
    Integration\Framework\Batch
    Fixed start time on scheduled tasks to behave more in line with expectations
  • Run Scheduled Tasks in sequence based on rank/priority and/or dependency
    Integration\Framework\Batch
    A checkbox in scheduled tasks stating 'Only run if previous scheduled task was a success' A priority input on scheduled tasks visible in main page (Settings -> Integration -> Scheduled Tasks) A info button or hover over effect on the Priority rank stating: "Scheduled Tasks with highest priority are processed first. (Number 1 has the highest priority)" When scheduled tasks are scheduled to run "on the same time", then they will be completed based on priority rank. Of course this also applies when one scheduled task is initiated while another task is running. If the new task has higher priority, then current task will be cancelled. The old task will be reinitiated when the new task has completed. If the new task has lower priority, then the current task will complete. The new task will be queued and reinitiated when the old task has completed. If the checkbox 'Only run if previous scheduled task was a success' is true, then the new task will only be initiated if the higher ranked task is 'Success'. If the checbox is false, then proceed regardlessly according to priority.
  • Live: Setting to tell LI to send productnumber instead of productId when sending order to ERP
    Integration\Framework\Live
    Added a setting to tell LI to send productnumber instead of productId when sending order to ERP
  • Add debug=true timings to live integration - that would be priceprovider etc.
    Integration\Framework\Live
    Added debug=true timings to live integration
  • LS Retail: Web Hook for Omni to perform PaymentRequest
    Integration\Framework\LsRetail
  • Update the funnel report with a new graph component
    Marketing
  • Update the funnel report to support a second dimension
    Marketing
  • Make 'Monitoring' accordion available for everybody
    Marketing
  • Reporting - 'Conversion Provider'
    Marketing
  • Add color indicators and percentage for changes
    Marketing
  • Include Solution Hostname when looking up Partner information in GetLicense
    Marketing
  • Sendgrid: Update provider to use api key
    Marketing\Email Marketing
  • Assets category - Move "Assets Category settings" to Ecommerce
    PIM
  • Ecommerce - Remove Warehouses and Channels from Order context lists
    PIM
    Warehouses and Channels are removed from Order context lists
  • Assign to ProductGroup from some rules
    PIM
  • Duplicate eCommerce content to Warehouse
    PIM
  • Combine products should check for referential integrety on product ids
    PIM
  • Channable orders - Edit button must be "hidden" on Order page
    PIM\Export and import data
  • Feed provider XML - add DOMAIN information to Image/Assets path
    PIM\Export and import data
  • Import UI - Extend with "Advance settings" for EcomProvider
    PIM\Export and import data
  • Raw export category fields support
    PIM\Export and import data
  • Channable orders - add order relation to Channel
    PIM\Export and import data
  • Channable - Run DataIntegration job when data fetched successfully
    PIM\Export and import data
  • Channable - Order information back to Channable
    PIM\Export and import data
  • Feeds - Implement "LIVE attributes", like Price, Stock, etc.
    PIM\Export and import data
  • Channable - ScheduledTask for importing orders
    PIM\Export and import data
  • Channable - Make XSLT for importing Channable orders
    PIM\Export and import data
  • Add 'In' parameter to DataIntegration Conditional
    PIM\Export and import data
  • Expose Ecommerce Shop's as PIM Channels
    PIM\Export and import data
  • Export - Optimize API
    PIM\Export and import data
  • IceCat - We should show both repository and PIM queries
    PIM\Export and import data
  • IceCat - Reorganize settings
    PIM\Export and import data
  • Icecat - Add non-existing products to IceCat XML
    PIM\Export and import data
  • Icecat provider - add Activity selector, to be called after successful retrieval of data
    PIM\Export and import data
  • Audit - Handle Auditing for Assets on products (EcomDetails)
    PIM\Export and import data
  • XSLT - Fetch "Unit's values" on FeatureFields, and concat with main-Value
    PIM\Export and import data
  • Icecat provider - Created XML file, should have unique filename
    PIM\Export and import data
  • Channable XSLT - "additional_image_link" change/appended to follow the new ViewModel
    PIM\Export and import data
  • Channable setup - Refine XML
    PIM\Export and import data
    Refined the setup xml fro channable integration
  • Reference fields - Popup when press "Force values to links"
    PIM\Product Edit mode
  • Combine - Add possibility to create Variant options
    PIM\Product Edit mode
  • Property - make dialog-window for "Add property" wider
    PIM\Product Edit mode
    Add prope
  • Personal Presets - Missing information in "Preset page view"
    PIM\Product Edit mode
  • Bulkedit - possible to Select- and Save- PreSets
    PIM\Product Edit mode
  • Grid edit - add FieldDisplayGroup selector in "Visible fields"
    PIM\Product Edit mode
  • Remove obsolete warnings from methods related to ProductCategories
    PIM\Product Edit mode
    Remove obsolete warnings from methods related to ProductCategories as they are not obsolete
  • Assets category - set Inheritance rules on "Non Categorized Assets"
    PIM\Product Edit mode
  • Make GroupDetails available in Frontend (TemplateTags and ViewModel)
    PIM\Product Edit mode
  • Grid edit - Language & Number sticky to left border
    PIM\Product Edit mode
  • Grid Edit - 'Set values' functionality on column header
    PIM\Product Edit mode
  • Grid edit - Make "Grid edit" button available in PIMProductEdit
    PIM\Product Edit mode
  • Grid Edit - Append with "View mode" function
    PIM\Product Edit mode
  • Grid edit - Add sorting and filtering to column header
    PIM\Product Edit mode
  • Field type - Implement Concat function (Auto-generated field data)
    PIM\Product Edit mode
  • PIM + Ecom: Remove checkmarks and sort alphabetically
    PIM\Product Edit mode
    Removed checkmarks in variant group dropdown and sorted them alphabetically.
  • Field type - Implement =SUM calculation function on multiple fields values (Auto-generated field data)
    PIM\Product Edit mode
  • Assets preview - add Preview function on PDF, like we have in Files
    PIM\Product Edit mode
  • Grid edit - in column Menu, show all functions
    PIM\Product Edit mode
  • Grid Edit - Maintain ListBox with multiple selection
    PIM\Product Edit mode
  • Show warning if Calculated field fails
    PIM\Product Edit mode
    Show warning if Calculated field fails
  • Digital assets on Group level
    PIM\Product Edit mode
  • Field type - make selectable, what "Display type" should be used
    PIM\Product Edit mode
    When creating fieldtypes using a provider it is now possible to define what kind of control should be used for the display of the field
  • Insert default AssetCategory 'Images' in the database
    PIM\Product Edit mode
    Added default asset category Images
  • FieldDisplayGroups - Extend with SystemName option
    PIM\Product Edit mode
  • Image pattern - Append Product Standard field "ProductEAN" to options
    PIM\Product Edit mode
    Added Product Standard field "ProductEAN" to options for image patterns
  • Add 'Comments' to Ribbon in PIM
    PIM\Product Edit mode
    Added 'Comments' to Ribbon in PIM (must be enabled in Settings
  • Field dropdowns - Add search function various places
    PIM\Product View mode
  • PIM tree - "On Open", don't calculate/lookup for below items
    PIM\Product View mode
    Because of performance issues, we have changed how our 'expand tree' functionality works.
  • Group filtering - Add search/filter to Warehouse "Group view page" [DBK]
    PIM\Product View mode
    Typeahead search has been implemented warehouse nodes in PIM
  • Listview - Select more than 1000 products to export
    PIM\Product View mode
  • Listview - Lock "Variant fields" to right side columns
    PIM\Product View mode
  • Listview - make selectable which fields there are shown on Variants
    PIM\Product View mode
    Listview - make selectable which fields there are shown on Variants
  • Channels - Listview, make it possible to search, sorting and select fields
    PIM\Product View mode
  • CompletionRule-based Query
    PIM\Search and Navigation
  • Save settings - Ask for overwrite existing (Yes/No)
    PIM\Search and Navigation
    Save settings - Ask for overwrite existing (Yes/No)
  • Make queries respect what products a given user can see
    PIM\Search and Navigation
  • Improve performance of reading image attributes
    Platform
  • Dynamicweb.Imaging - Implement functionality for converting between PDF and image
    Platform
  • Dynamicweb - Rewrite use of System.Windows.Media
    Platform
  • Remove httpcontext from 404 handler
    Platform
    Removed httpcontext from 404 handler
  • Limit tracking of sessions
    Platform
    Tracking of sessions can be limited / configured from backend in Settings -> Web & Http -> Tracking
  • Dynamicweb - Rewrite use of System.Web.HttpContext
    Platform
  • Dynamicweb.Imaging - Create abstractions and providers
    Platform
    Imaging has been restructured to use providers instead
  • Dynamicweb.Security - Rewrite Windows impersonation
    Platform
    Rewrote Windows impersonation
  • Dynamicweb.Security - Rewrite use of System.Web.HttpContext
    Platform
    Dynamicweb.Security - Rewrote use of System.Web.HttpContext
  • Dynamicweb.Scheduling - Rewrite code for registering windows scheduled task
    Platform
    Rewrote code for registering windows scheduled task
  • Add warning when using PricesInDbIncludesVAT
    Platform
  • Make it possible to disable SelectionBox control
    Platform
  • Dynamicweb.Hosting - Move to level 4
    Platform
    Moved hosting code to level 4
  • Improve URL reset performance
    Platform
  • Minimum and maximum values for FacetViewModel
    Platform
    Added minimum and maximum values for FacetViewModel
  • Remove dependency on Microsoft.Build (MSBuild)
    Platform
    Removed dependency on Microsoft.Build (MSBuild)
  • Dynamicweb.Security
    Platform\API
    Removed newtonsoft dependency from Security
  • Support showpricewithvat from context on priceviewmodel instances.
    Platform\API
    Support showpricewithvat from context on priceviewmodel instances.
  • Add formatted properties to priceviewmodel
    Platform\API
    Added formatted properties to priceviewmodel: PriceWithoutVatFormatted PriceWithVatFormatted VatFormatted VATPercentFormatted
  • Make it possible to get a list of valid product discounts using the API
    Platform\API
    Made it possible to get a list of valid product discounts using the API
  • Ensure that exceptions are not cached when using Lazy
    Platform\Cache
    Ensure that exceptions are not cached when using Lazy
  • Change caching in Dynamicweb.Ecommerce
    Platform\Cache
    Changed caching in Dynamicweb.Ecommerce
  • Implement cachepage for ICacheStorage
    Platform\Cache
  • Create initial caching framework
    Platform\Cache
    Created initial caching framework
  • Implement NLB support for ICacheStorage
    Platform\Cache
    Implemented NLB support for ICacheStorage
  • Change how URL index handles timeout. And log where reset is called from to event viewer.
    Platform\Customized URLs
    Changed how URL index handles timeout. And now we og where reset is called from to event viewer.
  • Lower severity on "Expired login session"
    Platform\Dashboard
    Expired login sessions will no longer result in an error in monitoring
  • Dashboard: Sql Query list widget.
    Platform\Dashboard
    added Sql Query counter widget.
  • Deployment of grid rows
    Platform\Deployment Tool
  • Save a deployment to disk
    Platform\Deployment Tool
  • Support feed templates in product catalog app for viewmodel
    Platform\Frontend pipeline
    Product catalog app for viewmodel now support feed tempaltes
  • Health UI (phase 2)
    Platform\Monitoring
  • Implement 'EcommerceDataHealthProvider'
    Platform\Monitoring
  • Health UI (phase1)
    Platform\Monitoring
  • ContentDataProvider
    Platform\Monitoring
  • Add groupid to navigation viewmodel
    Platform\Navigation
    Added groupid to navigation viewmodel
  • Make a page showing all caches
    Platform\Performance
    Made a page showing all caches
  • Search statistics - All searches without result or best performing products
    Platform\Searching
    Added optional tracking of queries
  • Did you mean on several words in one search
    Platform\Searching
    Improved "Did you mean" functionality in search
  • Implement form antispam in comments and rating
    Platform\Security
  • Backend change password should not autofill old password
    Platform\Security
  • Do not logoff the frontend user when logging off the backend user.
    Platform\Security
  • Update xss regex to be more recilient to whitespace and additional parameters
    Platform\Security
  • Add groupid to navigation view model
    Platform\Templates\View models
    Added groupid to navigation view model
  • Sql firehose: SQL execution history
    Settings
  • SQL Firehose UI improvements
    Settings
  • Change image resizing to use interpolation and antialias
    Settings
    Added interpolation to drawing of images and antialias for rendering to improve the resized result for scaling large images to relatively small versions. Remember to flush image cache after upgrade. Empty cache in Files/cache.net/images.
  • Improve default cookie manager templates
    Settings\Cookie Manager
    Cookie manager template have been improved
  • Enable use of custom user fields on groups
    Users
  • Validate addresses in usermanagement
    Users
  • New UserAddress.Selected tags
    Users
    New tags> UserManagement:User.UserAddress.SelectedForDeliveryFields UserManagement:User.UserAddress.SelectedForCustomerFields
  • Update Azure B2C to support customer number
    Users\External Authentication
  • Use ShopID during recovery password in Extranet module
    Users\Extranet
  • Exclude inactive users from recover password
    Users\Extranet