Ucommerce 9.7.0.23075

March 16, 2023

Main Features

  • The application content area now utilise the full width of the browser instead of being restricted to 1000 pixels
  • Headless custom order properties and orderline properties can now be added through the endpoints, and will also get returned
  • Legacy link back to the old orders UI is added
  • Beta banner is removed from the back office UI
  • Sitefinity Widgets `Product` is now using Bolt to fetch products
  • UpdateLineItem Pipeline now supports setting custom price and VAT rate
  • `Headless` It is now possible to enable HttpContext input stream buffering (HttpContext rewind) by adding an `AppSetting` entry to your `web.config` called `Ucommerce:EnableHttpRequestRewind`. *REMARK* Enabling rewind interferes with GraphSQL in sitecore.
  • `Headless` Delete Orderline endpoint was added that deletes the order line by its guid and basket guid
  • `Headless` Get Promotion Codes endpoint was added, that returns the list of promotion codes applied to a given basket
  • `Headless` Apply Promotion Code endpoint was added, that apply the promotion code to a given basket
  • `Headless` Remove Promotion Code endpoint was added, that removed the promotion code from a given basket
  • `Headless` All endpoints modifying the basket state can now return a specified view. In initial release, the available views are None and MiniBasket.
  • `Headless` Added CRUD endpoints for basket custom properties. State changing endpoints trigger basket recalculation
  • `Headless` Added CRUD endpoints for basket order line custom properties. State changing endpoints trigger basket recalculation
  • `Headless` Baskiet view models now return `customProperties` list at Basket and Order line level
  • `Uccli` New installation tool for Ucommerce on Sitecore.

Bug Fixes

  • If the product name of an order line has been truncated, it is now possible to see the full name by hovering it
  • Setting a `Custom Price` with add to basket pipeline adds the property `_hasCustomPrice` to the order line
  • In a system with many baskets and orders the back office UI would timeout
  • Very slow discount calculation when there were many deleted campaigns, because all campaigns were loaded
  • Sitefinity widgets memory leak has been resolved
  • Scratch indexing was not respecting the Published property
  • DontStore option in Elastic Search, is now working
  • Headless `api/v1/shipping-methods` now refreshes when updated in the back office
  • Properties on a variant is now copied to the parent
  • `Exchangeratesapi` is no longer free offer, the service will fallback to an exchange rate on zero. This will make it possible to make your own exchange rate service of your choice
  • Product prices can now be set to a value of 0
  • Multilingual Enum and Enum Multi Select editors now show the language that they are currently editing
  • When switching language, any multilingual properties that did not had a value within the given language, would still show the value from the previously selected language.
  • Media/Content pickers now properly inform when no media/content is available instead of showing an "Empty folder" message.
  • `InvalidOperationException` from `OrderContext` when resolving default `PriceGroup` for creating a new basket.
  • Customer information from billing address is now searchable in order list in back office.
  • Evict Collection cache when a relation is updated.

Ucommerce 9.6.4.22011

January 16, 2023

Bug Fixes

  • Cors attribute was not limiting Ucommerce Headless Cors to only Ucommerce endpoints.​

Ucommerce 9.6.3.22094

April 7, 2022

Bug Fixes

  • Enum and Enum Multi Select now drop up, if there is not enough space underneath to drop down.
  • User-defined fields like `ShortText` is not indexed on products.
  • Some discount criteria did not apply as expected, caused price group discounts not to apply.
  • On Firefox, image pickers would not display all the images within a folder, e.g. if a folder contained 200 images, only the first 32 images would be shown.
  • `CatalogLibrary.GetRootCategories` now returns the correct SortOrder which has been selected in the back-office.
  • `CatalogLibrary.GetCategories` now returns the correct SortOrder which has been selected in the back-office.
  • Enums values are now storing their display name in the index instead of the internal value, e.g. Definition field "color" has the value Blue which was stored in the index before. Now it will store the translated display names instead: in Danish, it would store "blå", while in the English one it would be "blue".
  • The "Render in editor" checkbox on a definition field is now respected in the UI. So if "Render in Editor" is unchecked, the property editor will not be rendered out when editing an entity with the given definition. The property will however still appear in its read-only state within lists, e.g. if you add a custom definition field to a product definition and set its "Render in editor" to unchecked, the property will not show up when editing the product but it will show up as a column when listing products.
  • Since 9.6.0 it has not been possible to delete variants, this is now possible again
  • SlugService throws an enumeration exception.

Ucommerce 9.6.2.22047

February 17, 2022

Bug Fixes

  • `Headless` remove orderline was returning a status code 500.
  • Set the first catalog to `DisplayOnWebsite` would give a null exception if you tried to resolve it later.
  • Default JSON responses have unfortunately been camelCase after upgrading to 9.6.x
  • Products area breaks if database default collation is different from `SQL_Latin1_General_CP1_CI_AS` (Since 9.6.0)

Ucommerce 9.6.1.22033

February 2, 2022

Main Features

  • `ProductsBuiltInPropertiesQuery` in `Ucommerce.NHibernate.Impl` now has an overrideable method `FilterProductsBySearchTerm` which can be overriden to search based on custom properties.
  • `NullReferenceException` from `UrlPaymentExtractor` in `Ucommerce.Transactions.Payments` when no Payment found now includes the URL from which the Payment cannot be found.
  • It is now possible to clear DatePicker and DateTimePicker.
  • `Ucommerce.Api.CatalogLibrary.ChangePriceGroup(Guid priceGroupGuid, bool changeBasketBillingCurrency = true)` method now correctly accounts for Price Tier.

Breaking Changes

  • Discontinued support for versions of Umbraco older than 7.15.

Bug Fixes

  • `GetProductTask` will now throw the correct exceptions for "The Product/Variant with GUID not found".
  • `CatalogContext` in `Ucommerce.Api` resolved the wrong product when having two products with the same name in different Categories.
  • `TransactionLibrary.GetShippingMethods` will no longer return deleted ShippingMethods.
  • `Ucommerce.Transactions.NumberSeriesService` no longer throws `InvalidOperationException` if you have OrderNumberSerie with the same name, where one or more is deleted.
  • `CreateBasket` on `Ucommerce.Api.OrderContext` no longer throws `InvalidOperationException` if you have ProductCatalogGroups with the same name, where one or more is deleted.
  • InventoryOnHand App will now correctly re-index the products modified in the checkout.
  • `CatalogContext.CurrentCategory` now correctly fetches the Category if multiple Categories of the same name are present in different Catalogs.
  • Product variant will show correct property values when viewed through the Backoffice.
  • Product variant will no longer show properties that aren´t marked as `Variant property`.
  • Legacy link is available on a store.
  • Ability to view orders, without any language permissions.
  • The Order list column headers are no longer overlaying the Order filters dropdown.
  • The checkboxes for selecting a currency within the Dashboard settings dropdown are now displayed correctly.
  • Search indexing breaks if database default collation is different from `SQL_Latin1_General_CP1_CI_AS` (Since 9.6.0)
  • Dashboard basket and promotion links are now updated to redirect to the new UI

Ucommerce 9.6.0.22019

January 20, 2022

Main Features

  • Headless Ucommerce APIs for an end-to-end checkout flow. A brand new set of carefully crafted APIs to be used for headless solutions.
  • A new user interface for administrators to manage access to the new Headless API. Available under Settings>Security>Api Access.
  • The Order Management interface has been completely revamped for project Kondo. Complete visual overhaul with a new information architecture, to make everyday work with orders much more efficient. It looks great too!

Breaking Changes

  • The "GetProductPrice" method on "CalculateUnitTaxTask" in the UpdateLineItem pipeline changed signature to only require a PriceGroup GUID instead of a Pricegroup for a related performance improvement.

 

New

  • Obsoleted `ITargetingContextPopulator`, `ITargetingContextAggregator` and `IDiscountService.ApplyAwards`. If you are using the Headless APIs and have your own implementations of one of them, it is required to update to the new interface.
  • Obsoleted `BasketPipline` in favor of `BasketV2Pipeline`, to support explicit arguments.
  • Obsoleted `Campaign.IsActive` and `Campaign.IsWithinTimeRange` due to wrong time zone handling.
  • ICatalogLibrary CurrentCatalogGroup, CurrentCatalog, and CurrentPriceGroup will throw a NullReferenceException if not found with an improved error message.
  • Improved performance on listing variants and related products in the product editor for scenarios with a large number of price groups.
  • Improved performance on listing products in the products app for scenarios with a large number of price groups.
  • SlugHelper now contains a public Dictionary StringReplacements, where more StringReplacements can be added if needed. This can be used to alter behavior for slug and url generation.

 

Bug Fixes

  • Move the delete button in the content picker single editor back to the right side of the editor.
  • It was possible to select no stores for a campaign in the UI, but it would not be saved.
  • Making it possible to create entities in the initialize pipeline which was failing due to collecting audit information - 'InvalidOperationException: No owin.Environment item was found in the context.'.
  • Fixed a number of labels in the Stores App.
  • Basket `CreatedDate` is now in UTC.
  • Order `CompletedDate` is now in UTC.
  • Campaign list `statuses` are now in UTC.
  • Enums values are now storing their display name in the index instead of the internal value, e.g. Definition field "color" has the value Blue which was stored in the index before. Now it will store the translated display names instead: in Danish, it would store "blå", while in the English one it would be "blue".
  • Runtime binding errors from `Ucommerce.Mappers.ProductDataMapper`.
  • ICatalogLibrary method signature now contains the correct default take value.
  • CatalogLibrary will now throw a custom NotFoundException in case of a not found product, price group, or catalog with a verbose error message.
  • Updating a campaign would not trigger the SaveCampaign Pipeline.
  • Product search with an empty result failed with an unhandled exception.
  • Removing an image on a product variant on Sitefinity could result in a `NullReferenceException`.
  • Media Picker is now client-side paginated, which improves performance significantly for folder containing many images.
  • Usages of `TransactionScope` can be explicitly disabled for environments where `MSDTC` is not available This can be done by adding the AppSetting `Ucommerce:TransactionScopeDisabled` to `web.config` to true.
  • Nullable number type in product details can now be empty or default value.
  • Users with sufficient permissions can now delete products.
  • `Ucommerce.Api.ITransactionLibrary.GetPaymentMethods(Country country)` method now correctly filters by country eligibility as well as product catalog group.

Ucommerce 9.5.2.21284

October 18, 2021

Breaking Changes

  • `Ucommerce.Infrastructure.Logging.ILoggingService` constructor parameter added to the `Ucommerce.Search.ElasticSearch.IndexWriter` and `Ucommerce.Search.ElasticSearch.Serializer` types.

 

Bug Fixes

  • Indexing bug introduced in Ucommerce 9.5.0 when you have Elastic enabled as the active Search Provider.
    Indexing would fail when having variant definition fields on a product definition that were not added to the index definition. A workaround for this issue is adding all variant definition fields to your index definition.

 

Ucommerce 9.5.0.21245

September 8, 2021

Main Features

  • New and redesigned Promotions app replaces the legacy Marketing node. An entirely new experience for working with Campaigns and Promotions (formerly known as campaign items).

Breaking Changes

  • ILoggingService received a small overhaul:
    - Introduced logging levels for Information, Debug, and Error.
    - Methods have been renamed to reflect the log level they will be logging at.
    - All log levels support message templating.
    - Furthermore, all out-of-the-box non-error logging has been converted to Debug log level to prevent unnecessary entries.
    - This also eliminates the excessive logging from the Lucene search provider.

  • `CatalogLibrary.GetCategory` returns `null` when category is not found.
  • Removed `ApiCatalogContext` component has been removed. Use `CatalogContext` component instead.

 

New

  • Improved error messages when indexing fails and the stack trace now includes more descriptive information in the specific platform logs.
  • Adding source context to Umbraco logging.
  • Adding property values to Umbraco logging.
  • Improved ways of getting DisplayName of ProductCatalog and Category, by providing a culture as a parameter to the extension methods.
  • Increased getting products performance in larger multilingual datasets.
  • 2 new Data Types shipped out-of-the-box for picking multiple images (media) or multiple content nodes on the same field. This was possible before but it required setting up the Data Type manually.
  • Upgraded Lucene version to 4.8.0-beta00014 which contains bug fixes for several issues reported.

 

Bug Fixes

  • 'Ucommerce.Search.Fetchers.Products.ProductFetcher' is no longer responsible for calculating taxes instead 'Ucommerce.Catalog.ITaxService' is used.
  • Adding a new 'data enum type' to an existing product variant does not override the existing structure of the index.
  • Update variant SKU when product SKU is updated.
  • Open product without a category in the old UI.
  • ImageService GetImage with invalid id returns ImageNotFound (Umbraco 7)
  • PayEx TestMode endpoint reference has been updated to avoid 'EndpointNotFoundException'
  • Changing 'data enum type' within an existing product variant yields incorrect faceted search results.
  • No longer throw a NotImplementedException when logged out from Umbraco while navigating the Ucommerce interface. (Umbraco 8)
  • Null object reference exception when creating new enum data type, attaching it to the product variant, and using it to filter on.
  • Using EnumMultiSelect fields in Lucene now returns all options instead of the first one. E.g: If the shirt is both blue and green, the variant will now return a list containing blue and green instead of just blue.
  • Using EnumMultiSelect fields in Elastic now creates facets with all values instead of pipe-separated strings.
  • Support for IEnumerable type in Elastic.
  • Facets, RangedFacets, and AutomaticRanges are now supported for nullable number properties.

 

Ucommerce 9.4.2.21145

May 26, 2021

New

  • 'Ucommerce.Api.CatalogLibrary' methods that return multiple items now default to returning 64 items instead of 300.

Bug Fixes

  • Updated the debug pipelines that were using the "ScratchIndexer" component to use the "DefaultScratchIndexer" component.
  • Deleted selection options (enum) values will no longer be displayed in the UI.
  • ObjectDisposedException when using Elasticsearch clusters. Introduced a new way of configuring our Elasticsearch search provider (see this article).
  • Selecting the "Default" domain in the Stores app would result in failing to resolve the ProductCatalogGroup resulting in a NotSupportedException.
  • Indexing and searching in user-defined fields with the value `null` now work as expected.
  • Not Found exception when a present MVC or Web API controller would have a naming clash with an existing Ucommerce API Controller by prefixing them with "Ucommerce". Freeing up names such as "ProductController" or "CategoryController".
  • The "ProductCatalogGroup" property was not mapped to the ProductCatalog search model, breaking URL generation for multiple product catalogs.
  • Translated values for products are now correctly displayed for non-admin users.
  • Product properties marked as "Variant property" were being displayed on the parent product editor in the Products App.
  • 'Ucommerce.Api.CatalogLibrary.GetCategories' ignored the skip and take parameters, always returning all results without pagination.
  • 'Ucommerce.Api.CatalogLibrary.GetProducts' when called with a categoryId ignored the skip and take parameters, always returning all results without pagination.
  • 'Ucommerce.Api.CatalogLibrary.GetProducts' when called with a list of productIds ignored the skip and take parameters, always returning all results without pagination.
  • Lucene search APIs now return 64 documents by default instead of 100.
  • Performance drastically improved on checkout operations while using Marketing rules.
  • Added support for non-Latin characters in the product titles and the slugs associated with them.
  • Variants will no longer be indexed, when the ParentProduct's DisplayOnSite is set to false, and when the ParentProduct's DisplayOnSite is set to true, only variants whose DisplayOnSite is also set to true will be indexed.
  • Fixed indexing and de-indexing of relationships. Eg. Removing the relationship between a ProductCatalog and a ProductCatalogGroup, if the ProductCatalog has been deleted.
  • GetRateForAllCurrencyExchangeRatesTask no longer floods the log files with null reference when a currency code is missing.
  • Changing the language when editing a product variant now correctly updates the value of multilingual product variant fields.
  • Creating a store or catalog as a non-administrator user will now correctly grant permissions to the newly created entity.
  • Trying to access the Lucene indexes (e.g. via creating an order) before the index files have been created (by indexing from scratch) no longer results in a "no segments* file found" error.

 

Ucommerce 9.4.1.21068

March 9, 2021

Bug Fixes

  • Pricegroups not indexing to Lucene or Elasticsearch when saved, edited or removed.
  • FIX: Inherited definition fields were ignored when editing stores in the Stores App.
  • FIX: Search results in the Products app is now correctly filtered by catalog permissions.

 

Ucommerce 9.4.0.21057

February 26, 2021

Breaking Changes

  • Type parameter now constrained to a reference type for the 'Ucommerce.Search.IIndex<T>.IRawSearch<TProjection> FindRaw<TProjection>()' method.
  • When using the Lucene search provider, empty facets with 0 hits will be returned.
  • Removed obsoleted method 'Ucommerce.Api.ITransactionLibrary.RequestPayments' and 'Ucommerce.Api.TransactionLibrary.RequestPayments', use 'Ucommerce.Api.TransactionLibrary.GetPaymentPageUrl(Payment payment)' and do a redirect manually with the return value.
  • Removed obsoleted 'Ucommerce.Catalog.IPricingService' and 'Ucommerce.Catalog.PricingService', use 'Ucommerce.Catalog.IProductPriceCalculationService' and 'Ucommerce.Catalog.Impl.ProductPriceCalculationService' or read it from the Bolt product index.
  • Removed obsoleted method 'Ucommerce.EntitiesV2.PurchaseOrder.AddProduct', use 'Ucommerce.Api.TransactionLibrary.AddToBasket' or AddToBasket pipeline.
  • Removed obsoleted method 'Ucommerce.EntitiesV2.PurchaseOrder.CreateShipment', use the CreateShipment pipeline instead.
  • Removed obsoleted method 'Ucommerce.EntitiesV2.PurchaseOrder.RemoveShipment', use the RemoveShipment pipeline instead.
  • Removed obsoleted method 'Ucommerce.Transactions.Payments.AbstractPageBuilder.GetCallbackUrl', use 'Ucommerce.Web.ICallbackUrl' interface instead.
  • Removed obsoleted method 'Ucommerce.Transactions.Payments.AbstractPageBuilder.GetAbsoluteUrl', use 'Ucommerce.Web.IAbsoluteUrlService' interface instead.
  • Removed obsoleted method 'Ucommerce.Transactions.Payments.ExternalPaymentMethodService.GetParameter(string parameterName, string exceptionMessage, params string[] list)', use 'Ucommerce.Transactions.Payments.ExternalPaymentMethodService.GetParameter(string parameterName, string exceptionMessage)' instead.
  • Removed obsoleted method 'Ucommerce.Infrastructure.Globalization.Globalization.CultureCode', use instance property CurrentCultureCode instead.
  • Bolt: Removed specific price facet syntax (IIndexDefinition.PricesField() and IRawSearch.PriceGroup() methods) from index definitions and replace with generalized auto range facet syntax. For more info, visit https://docs.ucommerce.net/ucommerce/v9.4/search-and-indexing/index-definitions.html

New

  • Bolt: New search provider ElasticSearch
  • Bolt: Any number of price-fields (Dictionary<string, decimal> type) can be range faceted.
  • Bolt: Any number of numeric fields can be range faceted.
  • Bolt: New syntax for automatic range facets.
  • It is now possible to configure SQL read batch size for each indexer by overriding the following Castle Windsor properties: "productFetcherBatchSize", "categoryFetcherBatchSize", "productCatalogFetcherBatchSize", "productCatalogGroupFetcherBatchSize", "priceGroupFetcherBatchSize". The default has not changed from 3000.
  • The Rich Text editor now supports creating and editing links, creating and editing tables, editing HTML source, and full-screen mode.
  • Search APIs now return 64 documents by default instead of 300.
  • Creating a store with the name of a deleted store will now resurrect it.
  • The DeleteProductCatalogGroup pipeline no longer soft-deletes underlying catalogs.
  • ICreateStore argument now accepts an optional hostname parameter.
  • Store and language selectors are moved to the top, so they are always accessible.
  • Language selection is persisted across the solution.
  • It is now possible to search within the language selector.
  • It is now possible to search within the store selector.
  • Search is now available in the products app as an alternative mode of navigation and can be toggled on top of the page.
  • New and redesigned Stores app with search capabilities and lazy-loading making it lightning fast when working with many stores.
  • It is now possible to reorder nodes in the content editor/picker and image picker with drag and drop.
  • Avenue Clothing 2 for Umbraco introduces a brand new contemporary design to really show off the power of Ucommerce.
  • IndexDefinition syntax has been updated please visit https://docs.ucommerce.net/ucommerce/v9.3/search-and-indexing/index-definitions.html
  • It is now possible to set per-culture display names for fields in the IndexDefinition using the .DisplayName(string cultureCode, string displayName) extension method. For more information on usage and examples visit https://docs.ucommerce.net/ucommerce/v9.3/search-and-indexing/index-definitions.html
  • Braintree payment integration has been upgraded to v5.2.0 to enable 3DS2 - legacy "Transparent Redirect" integration replaced with "Drop-in UI".

Bug Fixes

  • When editing a product variant, if no primary or thumbnail image were selected, the loading indicator would keep spinning.
  • Using CatalogContext.TryUpdateToMatchNewPriceGroup would remove products that have a price in the new Price Group.
  • Using CatalogContext.CurrentPriceGroup would throw an error if the PriceGroupCookie was already present.
  • Querying for products with null values is now more streamlined.
  • Having duplicate entries in the database tables Ucommerce_Role and Ucommerce_UserGroupPermission would break the back-office.
  • Campaign item UI no longer throws null reference exception after changing the user language.
  • The number of facets was capped at 100.
  • Ucommerce zip package installation now works with Umbraco 7 without having to manually force TLS 1.2.
  • The CMS UI language is no longer used as the default content language - instead it now defaults to the first available content language.

Note

  • Obsolete Ucommerce.Catalog.IUrlService, use 'Ucommerce.Search.Slugs.IUrlService' instead.
  • Obsolete Ucommerce.Catalog.UrlService, use 'Ucommerce.Search.Slugs.UrlService' instead.
  • Permissions: One user can have maximum 2100 unique stores permissions assigned.

Known Issues

  • Undoing Catalog deletion on Umbraco7 does not work.
  • Publishing website to an IIS folder doesn't publish Ucommerce DLLs.
  • Ucommerce on Umbraco 7 is not currently compatible with .NET 4.7+, please use 4.6.x.
  • Search providers: Changes to entities are not reflected in their parent entities until scratch indexer is run. For example: Newly created product is not automatically added to it's category index, run scratch indexer in order to update the data.

 

 

Ucommerce 9.3.1.20275

October 1, 2020

Bug Fixes

  • Image picker throws 500 when a new product is created without a primary image.

 

Ucommerce 9.3.0.20261

September 22, 2020

Breaking Changes

  • The Ucommerce picker Umbraco datatype will store selected items as GUIDs rather than IDs. Previously selected items will stay selected as IDs.

New

  • New content picker component in the back office.
  • Image picker for KONDO can now select folders as well as any other media type offered by the CMS.
  • The new content pickers return GUIDs instead of ints. In case of existing Ucommerce ids stored in the cms, it's now possible to search for products, categories, catalogs, pricegroups, and catalog groups by legacy integer id using Bolt. To search for an item by legacy integer Id, use this form: index.Find().Where(p => p["Id"] == 42).Single(). You will need to rebuild your indexes first.

Bug Fixes

  • Selected catalogs not being displayed in the "Selected items" list in a catalog picker.
  • Orphaned products would not show up in search results in the new UIs.
  • When querying using our Lucene provider, OrderBy methods will now ignore boost values when called.
  • Missing user and user group permissions for creating and deleting stores.
  • InvalidOperationException when initializing Ucommerce on some cloud environments.
  • Image not found icon not displayed properly.
  • Languages in language selector are now sorted alphabetically.
  • Clearing a price on a product would change the price to 0.
  • Dropdown selectors would break if the selected value had been removed.
  • Inconsistent state when switching between apps in Umbraco 7.


Ucommerce 9.2.1.20209

July 27, 2020

Bug Fixes

  • Backoffice UI would fail to load if a front-end user was authenticated in the same browser.

Ucommerce 9.2.0.20195

July 15, 2020

New

  • It is now possible to manage relations on a product or variant in the updated product/variant editors.
  • In the updated user interfaces, the selected store will now persist when switching between Ucommerce apps and when the browser is closed.

Bug Fixes

  • No longer display the "Variants" section on products that are not product families.
  • NullReferenceException occurred in TaxService.CalculateTax when no fees were set up for a payment provider.
  • Compatible versions of all payment providers are now included in the Ucommerce packages.
  • Enum multi values used in facets are now correctly stored and queried in the index.
  • Products with empty facet values missing from the index and would not be displayed in the storefront.
  • Price section not showing up on all product types.
  • Renaming a product no longer visually renames the category it resides in.
  • Renaming a catalog with a name that already exists properly prompts the user with an error.
  • Renaming a catalog/category/product that results in an error no longer prevents the user from trying to submit again.
  • Moving a category to a new parent (category or catalog) would not update the Lucene index until a re-index.
  • Deleting an Image in the CMS no longer causes an error to be thrown when running the Ucommerce ScratchIndexer.

Ucommerce 9.1.0.20154

June 3, 2020

Breaking Changes

  • Ucommerce.Money and Ucommerce.Api.Money consolidated into Ucommerce.Money, which now takes a string for ISO code instead of a Currency object.
  • Ucommerce.Search.Extensions.CollectionExtensions is now Ucommerce.Extensions.CollectionExtensions.

New

  • Support for previously supported versions of Umbraco 7.
  • It is now possible to add products to a category in the updated category editor.
  • It is now possible to edit product and variant pricing in their respective updated editors.
  • Added loading indication for "Rename", "Change SKU" and "Change definition" dialogs.
  • Store and language selectors are now always displayed, regardless of the number of options available.
  • When trying to query an empty index, a helpful error message is now shown.

Bug Fixes

  • Adjusted size of submit button for "Rename", "Change SKU" and "Change definition" dialogs.
  • Renamed "sku" to SKU in "Change SKU" dialog.
  • Dropdown rows are clickable across the entire width of the list.
  • Variant list now keeps its state without the need of reloading.
  • Enum Multi Select editor now remains open after toggling an option, making it easier to toggle many items at once.
  • Rich Text values no longer overflow product/variant list rows if the value is too long to be contained within the cell.
  • Ucommerce.Search.Slugs.UrlService now generates the correct URL for two identical, consecutive slugs.
  • Maximum length validation error when working with imported products, categories and catalogs.
  • Product, Category and Catalog properties not saving while there are other validation errors displayed.
  • Product list and editor would break if a definition was inherited from, but not used as a definition on a product.
  • When adding a product to the basket, in some locales, the price got multiplied with 10000
  • Users who had their personal language set to a language not in the list of site languages were not able to add an order through the Ucommerce Back Office.
  • Licenses failed to activate for V9 installations
  • Enum fields could not be saved when the definition was inherited
  • Multi-language product properties could not be saved in other languages than the default language (en-US)

 

Ucommerce 9.0.0.20106

April 15, 2020

General

  • Important: Upgrading to a major version requires a new Ucommerce license.

New

  • Faster querying of order properties due to newly created index.
  • Faster querying of purchase orders due to newly created index.
  • Faster querying of payments due to newly created index.
  • Faster querying of product prices due to newly created index.
  • Product SKU and VariantSku character limit increased from 30 to 400.
  • Default Product Catalog Definition and product catalogs must have a definition when created.
  • Default Product Catalog Group Definition and product catalog groups must have a definition when created.

Bug Fixes

  • “Content Picker Multi Select” no longer throws a server error.
  • Potential maximum SQL parameter limit exception when using either “IProductPriceCalculationService” or “ProductPriceQuery”.
  • 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.
  • Changed size of change order status dialog within the order editor to better accommodate for smaller screens.
  • Free Award discount was wrongly removed when using the Save Order button in the back-office.
  • In some cases, an OrderProperty was added multiple times to the same Order causing an exception to be thrown. Now, OrderProperty is added to the Order in the CreateBasket pipeline. Custom Properties need to be configured there as well.

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>).
  • Unified query API for static queries, full-text search, and faceted search. Combine any type of query into one.
  • 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.
  • Multi price group support in product indexes, e.g. all configured prices are stored within the index for facets and search purposes.
  • Support for strongly typed return models from indexes, e.g. get a ProductCatalogGroup, ProductCatalog, Category, or Product as opposed to a weakly typed result.
  • Support for weakly typed records (Ucommerce.Search.Models.Model).
  • Support for weakly and strongly typed fields (Ucommerce.Search.Models.Model)
  • Out of the box indexes for common catalog listing scenarios for ProductGroupGroup, ProductCatalogs, Categories, and Products.
  • 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.
  • 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)
  • Ability to configure new indexes for BOLT tailored to specific use-cases on front-end to further speed up performance on front-end (IIndexDefinition).
  • Ability to define facets on any indexed data including ProductCatalog, Categories, Products, Variants and custom data.
  • Lucene provider for search-driven API (Ucommerce.Search.Lucene.dll)
  • 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.
  • Ability to include or exclude ProductCatalogGroup, ProductCatalog, Category, or Product from index via “Display on website”-flag.
  • 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.
  • 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.
  • Populate BOLT indexes from any source via pluggable fetchers (IFetcher<T>), e.g. index data from your DAM system to BOLT.
  • 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.
  • Ability to precalculate values once at index time and reuse those for every request as opposed to every time at run-time.
  • 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
  • Generate a slug for a Catalog, Category, and Product at index time (ISlugService).
  • Generate a full slug-based URL for a Catalog, Category, and Product at run-time (IUrlService).
  • 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).
  • CatalogLibrary powered by BOLT API for super-fast performance (Ucommerce.Api.ICatalogLibrary).
  • Catalog context powered by BOLT and slug-based URLs (Ucommerce.Api.ICatalogContext).
  • TransactionLibary moved to new API assembly and refactored to leverage BOLT where necessary (Ucommerce.Api.ITransactionLibrary).
  • MarketingLibrary moved to new API assembly and refactored to leverage BOLT where necessary (Ucommerce.Api.IMarketingLibrary).
  • ProductPriceCalculationService powered by BOLT API.

Breaking Changes

  • SearchLibrary removed. It’s functionality consolidated to Ucommerce.Api.ICatalogLibrary.
  • 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.

Breaking Changes

  • ITarget, IPurchaseOrderTarget, IOrderLineTaget, IOrderLinesTarget, IAward require for TargetingContext as a new argument.
  • 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

Breaking Changes

  • RavenDB removed from the platform and replaced by BOLT search API and the Lucene search provider for BOLT.
  • UCommerce.RavenDB25.dll has been removed
  • UCommerce.RavenDB30.dll has been removed

Settings

Breaking Changes

  • Configuring a definition field as a facet is replaced by index definition defined in code.

Consistent naming of Ucommerce

Breaking Changes

  • 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.
  • Single page application architecture based on Vue.js for faster and smoother UI response times.
  • Support for large data sets, e.g. 1,000,000 products in the back-end.
  • Support for a large number of configured languages scales without overburdening the UI.
  • Secondary actions such as renaming, changing the definition, changing SKU moved to a separate menu to keep UI focused on primary actions.
  • Scrollable and clickable section based navigation in all apps.
  • 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.
  • 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.
  • Action indicators everywhere in KONDO sparks joy, e.g. “Loading…”, “Updating…”

Kondo: Lists

New

  • A single list component used throughout Ucommerce for all lists.
  • Asynchronous load of list data for faster response times.
  • Lists powered by definitions to support custom fields.
  • Search for available definition fields by name to add as a column.
  • Infinitely scrollable lists to support massive amounts of rows in the list.
  • Selecting multiple rows and performing bulk actions, such as removing multiple products from a category.
  • Clear user actions on multiple selected rows, e.g. remove many products from a category.
  • User-configurable columns based on definitions.
  • Every user sees their own version of the list and configured columns across browser sessions.
  • Drag and drop rearrangement of columns.
  • Sort list by columns.
  • Image support in lists.
  • 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.
  • Single media picker.
  • Multi media picker.
  • Folder based navigation.
  • Breadcrumb navigation to show current location within media picker.

Catalogs App: Catalog Builder

New

  • Quick set up of categories and catalogs and their structure.
  • Create catalogs and categories from within the catalog builder.
  • Horizontal navigation of catalog structures.
  • Drag and drop sorting of catalogs and categories.
  • Drag and drop to move a category to a different location within the catalog.
  • Keyboard shortcut, use arrow keys to navigate catalog structure.
  • Keyboard shortcut, use “c” to create a new catalog or category.
  • Keyboard shortcut, use “esc” to cancel a dialog.catalog or category.

Catalogs App

New

  • Edit catalogs and categories details including custom definition fields.
  • Price group, single property editor.
  • Price group, multi property editor.
  • True/false property editor.
  • Media property editor.
  • Product list with configurable columns.

Products App

New

  • Dedicated app for working with products.
  • Create and edit products including custom fields.
  • Create and edit variants.
  • Product list with configurable columns.
  • Variant list with configurable columns.
  • Display multiple price groups in a product listing.
  • Display custom product fields in a list.

 

Ucommerce 8.4.1.19353

December 20, 2019

Bug Fixes

  • Support Sitefinity version 12.2 by turning off integrated pipeline validation in web.config

 

Ucommerce 8.4.0.19345

December 12, 2019

Breaking Changes

  • ISecurityService extended with additional method: 'bool UserCanAccess(guid)'.
  • Language Roles are now globally defined instead of store specific.
  • Price Group Roles are now globally defined instead of store specific.

New

  • Updated Castle.Core version from v4.2.1 to v4.4.0.
  • Updated Castle.Windsor version from v4.1.0 to v5.0.0.
  • Updated target framework to .NET Framework v4.6.1.
  • Updated FluentNHibernate version from v2.0.1 to v2.1.2.
  • Updated NHibernate version from v4.0.0.4000 to v5.2.5.0.
  • Updated NHibernate.Caches.SysCache2 version from v3.3.1.4000 to v5.5.0.0.
  • Definition field descriptions are now displayed as tooltips in the new Catalogs app.
  • It is now possible to create new categories using keyboard shortcuts inside an empty catalog or category in the new Catalogs App.

Bug Fixes

  • StackOverflowException when Product was used both in act and as a free gift.
  • The same product can now be used multiple times as a free gift allowing the same free gift being added multiple times.
  • FacetedQueryable.Count() now takes facets into account when showing amount of results for a query.
  • Undoing the removal of an image in the Catalogs app would not restore the image until the page is reloaded.
  • Icons in the security tree was missing.
  • EPPlus dependency error occuring when installing Umbraco.Forms and Ucommerce via NuGet.
  • Improved experience when selecting media and content in the new Catalogs app.
  • Improved experience when selecting media and content in the new Catalogs app.
  • Some of the dropdowns in the new Catalogs app would not display options if there was only one option available.
  • The value of a custom property of Rich Text data type is now saved correctly.
  • Added missing label for indicating the language when the property of Rich Text data type is multilingual.
  • Definition inheritance page would not show properly.
  • ArgumentNullOrEmptyException during checkout, when "Create Customers As Members" was enabled.
  • Handle NotSupportedException during checkout, when "Create Customer As Members" was enabled, and the Membership Provider is not configured to allow manually changing the password.
  • Ucommerce Feed links, if applicable, will now open in the same window instead of a new tab, enabling actions to work as intended.
  • Improved performance when loading products for a category in the Ucommerce administration interface, especially with large data sets.
  • Multilingual labels are now correctly displayed for the User's selected language in the new Catalogs and Products apps.
  • Some multilingual descriptions were erroneously encoded (sanitized) in their respective text fields.
  • Users not being able to see the Ucommerce Dashboard after being given the permission in Umbraco Users tab.

 

 

Ucommerce 8.3.1.19271

October 2, 2019

Bug Fixes

  • FIX: Potential maximum SQL parameter limit exception during indexing to RavenDB.
  • FIX: Potential maximum SQL parameter limit exception during full-text search in the "Catalog search" widget.
  • FIX: Potential maximum SQL parameter limit exception in Campaign Item listing in the tree navigation.
  • FIX: Potential maximum SQL parameter limit exception in Category listing in the tree navigation.
  • FIX: Potential maximum SQL parameter limit exception in Definition listing in the tree navigation.
  • FIX: Potential maximum SQL parameter limit exception in Definition listing in the tree navigation.
  • FIX: Potential maximum SQL parameter limit exception in Product listing in product pickers.
  • FIX: Potential maximum SQL parameter limit exception in Product search.

Ucommerce 8.3.0.19193

July 15, 2019

New

  • Catalogs (Beta) app, a new way of navigating and building a catalog structure, and working with categories and product catalogs.

Bug Fixes

  • Implemented missing event handlers for when Languages are added to Umbraco. These handlers will now correctly execute the SaveLanguage and DeleteLanguage pipelines ensuring the existence of language-specific RavenDB indexes.
  • When content has been selected in a content picker, the "Add" button now correctly displays as well as the remove button.
  • InvalidOperationException on checkout if multiple campaign items with the same name were applied to the order.

Ucommerce 8.2.0.19157

June 6, 2019

New

  • Now compatible with Umbraco 8! 

Bug Fixes

  • Some dynamic property values were erroneously saved to the database sanitized.
  • Removed dependency on recently unlisted "Microsoft.CompilerServices.AsyncTargetingPack.Net4.dll" NuGet package.

Ucommerce 8.1.0.19093

April 4, 2019

New

  • The GUID columns introduced in Ucommerce 8.0 are now all mapped to the NHibernate entities.

Bug Fixes

  • UpdateLineItemPipeline removes the orderline from the basket if the quantity is less than 0.
  • The Analytics role is now used to determine which statistics show up on the store dashboard. Numbers are now only aggregated and shown for users with A) access to the store, and B) the Analytics role set explicitly. Stores to which the current user is lacking the Analytics role, will not count in the totals. If you find users reporting that their numbers are less than they expected, check that the Analytics role is enabled for that user.
  • The mapping for the GUID column on all entities will now automatically assign a new GUID unless one is provided when saving the entity, preventing duplicate default GUIDs in the database which caused an exception.
  • When creating a new product catalog through the Ucommerce backoffice, it will be assigned a new sort order, instead of 0.
  • When creating a new category through the Ucommerce backoffice, it will be assigned a new sort order, instead of 0.
  • Soft-deleted campaigns and campaign items were not excluded from the FeedCampaignTriggeredTask pipeline task, causing an "InvalidOperationException" if multiple campaigns/campaign items would exist with the same name.
  • SelectFreeGiftProduct dialog now has a scroll bar when the content is too high.
  • SelectProductCatalogGroupTarget dialog now has scroll bar when the content is too high
  • SelectCategoryTarget dialog now has scroll bar when the content is too high.

Ucommerce 8.0.1.19052

February 22, 2019

New

  • This release contains an important security update to the platform.

Bug Fixes

  • The default service implementation responsible for loading up-to-date exchange rates (ICurrencyExchangeRateService) no longer fails if there are invalid currencies in the system resulting in no exchange rates being saved correctly.
  • UpdateCurrencyExchangeRatesPipeline no longer takes into account deleted currencies.
  • Custom price on orderline was overridden when TransactionLibrary.UpdateLineItem was executed.
  • Issue where IProductPriceCalculationService did not apply discounts.

Ucommerce 8.0.0.18352

December 18, 2018

Breaking Changes

  • Any tables with a GUID colum with multiple rows with the same GUID, has a new GUID set so that all rows are unique.
  • Removed ServiceStack.

General

  • Important: Upgrading to a major version requires a new Ucommerce license.

New

  • All Ucommerce tables and entities now have GUID column and corresponding indexes.
  • Introducing the new Ucommerce Dashboard, with quick metrics overview for the Digital Merchant.
  • First name property on the UCommerce.EntitiesV2.User.
  • Dashboard Feed that displays activities on the store(s).
  • Backoffice - Ordermanager dialogs resized to fit content better
  • Refreshing EntitiesV2.Product fields on EditProduct UI if there have been changes doing Save Product Pipeline.
  • Feed type, when an order is placed.
  • Feed type, when a campaign is used on an order.
  • Feed type, when a new customer checks out.
  • Feed type, when a returning customer checks out.
  • Feed type, when a customer is about to check out.
  • ICurrencyExchangeRateService interface for getting exchange rates between two currencies.
  • ICurrencyConversionService interface for converting a value from one currency to another.
  • GenericPipelineTaskAsync<T> (implementation of IPipelineTask<T>) for asynchronous task for subjects that are not an IEntity.
  • UpdateCurrencyExchangeRatesPipeline, used to update the CurrencyExchangeRates table with current values and create missing exchange rates based on currencies in the system.
  • ExecuteUpdateCurrencyExchangeRatesPipelineTask, that is executed asynchronously during the InitializePipeline.
  • "uCommerce_CurrencyExchangeRate" table to store exchange rates between two currencies.

Bug Fixes

  • Setting displayName on product definition fields would make the facets for that field disappear.
  • Products that did not have the "ModifiedOn" property set would not be indexed during indexing from scratch.
  • Product price query now has cachable per default.
  • Selected shipping countries will no longer get cleared on save when modifying shipping method access.
  • Selected available payment methods will no longer get cleared on save when modifying shipping method access.
  • Selected available countries will no longer get cleared on save when modifying payment method access.

Removed

  • BatchSave<T>(...) from System.Web.UI.WebControls.CheckBoxListExtensions.
  • ServiceStack dependency.

 

Ucommerce 7.19.0.18260

September 18, 2018

Breaking Changes

  • Payment providers are now deployed as individual apps, allowing them to be disabled individually.

Bug Fixes

  • The Ucommerce picker for Umbraco has been updated with full-text search and the ability to see preselected values.
  • All methods in our IDomainService implementations are now virtual and thus overridable.
  • Backoffice - Catalog manager dialogs have been resized to better fit the content
  • Backoffice - Catalog manager dialogs UI changed to use CMS styling
  • Backoffice - Ordermanager dialogs resized to fit content better
  • Refreshing EntitiesV2.Product fields on EditProduct UI if there have been changes doing Save Product pipeline.

Removed

  • Payments.config which is deployed as individual apps.

 

{{lineitem.ProductName}}

{{lineitem.VariantName}} - {{lineitem.Quantity}} x {{lineitem.FormattedPrice}} {{lineitem.FormattedPrice}}

Your cart is empty ;(
Total {{basket.FormattedProductsTotal}}
Checkout