Ucommerce 9.0.0.20106
===================
### GENERAL
NEW: Faster querying of order properties due to newly created index.
NEW: Faster querying of purchase orders due to newly created index.
NEW: Faster querying of payments due to newly created index.
NEW: Faster querying of product prices due to newly created index.
NEW: Product SKU and VariantSku character limit increased from 30 to 400.
NEW: Default Product Catalog Definition and product catalogs must have a definition when created.
NEW: Default Product Catalog Group Definition and product catalog groups must have a definition when created.
FIX: "Content Picker Multi Select" no longer throws a server error.
FIX: Potential maximum SQL parameter limit exception when using either "IProductPriceCalculationService" or "ProductPriceQuery".
FIX: When using the Default Payment Method for development, the Purchase Order GUID will now be available as a query string parameter in the callback URL from the payment gateway just like all other implementations.
FIX: Changed size of change order status dialog within the order editor to better accommodate for smaller screens.
FIX: Free Award discount was wrongly removed when using the Save Order button in the back-office.
REMOVE: Catalog Search widget and search from the product picker in preparation for them being replaced by Project Kondo.
### SEARCH DRIVEN API
NEW: Search driven API aka Bolt, for massive speed increase on front-end with 1M+ products (Ucommerce.Search.IIndex<T>).
NEW: Unified query API for static queries, full-text search, and faceted search. Combine any type of query into one.
NEW: Multilingual indexes, each index holds only common values across all languages and values specific to configured languages, e.g. "products_en_us" and "products_de_de" indexes.
NEW: Multi price group support in product indexes, e.g. all configured prices are stored within the index for facets and search purposes.
NEW: Support for strongly typed return models from indexes, e.g. get a ProductCatalogGroup, ProductCatalog, Category, or Product as opposed to a weakly typed result.
NEW: Support for weakly typed records (Ucommerce.Search.Models.Model).
NEW: Support for weakly and strongly typed fields (Ucommerce.Search.Models.Model)
NEW: Out of the box indexes for common catalog listing scenarios for ProductGroupGroup, ProductCatalogs, Categories, and Products.
NEW: High performance, reusable fetchers for ProductCatalogGroup, ProductCatalog, Category, Product, and PriceGroup to populate catalog related indexes as rapidly as possible. Use these for your custom indexes to set up faster.
NEW: Ability to facet on and list product families, products, and variants in any combination using out-of-the-box product index, e.g. variants for B2B cases and product families for B2C cases (Ucommerce.Search.Models.Product.ProductType member)
NEW: Ability to configure new indexes for BOLT tailored to specific use-cases on front-end to further speed up performance on front-end (IIndexDefinition).
NEW: Ability to define facets on any indexed data including ProductCatalog, Categories, Products, Variants and custom data.
NEW: Lucene provider for search-driven API (Ucommerce.Search.Lucene.dll)
NEW: Dynamic price facets calculated at runtime to support scenarios where prices vary from very low to very high in the same product listing, e.g. selling a "pen" and a "supertanker" in the same product listing.
NEW: Ability to include or exclude ProductCatalogGroup, ProductCatalog, Category, or Product from index via "Display on website"-flag.
NEW: Indexing of full URLs for CMS media and content. No need to look up URLs at runtime anymore.
### SEARCH DRIVEN API EXTENSIBILITY
NEW: Search provider support in Ucommerce.Search. Build a provider for your favorite search engine for BOLT.
NEW: Transparent search provider support in search-driven APIs, e.g. use switch between Lucene or Elastic Search seamlessly, no changes required in your website code.
NEW: Populate BOLT indexes from any source via pluggable fetchers (IFetcher<T>), e.g. index data from your DAM system to BOLT.
NEW: Support for custom models in search-driven API, e.g. use your own ProductCatalogGroup, ProductCatalog, Category, Product models or inherited versions. Or any model at all.
NEW: Ability to precalculate values once at index time and reuse those for every request as opposed to every time at run-time.
NEW: Start full indexing and get feedback on the ongoing progress in the search UI in Settings.
### SLUG-BASED URL ENGINE
NEW: Multilingual slug-based catalog URL scheme to avoid id based payload in URLs, e.g. /demo-store/c/accessories/ties, /demo-store/p/accessories/ties/hugo-boss-black-pink-white-flower-pattern-silk-woven-tie
NEW: Generate a slug for a Catalog, Catego
ry, and Product at index time (ISlugService).
NEW: Generate a full slug-based URL for a Catalog, Category, and Product at run-time (IUrlService).
NEW: Catalog context populated based on slug-based URLs in (Ucommerce.Api.ICatalogContext).
### COMMERCE LIBRARY API POWERED BY BOLT
NEW: API separated into own assembly (Ucommerce.Api.dll).
NEW: CatalogLibrary powered by BOLT API for super-fast performance (Ucommerce.Api.ICatalogLibrary).
NEW: Catalog context powered by BOLT and slug-based URLs (Ucommerce.Api.ICatalogContext).
NEW: TransactionLibary moved to new API assembly and refactored to leverage BOLT where necessary (Ucommerce.Api.ITransactionLibrary).
NEW: MarketingLibrary moved to new API assembly and refactored to leverage BOLT where necessary (Ucommerce.Api.IMarketingLibrary).
NEW: ProductPriceCalculationService powered by BOLT API.
BRK: SearchLibrary removed. It's functionality consolidated to Ucommerce.Api.ICatalogLibrary.
BRK: Old versions of Commerce Library APIs and supporting types removed from UCommerce.dll including CatalogLibrary, CatalogLibraryInternal TransactionLibrary, TransactionLibraryInternal, MarketingLibrary, MarketingLibraryInternal, SearchLibrary, SearchLibraryInternal, ICatalogContext, CatalogContext, IOrderContext, OrderContext, SiteContext, IClientContext, ClientContext, and the full UCommerce.Api and UCommerce.Xslt namespace.
### MARKETING FOUNDATION
NEW: Leverage TargetingContext in targets and awards for richer targeting possibilities.
BRK: ITarget, IPurchaseOrderTarget, IOrderLineTaget, IOrderLinesTarget, IAward require for TargetingContext as a new argument.
BRK: Single product discount simulation removed price API to ensure the fastest possible performance. The capability will be re-introduced as an index time operation.
### RAVENDB REPLACED BY BOLT
BRK: RavenDB removed from the platform and replaced by BOLT search API and the Lucene search provider for BOLT.
BRK: UCommerce.RavenDB25.dll has been removed
BRK: UCommerce.RavenDB30.dll has been removed
### SETTINGS
BRK: Configuring a definition field as a facet is replaced by index definition defined in code.
### CONSISTENT NAMING OF UCOMMERCE
BRK: All assemblies and namespaces renamed from UCommerce.***.dll to Ucommerce.***.dll. Client code must be recompiled against the new assemblies to function.
### KONDO
NEW: E-commerce first look and feel for Ucommerce apps.
NEW: Single page application architecture based on Vue.js for faster and smoother UI response times.
NEW: Support for large data sets, e.g. 1,000,000 products in the back-end.
NEW: Support for a large number of configured languages scales without overburdening the UI.
NEW: Secondary actions such as renaming, changing the definition, changing SKU moved to a separate menu to keep UI focused on primary actions.
NEW: Scrollable and clickable section based navigation in all apps.
NEW: Adaptive UI components scales with data set, e.g. a definition picker will adapt from a multi checkbox list to an expandable, fuzzy searchable dialog depending on how many definitions are set up.
NEW: Undo capability for most actions within the UI, not happy with the change you just did, hit undo and get right back to where you were.
NEW: Action indicators everywhere in KONDO sparks joy, e.g. "Loading...", "Updating..." :)
### KONDO: LISTS
NEW: A single list component used throughout Ucommerce for all lists.
NEW: Asynchronous load of list data for faster response times.
NEW: Lists powered by definitions to support custom fields.
NEW: Search for available definition fields by name to add as a column.
NEW: Infinitely scrollable lists to support massive amounts of rows in the list.
NEW: Selecting multiple rows and performing bulk actions, such as removing multiple products from a category.
NEW: Clear user actions on multiple selected rows, e.g. remove many products from a category.
NEW: User-configurable columns based on definitions.
NEW: Every user sees their own version of the list and configured columns across browser sessions.
NEW: Drag and drop rearrangement of columns.
NEW: Sort list by columns.
NEW: Image support in lists.
NEW: Price field support in lists.
### KONDO UI: MEDIA PICKER
NEW: Streamlined media picker integrated with CMS for consistent user experience across all CMS support by Ucommerce.
NEW: Single media picker.
NEW: Multi media picker.
NEW: Folder based navigation.
NEW: Breadcrumb navigation to show current location within media picker.
### CATALOGS APP: CATALOG BUILDER
NEW: Quick set up of categories and catalogs and their structure.
NEW: Create catalogs and categories from within the catalog builder.
NEW: Horizontal navigation of catalog structures.
NEW: Drag and drop sorting of catalogs and categories.
NEW: Drag and drop to move a category to a different location within the catalog.
NEW: Keyboard shortcut, use arrow keys to navigate catalog structure.
NEW: Keyboard shortcut, use "c" to create a new catalog or category.
NEW: Keyboard shortcut, use "esc" to cancel a dialog.catalog or category.
### CATALOGS APP
NEW: Edit catalogs and categories details including custom definition fields.
NEW: Price group, single property editor.
NEW: Price group, multi property editor.
NEW: True/false property editor.
NEW: Media property editor.
NEW: Product list with configurable columns.
### PRODUCTS APP
NEW: Dedicated app for working with products.
NEW: Create and edit products including custom fields.
NEW: Create and edit variants.
NEW: Product list with configurable columns.
NEW: Variant list with configurable columns.
NEW: Display multiple price groups in a product listing.
NEW: Display custom product fields in a list.