Skip to content

Release Notes

Ucommerce for Sitecore

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.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.
  • 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.

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.
  • Dashboard basket and promotion links are now updated to redirect to the new UI
  • 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.

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.
  • Upgrading Ucommerce with ElasticSearch enabled will no longer break, due to search provider apps not being cleaned up correctly.

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

  • Support for Sitecore 10.1. For an accompanying Accelerator version visit our download page.
  • 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.
  • PayEx TestMode endpoint reference has been updated to avoid 'EndpointNotFoundException'
  • Changing 'data enum type' within an existing product variant yields incorrect faceted search results.
  • 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 works 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

FIX: Pricegroups not indexing to Lucene or Elasticsearch when saved, edited or removed.
FIX: Perpetual loading indicator if no primary or thumbnail image were selected when editing a product variant.
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.
  • 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 Ucommerce Dataprovider for Sitecore would throw an exception if it encountered a ProductCatalogGroup with no associated OrderNumberSerie.
  • The number of facets was capped at 100.
  • 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​

  • Publishing website to an IIS folder doesn't publish Ucommerce DLLs.
  • 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.2.20280

October 8, 2020

Bug Fixes

  • Perpetual loading indicator if no primary or thumbnail image were selected when editing a product variant.

Ucommerce 9.3.0.20265

September 22, 2020

New

  • 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.

Ucommerce 9.2.0.20196

July 15, 2020

New

  • Support for Sitecore 9.3 (Please refer to installation instructions)
  • 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.

Ucommerce 9.1.0.20154

June 3, 2020

General

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

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 Sitecore 9.0, 9.1 and 9.2.
  • 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 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

  • Support for Sitecore 9.1 and 9.2
  • 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.
  • 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.
  • Image picker dialogs save button will no longer be scrolled out of view.
  • Image picker preview now correctly displays the image in the dialog.
  • "Create Product Relation" save button dialog will no longer be scrolled out of view.
  • 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.

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 in the DataProvider.
  • 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

  • InvalidOperationException on checkout if multiple campaign items with the same name were applied to the order.

Ucommerce 8.2.0.19157

June 6, 2019

Bug Fixes

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

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.
  • New "Dashboard" Speak App on the Launchpad for quickly accessing a full-width view of the new Dashboard introduced in v8.

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.19053

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

General

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

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.

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.
  • Compatibility with Sitecore versions below 8.2 is now deprecated

What's new?

Bug Fixes

  • ExportCategoryProducts was not working due to a missing type.
  • All methods in our IDomainService implementations are now virtual and thus overridable.
  • Backoffice - Multipicker UI has been given a visual facelift
  • Backoffice - Catalog mananger dialogs have been resized to better fit the content
  • 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.

Ucommerce for Umbraco

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.

Ucommerce for Sitefinity

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

Main Features

  • Compatibility with Sitefinity 14.3.
  • Compatiblity with Sitefinity 14.2.

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.
  • 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.

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`.
  • `Sitefinity.UserService.GetCurrentUser` would return Error 500 when using Sitefinity Custom Membership Provider (Sitefinity)
  • 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.
  • Dashboard basket and promotion links are now updated to redirect to the new UI
  • 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.

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.1.21265

September 23, 2021

New

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.Sitefinity.Content.ImageService" now correctly resolves URLs for imported images.
  • Installing Sitefinity runs indexing automatically on a first run.
  • '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.
  • PayEx TestMode endpoint reference has been updated to avoid 'EndpointNotFoundException'
  • Changing 'data enum type' within an existing product variant yields incorrect faceted search results.
  • 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

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

Bug Fixes

  • No longer add unnecessary <httpModules> and <httpHandlers> entries to web.config upon installation, which would result in an "HTTP Error 500.23" when deploying to Sitefinity Cloud.

  • 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 works 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

FIX: 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

  • Support for Sitefinity 13.2.
  • 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.
  • IndexDefinition syntax has been updated please visit https://docs.ucommerce.net/ucommerce/v9.3/search-and-indexing/index-definitions.html
  • Legacy Catalog manager app module page replaced with new Stores, Catalogs and Products apps.
  • 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.
  • 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.
  • "Order Manager" and "Marketing Manager" module pages renamed to "Orders" and "Promotions".
  • Permissions: One user can have maximum 2100 unique stores permissions assigned.

Known Issues

  • Publishing website to an IIS folder doesn't publish Ucommerce DLLs.
  • 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

New

  • Ucommerce widgets for Sitefinity updated to Ucommerce 9.3.1

Bug Fixes

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

Ucommerce 9.3.0.20261

September 22, 2020

Breaking Changes

  • Drop support for Sitefinity 11. Ucommerce.Sitefinity now targets .NET 4.7.2 as does Sitefinity 12.0+.

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.

  • Support for Sitefinity 13.1.

  • Sitefinity Cloud support.

  • 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.

  • ArgumentException getting product prices, when there is no logged in member.

  • Image picker crashes when selected image is permanently removed.

  • Image picker no longer lists images located in recycle bin.

Ucommerce 9.2.0.20195

July 15, 2020

New

  • Support for Sitefinity 13 via NuGet.
  • Support for Sitefinity 13 via Project Manager (requires manual step, please refer to installation instructions).
  • 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.

Ucommerce 9.1.0.20154

June 3, 2020

General

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

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 Sitefinity 11 and 12.
  • 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 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.
  • 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.
  • Error 404 on all Ucommerce WebAPI routes after adding a language to Sitefinity.
  • 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.

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

  • With the Multisite module disabled, the profile dropdown in the header was not clickable while on Ucommerce pages.
  • Buttons no longer disappear when you expand the tree above the dialog's height when selecting new products for a category in the backend.
  • Small screens would have problems fitting the "Add product to order" dialog on screen making it impossible to add new products.
  • InvalidOperationException on checkout if multiple campaign items with the same name were applied to the order.

Ucommerce 8.2.0.19157

June 6, 2019

Bug Fixes

  • Localization exception is no longer thrown if there are periods in the website path.
  • Removed dependency on recently unlisted "Microsoft.CompilerServices.AsyncTargetingPack.Net4.dll" NuGet package.
  • Some dynamic property values were erroneously saved to the database sanitized.

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.
  • New "Dashboard" menu point in the Ucommerce menu for quickly accessing a full-width view of the new Dashboard introduced in v8.

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.19053

February 22, 2019

New

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

Bug Fixes

  • ExchangeRateAPICurrencyConversion app is now correctly part of the installation package.
  • 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

General

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

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.

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

  • ArgumentNullException in DomainService when not using a multisite Sitefinity license.
  • ExportCategoryProducts was not working due to a missing type.
  • All methods in our IDomainService implementations are now virtual and thus overridable.
  • Backoffice - Multipicker UI has been given a visual facelift
  • Backoffice - Catalog mananger dialogs have been resized to better fit the content
  • 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.

Ucommerce for Kentico

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.
  • 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.
  • 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.

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

  • InvalidOperationException on checkout if multiple campaign items with the same name were applied to the order.

Ucommerce 8.2.0.19157

June 6, 2019

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.
  • New "Dashboard" app in the Ucommerce menu for quickly accessing a full-width view of the new Dashboard introduced in v8
  • Ucommerce now supports media selection when files are hosted in Azure Blob Storage.

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.19053

February 22, 2019

New

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

Bug Fixes

  • ExchangeRateAPICurrencyConversion app is now correctly part of the installation package.
  • 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

  • Fixed spelling in class name "UCommerce.Kentico.Content.ExtentionMethods", it is now "UCommerce.Kentico.Content.ExtensionMethods".
  • 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.

New

  • Now compatible with Kentico12!
  • 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.
  • Creating Kentico campaigns is possible again after installing Ucommerce.
  • BasketHasAtLeastXProducts macro method will no longer log an error in the event log in case the basket is empty. (Kentico)
  • Picking a Kentico content page through Ucommerce no longer filters based on the "ShowInNavigation" property. (Kentico)
  • Installing into Kentico now correctly finds the installation path for all cases. (Kentico)
  • MarkBasketsAsAbandonedTask now uses our own settings key for the period of time before baskets become abandoned. It can be set in the Settings application under the Ucommerce node. (Kentico)

Removed

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

Ucommerce 7.19.0.18260

September 18, 2018

Breaking Changes

  • Kentico content picker now uses Node guids instead of ids. (Kentico)
  • Payment providers are now deployed as individual apps, allowing them to be disabled individually.

Bug Fixes

  • Icons in the image picker were missing Kentico. 
  • All methods in our IDomainService implementations are now virtual and thus overridable.
  • Kentico User-, Authentication- and MemberService no longer restrict by the .IsExternal property.
  • All methods in the Kentico implementations of AuthenticationService, UserGroupService, MemberService and UserService are now virtual and thus overridable.
  • Backoffice - Multipicker UI has been given a visual facelift
  • Kentico ProductIdPicker form control now only uses RavenDB for listing products for better performance.
  • Backoffice - Catalog mananger dialogs have been resized to better fit the content
  • 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.

Uccelerate 

Uccelerate 0.2.1.1

October 19, 2018

    • Fixed special characters in URL
    • Fixed timeout on search

Uccelerate 0.2.1

August 29, 2018

  • Buttons in footer and grid
  • Filter is populated with Ajax in category view
  • Counter on Filter items
  • Set search to specific shop
  • Multiple variations on product
  • All productlists is now loaded over Ajax.
  • Removed partial view /Views/Partials/Shared/Product.cshtml
  • Minor code cleanup
  • Minor bug fixes and UI updates

Uccelerate 0.1.9

August 14, 2018

  • Collapse and sticky option on filterpanels
  • Set product width on related products
  • Set image width on Gallery and Instagram Feed
  • UI improvements for product variations
  • Improved form validation in checkout
  • Terms and conditions option in checkout
  • Alternative shipping address in checkout
  • Additional Fields option in checkout
  • Minor bug fixes and UI updates

Uccelerate 0.1.8

June 1, 2018

  • Removed payment and shipping cost from basket price.
  • Added payment cost to summary in checkout.
  • Changed from UcommerceAPI using ServiceStack to WebAPI
  • Added options Height & Draw Line in the Line Break widget.
  • Added option Button Size in the Button widget
  • Empty cart message on checkout page
  • "Allow ordering"-check for custom buy buttons
  • Ability to set Product Width on Product List, Product Category and Search Page
  • Minor bug fixes and UI updates

Legacy

Change log for 7.18.0.18185

  • NEW: "AddChildContainer" method on ObjectFactory allows for adding child containers to the main container.
  • NEW: Compatibility with Sitefinity 11.0. (Sitefinity).
  • NEW: UCommerce.Api.TransactionLibrary.GetPaymentPageUrl(Payment payment) that gives you the url for the payment page if you want to do the redirect manually.
  • NEW: UCommerce.SystemWeb assembly for abstracting System.Web dependencies away over time.
  • BRK: UCommerce.EntitiesV2.SessionProvider has changed arguments.
  • BRK: Moved Commerce element to Windsor configuration properties. See article: http://docs.ucommerce.net/ucommerce/v7.18/Migration/Migrate-commerce-element.html
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.CommerceConfigurationProvider.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.CatalogConfigurationSection.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.CommerceConfigurationSection.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.ShippingMethodServiceElement.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.ExternalPaymentConfigurationSection.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.SecurityConfigurationSection.
  • BRK: Removed Type UCommerce.Infrastructure.Configuration.RuntimeConfigurationSection.
  • FIX: Where facet name was set to display name.
  • FIX: Enabling the "Create customer as member" option would throw an exception during checkout. (Sitefinity)
  • FIX: When creating a customer as a user, the user is correctly assigned to the selected role. (Sitefinity)
  • FIX: Compatibility with Sitefinity 10.2. (Sitefinity)
  • FIX: Further improvements to the look-and-feel of the Ucommerce backoffice in Sitefinity. (Sitefinity)
  • FIX: Scratch indexer logging used to log wrong value for the amount of total indexed products.
  • FIX: Added a custom message to Umbraco image service logging specifying which media ID it fails for. (Umbraco)
  • FIX: ModifyKenticoCampaignBuildJsFile no longer modifies the ~/CMSScripts/CMSModules/CMS.WebAnalytics/Campaign/build.js with a new line on each website reset. (Kentico)
  • FIX: Edit Macro Condition for products, now displays the product name and not the product id. (Kentico)
  • FIX: Tiered Price engine would in some cases calculate discounts wrong.
  • FIX: A backend user can no longer edit access for payment and shipping methods to stores that they don't have access to.
  • FIX: It was possible to set payment methods for stores you'd not have access for.
  • FIX: It was possible to set shipping methods for stores you'd not have access for. 
  • NOTE: PerWebRequestLifestyleModule is configured in code and is no longer needed in web.config.
  • NOTE: InitializeAppsModule is configured in code and is no longer needed in web.config.
  • NOTE: Commerce element is no longer present in web.config
  • NOTE: UCommerce.Api.TransactionLibrary.GetPaymentPageUrl(Payment payment) is not optionally in Sitefintiy MVC. It is required to do redirect like that.

Change log for 7.17.0.18149

  • NEW: Beta Sitefinity integration via NuGet.
  • NEW: IConnectionStringLocator to override how connection strings are located.
  • NEW: ServiceStack configuration is now located in apps folder.
  • NEW: GetSession() and GetStatelessSession() are now virtual.
  • FIX: DIBS breaking change where transactionId exceeded an integer value.
  • FIX: Fixed a bug where deleting a product would throw an ObjectNotFoundException.

Change log for 7.16.2.18137

  • FIX: Fixed incorrect price calculation for the orderline total in the UpdateLineItem pipeline, which also resulted in discounts applied multiple times.
  • FIX: Order Manager Search Orders always showed Basket for all orders.
  • FIX: Fixed null reference exception during the AddToBasket pipeline when merging order properties.

Change log for 7.16.1.18134

  • FIX: SqlException on duplicated keys when updating product prices for multiple price groups at once.
  • FIX: Exception during product search in Catalog Manager.

Change log for 7.16.0.18116

# Support for tiered pricing.

  • BRK: Removed uCommerce_PriceGroupPrice table.
  • BRK: Removed EntitiesV2.PriceGroupPrice entity.
  • NEW: uCommerce_ProductPrice table. 
  • NEW: uCommerce_Price table. 
  • NEW: Migrating PriceGroupPrice to ProductPrice and Price tables. 
  • NEW: IQuery responsible for removing database dependency from UCommerce.dll. 
  • NEW: UCommerce.NHibernate.dll for NHibernate dependencies. 
  • NEW: Implementation of IQuery, UCommerce.NHibernate.NHibernateQueryBase responsible for querying against NHibernate. 
  • NEW: Migration script SQL command timeout can now be configured in web.config using <add key="uCommerce:MigrationSQLTimeout" value="600" />
  • NEW: ProductPriceQuery to query for product prices. 
  • NEW: DiscountAppliedProductPriceQuery to query for product prices with discounts. 
  • NEW: UCommerce.Catalog.IProductPriceCalculationService, responsible for calculating and returning prices based on products and price groups. 
  • NEW: CalculateUnitTaxTask in UpdateLineItem pipeline to recalculate when quantity is updated. 
  • NEW: UpdateUnitPriceBasedOnQuantityTask in UpdateLineItem pipeline to recalculate when quantity is updated. 
  • NEW: RoundingOffUnitPriceTask in UpdateLineItem pipeline to ensure updated unit prices is rounded correctly. 
  • NEW: AddPropertiesToOrderLineTask in AddToBasket pipeline which updates order properties with AddToBasket properties if property key is specified in IOC for AddToBasket.AddPropertiesToOrderLine component. 
  • NEW: ICannedQuery ProductGuidBySkuAndVariantSkuQuery, which is used for loading a product GUID by SKU.
  • NEW: Extensions Method for ProductPriceCalulationServiceResult WhereQuantity, which is used to return the prices from a tier. 
  • NEW: Extensions Method for ProductPriceCalulationServiceResult WhereProductGuid, which is used to return the prices from a product.
  • NEW: Extensions Method for ProductPriceCalulationServiceResult WherePriceGroupGuid, which is used to return the prices from a price group. 
  • NEW: CatalogLibrary.CalculatePrice(IList<Guid> productGuids, IList<Guid> priceGroupGuids = null), calculates prices for specified product guids and price group guids.
  • NEW: CatalogLibrary.CalculatePrice(IList<Product> products, IList<PriceGroup> priceGroups = null), calculates prices for specified products and price groups.
  • FIX: Restoring a category underneath a catalog would add it to its old parent category. 
  • FIX: Missing configuration which caused showing all configured right click options in the backend tree. (Kentico, Sitecore)
  • FIX: Calculating amounts for order line is executed after AddToBasket.IncrementQuantity in AddToBasket pipeline, to ensure order line quantity is correct when calculating order line price. 
  • NOTE: Obsolete UCommerce.Catalog.IPricingService, use IProductPriceCalculationService instead.
  • NOTE: Obsolete UCommerce.Api.PriceCalculation, use IProductPriceCalculationService instead.

Change log for 7.15.0.18086

  • BRK: Removed the property CatalogContext.CurrentCatalogGroupName. It was not used.
  • NEW: Breadcrumbs for Ucommerce in the Kentico back office.
  • NEW: New macro method for getting placed orders by email Ucommerce.PlacedOrderByEmail(...). (Kentico)
  • NEW: Activity logging for when a product is removed from a basket. (Kentico)
  • NEW: Product removed from basket activity can now be used as a conversion for campaigns (Kentico)
  • NEW: Conversion logging for when a product is removed from a basket. (Kentico)
  • NEW: The Ucommerce Email service now takes advantage of Kentico's email templates, allowing them for selection instead of content nodes. (Kentico)
  • NEW: Macro method "Ucommerce.CurrentOrder()" that returns order data that can be used in confirmation email templates. (Kentico)
  • NEW: Macro method "Ucommerce.PlacedOrderByEmail(string email)" that returns placed orders for a email. (Kentico)
  • NEW: ICannedQuery ProductIdBySkuQuery, which is uses for loading a parent product by sku.
  • NEW: ICannedQuery ProductIdBySkuAndVariantSku, which is uses for loading a parent product by sku and varant sku.
  • NEW: New pipeline for saving EmailProfileInformation that runs when saving an email profile.
  • FIX: Product added to basket conversion is now also logged when increasing the quantity in the basket. (Kentico)
  • FIX: Product added to basket was previously logged only upon creation of a new orderline. Now it is also logged when increasing quantity. (Kentico)
  • FIX: Multiple pickers pre-selected value controls doesn't interfere with each other.
  • FIX: Percentage off values in Marketing Foundation now matching the Database.
  • FIX: Typo in left side menu on Campaign in Danish.
  • FIX: Missing icons for data time picker in Umbraco.

Change log for 7.14.0.18060

  • BRK: Deleted TransactionLibraryInternal.GetPurchaseOrdersByStatus(...) because we no longer use it.
  • NEW: Ucommerce now, during installation, disables macro rules that rely on Kentico E-commerce as to not confuse users. (Kentico)
  • NEW: Form control to selecting a product id, which can be configured to allow sellable products, all products or variants. (Kentico)
  • NEW: Using the new product id selector (form control) for activities related to products.
  • NEW: Using the new product id selector (form control) for macro rules related to products.
  • NEW: Search and select products as part of marketing automation. (Kentico)
  • FIX: Better styling in multi content and image pickers.
  • FIX: Using category target as display target would give an exception if no categories were selected.
  • FIX: Now mapping the correct properties from customers to contacts. (Kentico)
  • FIX: Users created during checkout are now correctly mapped to the site from which they checked out. (Kentico)
  • FIX: Product reviews would appear in pending reviews even though they were set to auto approve.
  • FIX: The horizontal scrollbar in product relation picker dialog, which wasn't accessible
  • FIX: Store editor had the same validation summary enabled twice on the page.
  • FIX: Order list widget showed the wrong date in the table.
  • FIX: Ucommerce no longer throws an error when checking out with a user that has already been created through Kentico's Users application. (Kentico)
  • FIX: During checkout the customer's name is now correctly mapped to the Kentico user. (Kentico)
  • FIX: The date picker button in the variant editor is no longer on a separate line. (Kentico)
  • FIX: Styling of the audit information was out of alignment (Kentico)

Change log for 7.13.0.18039

  • BRK: Moved the RavenDB integration to a separate assembly "UCommerce.RavenDB".
  • BRK: Moved the RavenDB component configuration to the file "Apps/RavenDB/RavenDB.config".
  • NEW: It is now possible to export products from a category to an Excel (.xlsx) file using the new export button on the 'Products' tab of any category.
  • NEW: RavenDB shipped as an app.
  • NEW: Support for RavenDB 3.0.
  • NEW: Upgraded RavenDB integration as an app that can be enabled as an upgrade.
  • NEW: RavenDbIIsStoreProvider can now be configured with an API key through configuration.
  • NEW: Better support for auto-completion when using the Ucommerce macro methods. (Kentico)
  • FIX: Performance improvements loading resources to the backend. Could massively slow down some virtual environments if reading from disk would be slow.
  • FIX: Used TextBoxControlAdapter to resolve the value for DateTimePicker, DatePicker and Number.
  • FIX: DIBS payment gateway integration would complete an order, even though the acquire step returned DECLINED.
  • FIX: Rich text editor now properly works for dynamic definitions on stores and catalogs.
  • FIX: Resource files are now properly updated when upgrading Umbraco and Kentico through NuGet. (Umbraco, Kentico)

Change log for 7.12.0.18019

  • BRK: Updated the Castle.Windsor dependency from 3.3.0 to 4.1.0
  • BRK: Removed uCommerce_OrderStatusDescription table
  • BRK: Removed IShippingMethodService.ValidateForShipping method, as it was not used.
  • BRK: Updated the Castle.Core dependency from 3.3.3 to 4.2.1
  • BRK: UCommerce.Xslt.Interceptors.XmlExceptionInterceptor moved from UCommerce.dll to UCommerce.Infrastructure.dll
  • BRK: License authentication uses SSL and the .net domain, now it is https://licensing.ucommerce.net, it was http://licensing.ucommerce.dk 
  • NEW: SearchLibrary now has a new method for performing full-text search on products by name (SearchLibrary.GetProductsByName).
  • NEW: SearchLibrary now has a new method for getting product name suggestions (SearchLibrary.GetProductNameSuggestions).
  • NEW: Added support for mandatory property injection with Castle Windsor.
  • NEW: Configuration of transaction isolation level moved to Windsor XML property.
  • FIX: Now works with Sitecore version 8.1.
  • FIX: Sales Totals report now uses order date and not basket date for filtering.
  • FIX: Sales Totals report included order placed at 00:00:00 in the current day and the day before.
  • FIX: Installer no longer logs exceptions with missing uCommerce_SystemVersion table.
  • FIX: Removing a product from a product target, where the product has selected in an DiscountSpecificOrderLine target, would cause a NullReferenceException.

Change log for 7.11.0.17348

# Support for Kentico 11.
# Support for Web API 2.
# No longer support version of Sitecore older than 8.0.
# Back office web services are now Web API 2 web services.
# 8 new pipelines for deleting entities.

  • BRK: No longer support version of Sitecore older than 8.0.
  • BRK: Moved ITreeNodeService, ITreeNodeServiceProvider, ITreeNodeContentToTreeNodeConverter from UCommerce.Web.Api.Services.Nodes to UCommerce.Web
  • BRK: Moved ContentNodeService, TreeNodeServiceProvider, TreeNodeContentToTreeNodeConverter from UCommerce.Web.Api.Services.Nodes.Impl to UCommerce.Web.Impl
  • BRK: Moved CreateOptionItem, DefaultOptionItem, DeleteOptionItem, NodeItem, RefreshOptionItem, SeparatorOptionItem, SortOptionItem from UCommerce.Web to UCommerce.Web.Models
  • BRK: Moved the DefinitionGraphService and its models from UCommerce.Web.Api assembly to the UCommerce assembly in the namespace "UCommerce.Services.DefinitionGraphs".
  • BRK: All models related to web services have been moved from UCommerce.Web.Api to UCommerce.SystemHttp.
  • BRK: Moved and renamed UCommerce.Web.Api.Models.Widget to UCommerce.WebAPI.Models.WidgetDto
  • BRK: Moved and renamed UCommerce.Web.Api.Models.Widget to UCommerce.WebAPI.Models.AppManifestDto
  • BRK: The add widget web service (/ucommerceapi/Widgets/user/AddWidget) now returns an object with the user widget setting id, instead of the id directly.
  • NEW: Converted the Service Stack web services to Web API 2 web services.
  • NEW: Assembly UCommerce.SystemHttp which contains the Web API 2 web services, attributes etc.
  • NEW: Interface UCommerce.Services.IDefinitionGraphService which the UCommerce.Services.Impl.DefinitionGraphService now implements.
  • NEW: "IsAuthenticated" attribute for Web API 2 for web services.
  • NEW: "IsInRole" attribute for Web API 2 for web services.
  • NEW: New service called "UCommerce.Search.IFullTextSearchProductsByName", that you can use to do a full text search for products in the RavenDB.
  • NEW: New service called "UCommerce.Search.ISuggestOtherSearchTerms", that you can use to get suggestions to other search terms, when a full texty search finds nothing.
  • NEW: Ucommerce now updates the Kentico ScreenLock, so Kentico backoffice users won't be logged out when working only in the Ucommerce interface for a long period of time. (Kentico)
  • NEW: UCommerce.Pipelines.Pipeline<T> is no longer an abstract class.
  • NEW: Delete product relation type pipeline.
  • NEW: Delete country pipeline.
  • NEW: Delete currency pipeline.
  • NEW: Delete price group pipeline.
  • NEW: Delete order number serie pipeline.
  • NEW: Delete payment method pipeline.
  • NEW: Delete shipping method pipeline.
  • NEW: Delete email profile pipeline.
  • NEW: Delete email type pipeline.
  • FIX: The header where the product name is displayed in the product editor is not capped anymore, allowing for longer product names to be displayed. (Kentico)
  • FIX: Marketing foundation where a qualifier were ignored when multiple qualifiers was configured on a campaign item.
  • FIX: Marketing foundation when handling targets of the same type when the type can both be IPurchaseOrderTarget and IOrderLineTarget.
  • FIX: Ucommerce category picker now has the correct styling on Safari.
  • NOTE: Removed backwards compatability with Microsoft server 2003.

Change log for 7.10.0.17325

  • BRK: Change order of how ControlAdapters and ControlFactories are loaded to make sure custom implementation will be evaluated before default implementations.
  • NEW: Option to exclude product data from data provider integration. (Sitecore)
  • NEW: Support for Sitecore 9.
  • FIX: Tax on payment fees are now optional. Different countries have different tax laws on fees, Ucommerce is not responsible for the correct configuration.
  • FIX: Checkboxes not showing up for multipickers in Kentico.
  • FIX: Checkbox styling for multipickers in Kentico.

Change log for 7.9.0.17307

  • NEW: Support for Kentico 10.
  • FIX: Images for products and categories where stretched when displayed in the Catalog Manager speak app.
  • FIX: The unit price, when adding a product to the basket, was not rounded correctly. This could cause some rounding errors in certain situations.
  • FIX: DynamicOrderProperty would trigger, if set to target an OrderLine if no order line had the property.

Change log for 7.8.1.17290

  • FIX: Javascript error in image picker, which was introduces in V7.8.0.17285.
  • FIX: Content picker preview to show selected item.

Change log for 7.8.0.17285

  • BRK: Renamed RegisteredServicesFor() to GetServiceIdsFor() in ObjectFactory and updated method documentation.
  • BRK: Removed the DataTypeDefinitionName editor on DataTypes. Going onwards all datatypes must inherit DataType to get the DefinitionField called Editor.
  • NEW: Definitions on Data Types that allows to create dynamic data for your datatypes.
  • NEW: Definitions on Product Catalogs that allows to create dynamic data for your Product Catalogs.
  • NEW: Definitinos on Product Catalog Groups that allows to create dynamic data for your Product Catalog Groups.
  • NEW: Ability to see definition inheritance on all Definition Types instead of only on product definitions.
  • NEW: Added a Pipeline that runs when Creating/Saving a Campaign.
  • NEW: Added a Pipeline that runs when Deleting a Campaign.
  • NEW: Added a Pipeline that runs when Creating/Saving a Campaign item.
  • FIX: Support for Umbraco 7.7
  • FIX: You no longer get an exception when trying to create a new product catalog within the backend when multiple languages are installed. (Sitecore)
  • FIX: Create Customers as members would throw an InvalidOperationException in Umbraco 7.6.0 and newer. (Umbraco)
  • FIX: You can no longer remove all categories from a product within the backend.
  • FIX: You will no longer get an exception when trying to rename a product catalog to a name that has already been used by a deleted catalog.
  • FIX: When deleting a product in Ucommerce, the product node should now be correctly removed from the content editor too. (Sitecore)
  • FIX: Variant products being indexed as head products in RavenDB when saved from the variant multilingual dialog.
  • FIX: RavenDbRepository now has virtual on all methods to make it more Open to extensions.
  • FIX: Issue where the variant price dialog doesn't show all the input fields due to how overflowing content is handled.
  • FIX: Stopped spamming the log file with "No connection string was found. Indicating a fresh Umbraco7 installation" messages. (Umbraco)
  • FIX: issue where the order total could become negative if a order level discount exceeds the order sub total.
  • FIX: Now excludes deleted categories and catalog from sorting in the backend.
  • FIX: issue where an exception was thrown when a product catalog is renamed.
  • FIX: InvalidOperationException when creating customer as member in checkout pipeline. (Umbraco 7.6.0 and newer)
  • NOTE: The index "UX_uCommerce_ProductCatalog_Name_ProductCatalogGroupId" has been updated to be a filtered unique index which mean that MSSQL 2008 is a minimum requirement.
  • FIX: Fixed Ucommerce Shortcut not showing in Sitecore 8.2+ Start menu (Sitecore)

Change log for 7.7.1.17180

  • NEW: Recalculates the shippingTotal when updating and order in the Order foundation (SaveOrder pipeline).
  • FIX: Improved performance when saving a new sort order of products in a category.
  • FIX: Ensures that we don't duplicate the Url Rewrites in Umbraco.
  • FIX: Content Editor item access permissions would sometimes change inexplicably, for the Ucommerce catalog items. (Sitecore)
  • FIX: Active tabs to work with JQuery in Umbraco (Umbraco 7.5 and newer).
  • FIX: Fix Ucommerce product picker plugin to display long product names nicely. (Umbraco)
  • FIX: The internal DataProvider cache would sometimes become ineffective after a save of a Ucommerce category. (Sitecore)
  • FIX: Too agressive loading of categories, when the children of a catalog was loaded. (Sitecore)
  • FIX: Sequence contains more than one element exception when saving a catalog if multiple catalog has same name across stores.
  • FIX: StackOverflow exception in dataprovider on start up, which was introduces in V7.7.0.17130. (Sitecore)
  • NOTE: Improved clean up in the apps folder after an app is installed in uCommerce, in regards to the "package" folder in the .NuGet package.

Change log for 7.7.0.17130

  • BRK: The minimum .NET version is now 4.5 (was 4.0), Sitecore Commerce Connect is still 4.5.2
  • BRK: Moved UCommerce.Transactions.Payments.Common and UCommerce.Transactions.Payments.Configuration namespaces from the UCommerce.Transactions.Payments.dll to the UCommerce.dll
  • BRK: Moved EnumExtensions class for Adyen to the UCommerce.Transactions.Payments.Adyen namespace.
  • NEW: Item names generated by the DataProvider are now always valid. The Sitecore field DisplayName is now set to the original name, so the appearance in the Content Editor is unchanged. (Sitecore)
  • NEW: Support for Umbraco 7.6.0.
  • FIX: ArgumentException in domain service when Umbraco is running on SQL CE. (Umbraco)
  • FIX: PaymentMessages has been changed from Internal to Public. Now they can be used for 3rd party payment providers.
  • FIX: Removed UrlRewriting.config in Umbraco 7.6.0 by Adding Url rewrites to web.config (Umbraco 7.6.0 and newer).
  • FIX: Now Umbraco.Core.Logging.LogHelper instead of deprecated BusinessLogic.Log doing Ucommerce installation.
  • FIX: Query string parameters passed by the EmailService, when retrieving the content of the email template are now URL encoded.

Change log for 7.6.0.17121

  • BRK: Removed the SagePay (Protocol version 2.23) payment method service because it is no longer supported.
  • BRK: SecurityException is now thrown instead of SecurityAccessDeniedException (System.ServiceModel.Security) in order to remove dependency on System.ServiceModel.dll
  • BRK: UCommerce.dll no longer has a dependency on ServiceStack.Text.dll. All Url encoding is now done with System.Uri.EscapeDataString.
  • BRK: UCommerceWeb.dll no longer has a dependency on ServiceStack.
  • NEW: Support for taxation of payment fees (includes three new pipeline tasks in the basket pipeline).
  • NEW: Three new columns have been added payment table.
  • NEW: Three new properties on the Payment entity: GrossAmount, Tax and TaxRate.
  • NEW: UpdateTrackerInformation class now performs the Sitecore tracking. (Sitecore 7.5 and newer)
  • NEW: Support for Sitecore 8.2 update 3.
  • FIX: Exception when applying discounts to an order or when CatalogLibrary.CalculatePrice(...) is used, due to a categories target without any categories selected being active.
  • FIX: Improved overall backend UI performance on Sitecore systems with many users. (Sitecore)
  • FIX: Improved performance when listing orders in the backend UI.
  • FIX: UpdateTrackerInformation won't try to use Sitecore Tracking in Sitecore versions older than 7.5 as it's not available. (Sitecore)
  • FIX: CatalogLibrary.GetProductReviews now honors the ProductCatalogGroup.ProductReviewsRequireApproval flag again.
  • FIX: Changed the 'amount' decimal format for the SagePayV3 payment method, which now correctly works with lower than 1 decimal value totals.
  • FIX: EpayPaymentMethodService now correctly returns a status of AcquireFailed if the acquire fails.
  • FIX: Selected orders will be consistent if multiple users are modifying orders, by not relying on the index but instead on orderId.
  • FIX: issue where shipping address would be sent to the Sitecore tracker if tracking is enabled. (Sitecore)
  • FIX: Error when creating or saving a product definition field or definition field from the back office, with the first character in the name being a number.
  • Fix: UI for updating order status when no option is available.
  • Fix: SessionProvider is now open for extension by refactoring private methods to protected virtual.

Change log for 7.5.0.17040

  • BRK: TransactionLibraryInternal.GetBasket() has a default value of false, just like TransactionLibrary.GetBasket()
  • BRK: .NET framework 4.5.2. is now required for Commerce Connect. (Sitecore)
  • BRK: RemoveMenuButtion changed name to proper name RemoveMenuButton on SectionMenu.
  • NEW: Validation of ObjectFactory dependencies can be disabled with config setting (<add key="Ucommerce:DisableCheckForPotentiallyMisconfiguredComponents" value="True" />).
  • NEW: Order search now has additional fields (Billing address email, Phonenumber and Payment reference)
  • NEW: Create shipment pipeline
  • NEW: Create address pipeline
  • NEW: Remove shipment pipeline
  • NEW: Enabled Sitecore Tracking for visitors when billing information is submitted.
  • NEW: Support for Commerce Connect pipeline "Carts.AddParties". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Carts.UpdateParties". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Carts.RemoveParties". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Carts.AddPaymentInfo". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Carts.RemovePaymentInfo". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Orders.SubmitVisitorOrder". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Payments.GetPaymentMethods". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Payments.GetPaymentOptions". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Payments.GetPricesForPayments". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Payments.GetPaymentServiceUrl". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "Payments.GetPaymentServiceActionResult". (Sitecore)
  • FIX: SectionMenu now has a public list of buttons to better qualify buttons to remove in the UI builder pipeline.
  • FIX: TabViewBuilder now takes into account the configuration for HasSaveButton.
  • FIX: Backend did not show selected tab. (Umbraco7)
  • FIX: Tree nodes didn't support query string parameters in the action url.
  • FIX: Exception argumentNullException when adding new order lines to an existing order in the Ucommerce backoffice when CommerceConnect is enabled.
  • FIX: CatalogLibraryInternal.GetNiceUrlForCategory() has parameters swapped and added a default value, just like CatalogLibrary.GetNiceUrlForCategory()
  • FIX: Saving User Roles no longer throws exception (Sitecore 8.2)
  • FIX: Saving UserGroup Roles no longer throws exception (Sitecore 8.2)
  • FIX: Opening User Groups no longer throws exception, and have proper names instead of id (Umbraco)
  • FIX: Bug where GetProperty with a culture code would not add properties if missing.
  • FIX: Content Editor would not show values for multi lingual fields. (Sitecore)
  • FIX: Slider handles in DateTimePicker were invisible.
  • FIX: When more than one value was selected in a MultiSelectEnum, the Content Editor would show an error. (Sitecore)
  • FIX: When no enum values were selected in either an Enum or MultiSelectEnum fields, the Content Editor would show an Error. (Sitecore)

NOTE: UCommerce.EntitiesV2.PurchaseOrder.CreateShipment(ShippingMethod shippingMethod, OrderAddress shippingAddress) has been marked as obsolete, you should use the new create shipment pipeline.
NOTE: UCommerce.EntitiesV2.PurchaseOrder.CreateShipment(ShippingMethod shippingMethod, OrderAddress shippingAddress, bool overwriteExisting) has been marked as obsolete, you should use the new create shipment pipeline.

Change log for 7.4.0.17010

  • BRK: TransactionLibraryInternal. CalculatePrice method is now non-static and virtual so that it can be overridden (Unit Testing).
  • NEW: Support for PayPal through Global Collect integration.
  • NEW: When building solution MSBuild will automatically install missing files. NuGet installer will modify project file to include additional MSBuild targets. (Umbraco7)
  • NEW: All tables now have indexes on all relevant columns to boots SQL performance. High data volume scenarios have better performance.
  • NEW: ProductCatalogDescription table now has a unique index on the columns ProductCatalogId and CultureCode.
  • NEW: UserGroup table now has a unique index on the columns ExternalId.
  • NEW: Support for Commerce Connect pipeline "GetShippingOptions". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "GetShippingMethods". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "GetShippingMethod". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "GetPricesForShipments". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "AddShippingInfo". (Sitecore)
  • NEW: Support for Commerce Connect pipeline "RemoveShippingInfo". (Sitecore)
  • FIX: All unique constraints have been changed to unique indexes.
  • FIX: Removed markdown feature from service stack as it can in some cases greatly increase startup time.
  • FIX: Bug where a user needed to have access to "settings" in order to delete campaigns and campaign items. (Sitecore)
  • FIX: NullReference exception when saving the Product Catalog, which was introduces in V7.3.0.16343.
  • FIX: Firefox clicking on the menu in backoffice did not open anything.
  • FIX: Creating a new OrderStatus from code did not work. NHibernate mapping is now correct.
  • FIX: Mapping users from Sitecore now works even if the casing is different from the username.
  • FIX: Tabs will have their culture code set before the name so that the name can be culture specific.
  • FIX: Exception was thrown during startup, when running on a CD server without a Master database (Sitecore), even when the SitecoreContext was set to use the Web
  • database.
  • FIX: Setting permissions for a UserGroup would cause a "Sequence contains more than one element" exception due to duplicate entries in the UserGroup table. (Sitecore)
  • FIX: Errors with adding a product to a basket through the Commerce Connect APIs. (Sitecore)
  • FIX: Issue where user group permissions were ignored.

Change log for 7.3.1.16343

  • NEW: Umbraco7 NuGet package now has a dependency on Microsoft.Data.OData version 5.2.0 or higher, not 5.2.0 specifically.

Change log for 7.3.0.16343

  • BRK: TransactionLibraryInternal. CreatePayment method is now overloaded and does not use optional arguments due to a bug in Castle project with decimal values and dynamic proxies.
  • NEW: The scratch indexer now has its own interface: IScratchIndexer. This makes it much easier to replace it with a custom indexer.
  • NEW: The ObjectFactory validates all dependencies are configured correctly at startup.
  • NEW: Cleanup duplicated entries in the CategoryProperties table and added a unique constraint.
  • NEW: Updated the Castle.Core dependency from 3.2.0 to 3.3.3
  • NEW: Updated the Castle.Windsor dependency from 3.2.0 to 3.3.0
  • NEW: Added primary key and clustered index to the table Ucommerce_AppSystemVersion.
  • NEW: Added primary key and clustered index to the table Ucommerce_SystemVersionSitecore.
  • NEW: Added primary key and clustered index to the table Ucommerce_SharedField. (Sitecore)
  • NEW: Added primary key and clustered index to the table Ucommerce_UnversionedField. (Sitecore)
  • NEW: Added primary key and clustered index to the table Ucommerce_VersionField. (Sitecore)
  • NEW: The Document. Product now has a product guid property.
  • NEW: CatalogLibrary.CalculatePrice(...) now uses CatalogLibraryInternal.
  • NEW: TransactionLibrary.GetBillingInformation(...) now uses TransactionLibraryInternal.
  • NEW: TransactionLibrary.GetShippingInformation(...) now uses TransactionLibraryInternal.
  • NEW: Updated the Fluent.NHibernate dependency from 2.0.1-alpha to 2.0.1.
  • NEW: Database Migration task to the app installation pipeline.
  • FIX: Added a unique constraint to the Ucommerce_CategoryProperty to avoid duplicate category properties.
  • FIX: Issue when creating BACPAC file of the database due to tables without a clustered index.
  • FIX: N+1 problem when reading catalog data for the Content Editor. (Sitecore)
  • FIX: PriceCalculation now includes the product in the tax calculation.
  • FIX: TypeError in javascript, could not navigate to a node after image picker has been selected.

Change log for 7.2.2.16293

  • FIX: Roles would be equals if store role compared derived roles and name was the same on both objects even though the role types were different.
  • FIX: UmbracoContentService would throw an exception if a node could not be found on id. (Umbraco7)
  • FIX: EmailService now logs more information if set to debug.
  • FIX: Installation no longer shows errors while installing. (Umbraco7)
  • FIX: Adyen payment provider now uses basic HTML authentication header for server to server notification messages.

Change log for 7.2.1.16274

  • BRK: Changed the namespace for resources include lists.
  • BRK: The basket lifetime option defined on the "ExtendBasketLifetime" task is obsolete. They are moved to the more general Settings.config file.
  • NEW: Support for Sitecore 8.2
  • NEW: Support for Commerce Connect 8.2
  • NEW: IUrlService now has easy overridable human readable description of the url generated for catalog/category/product.
  • NEW: MarketingLibrary gets two new methods used for getting campaignitems for products. GetTargetedCampaignItems(Product) and GetTargetedCampaignItemsForIndicidualProducts(IList<Product>).
  • NEW: Option to configure the basket lifetime is configured in the Settings.config file.
  • NEW: Resources include lists for Sitecore 8.2
  • NEW: Styling changes to match styling in Sitecore 8.2
    FIX: Selected product of the 'Discount specific order line' would be the first in the drop down and not the product previously selected.
  • FIX: GetAvailablePaymentMethods now filters out deleted methods.
  • FIX: Issue with Ucommerce data not being present in the content editor due to the way we register our data providers. (Sitecore 8.2)
  • FIX: Product names with single quotes or other html escapeable characters did not render correctly after save. A consequent save would remove the characters.
  • FIX: Basket cookie now respects domain, this enables a domain and subdomains to share the same basket cookie. Ex. site.com and my.site.com can share the same basket cookie.
  • FIX: YSOD after creating a new category is now fixed (Umbraco).
  • FIX: When creating a new Shop with the same name as a previously deleted one, will revive the delete instance.
  • FIX: Creating a CampaignItem, no longer creates two instances on IE 8/10/11.

Change log for 7.2.0.16251

  • BRK: IRoundingService now defaults to use 2 digits precision. To keep the old 4 digit behaviour you can control the number of digits using a partial component in the new settings config.
  • NEW: 'Catalog Manager' Speak app (Sitecore 8)
  • NEW: 'Order Manager' Speak app (Sitecore 8)
  • NEW: 'Promotion Manager' Speak app (Sitecore 8)
  • NEW: ' Ucommerce' lauchpad application has been renamed to 'Commerce Settings' and its' icon has been updated (Sitecore 8)
  • NEW: Buttons can now be added to a tab at a specific position in the menu bar.
  • NEW: All tabs in the back office, including custom tabs now has a save button if save functionality is available.
  • NEW: Configuration option in Runtime section of web.config. You can now specify a "baseDirectory" property. Use this, if the dynamic find of the base directory fails.
  • NEW: Settings folder with a settings.config file.
  • NEW: Possibility to configure if Ucommerce should include relations data in the Sitecore item data. The values are found in the new Settings file. (Sitecore)
  • NEW: PriceGroupTarget is now a DisplayTarget also.
  • NEW: Option to call the MarketingService with custom targetting contexts.
  • NEW: Option to call the MarketingService with a product, to get the display targets hit by that product in the current context.
  • FIX: Styling for rendering languages and tab menu together on Umbraco 7.
  • FIX: Category.GetProperties(fieldName) now takes multilungual configuration on the field into account when querying for the fieldvalue.
  • FIX: Unamed campaign item can now be selected in the Ucommerce tree (Sitecore).

Change log for 7.1.0.16202

  • NEW: Support for Umbraco as a Service - very importent, read the instructions
  • NEW: Support for Sitecore CommerceConnect 8.1
  • NEW: The WorldPay integration will now add the order guid in the query string when the customer cancels the payment on WorldPay's website.
  • NEW: UCommerce.API.IRoundingService used for all rounding of amounts on in the Basket pipeline tasks.
  • FIX: Issue granting the current user acess to Ucommerce when Ucommerce is installed in a seperate database (Umbraco)
  • FIX: Attempted to divide by zero when adding a product with 0 as price value to the basket.
  • FIX: When clicking on the already selected node in the Ucommerce tree it didn't reload the content.
  • FIX: Issue where a cached product would be indexed after save, instead of the updated product. (Sitecore)
  • FIX: Ensure that NHibernate maps to an nvarchar(max) on ProductTarget skus to avoid string value exceed the map length.
  • FIX: Avoid SingleOrDefault exception by creating latestPspReference up front when multiple threads tries to create it at once for Adyen.
  • FIX: Issue where the amount of vourchers to generate was validated as a string instead of as an integer in the voucher target.
  • FIX: Issue where the tax on discounted order lines would be wrong after saving an order in the back office.
  • FIX: Braintree Payment Gateway would throw an error, if the amount had more than two digits. (Thanks to Lee Messenger, for finding this issue!)
  • FIX: In some instances, orphaned Categories could cause an "The given key was not present in the dictionary." when publishing (Sitecore)
  • NOTE: The CalculateOrderLineTaxTask fix in 7.0.6.16104 has been reverted as it causes issues when an order is edited in the back office, the
  • CalculateOrderLineTaxTask issue will be fixed in future release.

Change log for 7.0.6.16104

  • NEW: Adyen now supports a new FlowSelection option "SkipSelect" that will let the customer skip selection the payment type, it can only be used if a brand code is provided.
  • NEW: Ucommerce tree support picking single item with more than one node type.
  • FIX: Facets for multilingual properties now only shows values for the actual language.
  • FIX: Adyen the shopper local parameter is now in the right format.
  • FIX: Styling issue in Sitecore where you couldn't scroll all the way to the bottom of tabs in the Ucommerce back office.
  • FIX: Campaigns would be offset by hours depeneding on the local server time.
  • FIX: Styling issue when the Enum multi select data type is used.
  • FIX: Issue where the configuration files located in the Apps folder weren't ignored, when looking for the main "Components.config" file.
  • FIX: CalculateOrderLineTaxTask would always use the order line's VAT rate to calculate the VAT, making it impossible to change the VAT rate on order lines.
  • FIX: NullReferenceException when getting StatelessSession from a ISessionProvider created by ObjectFactory.
  • FIX: Improved performance of MarketingFoundation, when having a large number of targets.
  • FIX: Improved performance of ProductTarget, when having a large number of products configured in one target.
  • FIX: Added missing constants for the product and order pages, in the namespace: UCommerce.Constants.Pages.Stores.Product and UCommerce.Constants.Pages.Orders.Order.
  • FIX: Ucommerce log files working in Sitecore 8.1
  • FIX: Dynamic Order Property Target used in combination with an Order Target, would sometimes give discount to all order lines.

Change log for 7.0.5.16060

  • BRK: The pipeline tasks that acquire payments when the payment status is changed to "Completed" has been made into a partial component and can be found at Ucommerce/Apps/AcquirePayments.disabled
  • BRK: The pipeline tasks that cancel/refund payments when the payment status is changed to "Cancelled" has been made into a partial component and can be found at Ucommerce/Apps/CancalPayments.disabled
  • NOTE: Documentation on how use the new partial components to acquire, cancal and refund payments can be found here: http://docs.ucommerce.net/ucommerce/v7.0/payment-providers/general-setup-of-payment-methods.html 
  • FIX: Deleting a variant did not update the data provider correctly. (Sitecore)
  • FIX: Deleting a product did not update the data provider correctly. (Sitecore)
  • FIX: Performance in scratch indexer when indexing large catalogs and categories greatly improved.
  • FIX: Performance when building the master index improved. (Sitecore)
  • FIX: Uninitialised boolean property values, would sometimes cause a NullReference exception to be thrown when accessing the item in the Content Editor. (Sitecore)
  • FIX: If you have "orphaned" categories, where the parent is deleted, publishing might throw a KeyNotFoundException. (Sitecore)
  • NEW: The Adyen payment method service now support the SHA-256 signing algorithm.
  • NEW: Added pipeline that is run when a variant is deleted from a product. The configuration can be found at: Ucommerce/pipelines/Admin/Catalogs.Variant.Delete.config.

Change log for 7.0.2.16034

  • FIX: Combining faceted search with complex where clauses would sometimes give incorrect results.

Change log for 7.0.1.16034

  • FIX: Free gift award in version 7.0.0 was adding two order lines instead of only 1.

Change log for 7.0.0.16029

  • BRK: TransactionLibrary.AddToBasket now returns the OrderLine added instead of void like TransactionLibraryInternal does.
  • BRK: TransactionLibrary.AddToBasket(int quantity, string sku, string variantSku = null, bool addToExistingLine = true, bool executeBasketPipeline = true, int? catalogId = null) is now Removed.
  • BRK: Version 4.0.0 of the Umbraco demo store only works with 7.0.0 of Ucommerce and forward.
  • BRK: Version 6.0.0 of the Sitecore demo store only works with 7.0.0 of Ucommerce and forward.
  • NEW: TransactionLibrary.ClearPayments() now only removes payments that are of status 'New' or 'PendingAuthorization'.
  • NEW: PurchaseOrder.ClearPayments() now only removes payments that are of status 'New' or 'PendingAuthorization'.
  • NEW: Overload on TransactionLibrary.AddToBasket that takes an optional unit price, an optional pricegroup, and a list of properties passed into the AddToBasketPipeline.
  • NEW: Added a new rootnode of type 'apps' to the tree specific for Apps. It will be hidden if no node providers delivers children for it.
  • NEW: The category target now supports multiple categories.
  • NEW: Scratchindexer can now be configured to only index product deltas based on when the last runtime of the indexer was and modified time on products.
  • NEW: Registering EntityUIs now throws an exception in Campaign overview if entity ui does not implement any of the required interfaces.
  • NEW: Ability to get PurchaseOrder by guid exposed on TransactionLibrary.GetPurchaseOrder( Guid).
  • NEW: Ability to get PurchaseOrder by orderNumber exposed on TransactionLibrary.GetPurchaseOrder(string).
  • NEW: Ignores files called "web.config" when including files using the "include-folder" configuration element.
  • NEW: Ignores configuration files located in the Apps folder, when looking for the main "Components.config" file.
  • NEW: The Page builder pipeline will now look for "SaveButtonPlaceholder" and add the page's save button if the page has one.
  • NEW: The Page builder pipeline will now look for "DeleteButtonPlaceholder" and add the page's delete button if the page has one.
  • NEW: RemoveMenuButton method on the SectionMenu that can be used to remove buttons from tabs.
  • NEW: Using the <write-configuration-to-file /> element to write the IOC configuration to disc now adds comments, indicating which files any dynamically added components and partial components come from.
  • NEW: ScratchIndexer can now be configured to clear cache after each product batch exported to prevent running out of resources for large catalogs.
  • NEW: Widgets now has a fixed base size of 100px x 100px instead of a calculated size based on the size of the screen making it easier to style for different sizes always dividable by 100.
  • NEW: Multilingual tabs are now sorted by language culture code in the backend.
  • NEW: Typeloader exceptions will now explicit be extracted and written when logged through LoggingService removing the requirement to attach a debugger when thrown to see the actual error.
  • NEW: AssignOrderNumberTask now explicitly throws an exception if no order number series has been configured for the store in context.
  • NOTE: Clear-cache-in- scratchindexer.example under Apps/debug in the Ucommerce folder shows how to do so.
  • FIX: If the stateless session provided by the SessionProvider was disposed you could not open a new one later within the same thread.
  • FIX: Generating roles would with large data set sometimes duplicate roles.
  • FIX: Better errror handling when no order number series has been configured for the store and the checkout pipeline is being executed.
  • FIX: Bug where discounts wouldn't be awarded when using the "Product catalog" target in combination with order line targets, e.g. "Buy more then"
  • FIX: Now uses the currencies culture to convert the display price to rigth format. 
  • FIX: Baskets that were created prior to Commerce Connect being installed, would throw null reference when trying to resume it. (Sitecore)
  • FIX: Unhandled Null Reference exception when publishing in Sitecore, cause by a ProductProperty with null as value.
  • FIX: Bug where a backend user couldn't  create or delete objects in the backoffice after deleting a price group when a user group has permissions to edit the price group.  
  • FIX: The Content Editor now always gets english names for the items in the catalog structure. (Sitecore)
  • FIX: More stable installation experience.
  • FIX: MultipleProductQuery did not fetch all things on variant level.
  • FIX: Dynamic order property to work on order line level. 
  • FIX: PurchaseOrderTarget combined with OrderLineTargets where some OrderLineTargets is satisfied didn't trigger award on the satisfied orderLine.  
  • FIX: Bug in Basket pipeline when custom TaxService and Order level award is combined.

Change log for 6.9.0.15323

  • NEW: Dropping assemblies under " Ucommerce/apps/*/bin" will now automatically be picked up by Ucommerce
  • NEW: Initialize pipeline with hook-ins that runs when the application starts.
  • NEW: ITreeContentProvider support root nodes for the Ucommerce tree in Umbraco 7.
  • NEW: Pipeline that runs on finalized section group for easier modification of the backend.
  • NEW: Ability to hook in new tabs by adding a new pipeline task instead of registering in the database, by adding a task to the SectionGroup pipeline.
  • NEW: Ability to add new buttons to existing tabs in the backend by adding a new pipeline task to the SectionGroup pipeline.
  • NEW: SampleApp that shows new extension points available for download at: https://bitbucket.org/Ucommerce/ucommerce-sample-app/downloads
  • NEW: Configured timing on InitializePipeline as a disabled app for debugging purposes.
  • NOTE: Remove the .example extension on "Enable-Timing-On-InitializePipeline.config" to log time on executed tasks.
  • FIX: Starting service stack moved to initialize pipeline instead of running as a PreApplicationStartup method on UCommerce.Web. Api.
  • FIX: Users can now change order status of an order from a deleted store on order overview.
  • FIX: The order search will now include orders from stores that have been deleted, when the order group option is set to "(All)".
  • FIX: Adyen: problem with notification and callback from adyen being processed at the same time, causing "Payment XX does not have payment status 'pending authorization'" exception.
  • FIX: Incompatibility issues with Print Studio (PXM). Field type names had incorrect case (Sitecore).
  • FIX: Old values for presentation layout details would linger until a reset of the site, because of too agressive caching. (Sitecore).
  • FIX: Getting pretty URL for a category will now use configured ProductCatalog on the category if passed ProductCatalog is null.

Change log for 6.8.3.15293

  • FIX: All users would get permissions from all user groups. (Umbraco)
  • FIX: The marketing node would show up when a user didn't have permissions to use marketing, the user couldn't access any data in the marketing section. (Umbraco 6)

Change log for 6.8.2.15287

  • FIX: Rounding errors when recalculating VATRate would sometimes throw exception "Purchase order VAT cannot be accurately calculated when using different VAT rate per item combined with order level discounts." when combined with order level discounts.
  • FIX: Exception when publishing, when WeBlog is installed. (Sitecore) (System.Reflection.TargetInvocationException)
  • FIX: Unsorted categories where sorted differently in content editor than in Ucommerce shell in Sitecore. 
  • FIX: If product definition fields had the same name, then saving one of them could potentially delete the facet definition, if the field did not have "Use in faceted search" checked.
  • FIX: Adding a product through the category editor didn't update index in RavenDB and Sitecore Lucene. 
  • FIX: Cloned purchase orders are now be savable.
  • FIX: Wrong text in right click menu on deleting an product catalog group action in Sitecore. 
  • FIX: The reload icon disappeared when title text got to long on widgets. 
  • FIX: The trees in umbraco now uses the ITreeContentProvider. 
  • NEW: Hook new tree nodes into the tree across CMSes by using ITreeContentProvider. 
  • NEW: Support for Smart Publishing of the catalog structure in Sitecore.
  • NEW: Added database columns: CreatedOn, CreatedBy, ModifiedOn, ModifiedBy for the table Ucommerce_Definition (UcommerceDB.140.sql)
  • NEW: Added database columns: CreatedOn, CreatedBy, ModifiedOn, ModifiedBy for the table Ucommerce_ProductDefinition (UcommerceDB.140.sql)
  • NEW: Added database columns: CreatedOn, CreatedBy, ModifiedOn, ModifiedBy for the table Ucommerce_DataType (UcommerceDB.140.sql)
  • NEW: Added database columns: CreatedOn, CreatedBy, ModifiedOn, ModifiedBy for the table Ucommerce_ProductCatalogGroup (UcommerceDB.140.sql)
  • BRK: Fix spelling error in namespace and url when navigating to Ucommerce in Sitecore from Ucommerce icon in the launch pad.
  • BRK: SearchLibrary is using a new index "Products/ByFacetsRecursive/{languageCode}". This means that when using SearchLibrary.FacetedSearch() you will only be able to find products that have a faceted field. If you need to search for all products in Raven, you need to use the old index "Products/ByPropertyRecursive/{languageCode}" when starting a query on a session from the Raven store.

Change log for 6.8.1.15265

  • FIX: Bug in Security foundation when rendering settings for a user group which cause a NullReferenceException in Umbraco.
  • FIX: Now renders user group name instead of index for an user group in security foundation.  
  • FIX: Problem shoving products with MultiSelectEnum fields in backend.

Change log for 6.8.0.15264

  • FIX: Content and Image picker would sometimes throw null-reference exception (Umbraco7)

Change log for 6.8.0.15261

  • NEW: Widget framework allows for creating new widgets for configurable dashboards
  • NOTE: Read about widgets and learn to style seamless and have full controll using AngularJS. (http://docs.ucommerce.net/ucommerce/v6.8/extending-ucommerce/extending-ucommerce-admin/widgets/index.html)
  • NEW: Widget that displays turnover by currency
  • NEW: Widget that displays numbers of orders placed by store configurable with interval and order status
  • NEW: Widget that displays an order list configurable by status and interval.
  • NEW: Widget that displays number of orders displayed by date in a coordinate system.
  • NEW: Widget that displays Marketing oveivew of active campaigns per date.
  • NEW: Widget that displays Information comming from Google Analytics in CHART,LINE or GEO charts.
  • NEW: Widget that allows searching products by name with suggestions when published to RavenDB. 
  • NEW: Use new product picker when selecting products to add on a order.
  • FIX: Breaking change from NHibernate 3.0 to 4.0 caused mappings without set specification to sometimes mess up queries.
  • FIX: "multiple controls with the same id" exception when saving an image on a products multilingual tabs.
  • FIX: The variant description editor did not display the non-selected tabs. (Sitecore 7)
  • FIX: The sorting in the parameter list when using Ogone payment provider which had a local comparison set. 
  • FIX: Marketing now reloads properly when store level is present as well.
  • FIX: Bug when clicking on users or userGroups nodes in security foundation which cause a NullReferenceException. (Sitecore)
  • FIX: When creating a product there would no indication of the category the product is created in, in the save product pipeline.
  • FIX: MultiPicker would sometimes display to many items selected.

Change log for 6.7.6.15251

  • FIX: Database script 137 was missing primary keys causing errors on SQL Azure.
  • FIX: Creating new product did not call the SaveCategory pipeline. Causing the category to not be updated. (Sitecore)

Change log for 6.7.6.15244

  • FIX: The Ucommerce tree would not load in Umbraco 6.2.5

Change log for 6.7.6.15243

  • NEW: Simple inventory is now configured as an app. It is disabled by default.
  • NEW: Security foundation now support configuration permissions for userGroups.
  • NEW: Umbraco start nodes on content and media library for a user is now reflected in Ucommerce. 
  • FIX: Content picker was using the wrong data type for content in Sitecore content editor causing "item not found messages". (Sitecore)
  • FIX: Dynamic order line target with a order target in marketing foundation didn't trigger award.
  • FIX: Umbraco tree nodes disappeared when updating a purchase order status.
  • FIX: Content picker was broken overall for all editors.
  • FIX: Race condition that could throw an exception fixed in ItemResolver. (Sitecore)
  • FIX: InventoryOnHand field via inherited product definition would not be picked up in check for required field in inventory pipeline tasks.
  • FIX: Combination of dynamic order line target and vourcher code didn't trigger award.
  • FIX: The PayPal express service exception when completing the order if the PaymentAction is set to "Sale" and Ucommerce is set to acquire the payment.
  • FIX: The PayPal express service exception when the amount on the payment is less then 1. (System.Exception: Wrong amount)
  • FIX: Order search result could include orders that the user didn't have permission to view, if the user had permission to view a shop, but not to view the orders.
  • FIX: The amount of discounts applied could change when the basket pipeline is used, even though the content of the basket wasn't changed if the "buy for more than" act is used.*
  • *Note that we now reset the discount collections on the purchase order and reset all discount fields in the beginning of the basket pipeline. 
  • FIX: Using fluent nhibernate mappings with SQLite would fail because of mismatched casing of table names. This would cause a "table exists" error.
  • FIX: The Ucommerce tree wouldn't appear in internet explorer 9 and 10. (Sitecore)
  • FIX: The Ucommerce user service now handle cryptographic exceptions (Umbraco 7)

Change log for 6.7.5.15219

  • Fix: Bug where creating product relations could cause a NullReferenceException.

Change log for 6.7.4.15201

  • Fix: Having a language setting on a umbraco content node which is anything but "inherit" would cause exceptions (Invalid URI: The hostname could not be parsed)(Umbraco)

Change log for 6.7.3.15189

  • NEW: Added a TimingInterceptor component. Adding this as an interceptor will log the time spend in method calls on that component. (http://docs.ucommerce.net/ucommerce/v6.7/extending-ucommerce/register-a-component.html)
  • NEW: Enabling debug for a pipeline will log the performance measurements for the tasks in the pipeline. (http://docs.ucommerce.net/ucommerce/v6.7/extending-ucommerce/create-pipeline-task.html)
  • NEW: Ability to have complete configuration file written to an XML-file in App_Data/TEMP/ under the website. 
  • NOTE: For all new features above - take a look at '/UCommerce/Apps/Debug' for a few examples of how to enable the features.
  • NEW: New role for editing products.
  • NEW: ILanguageCodeMapper service used by GlobalCollectService. Can be used to convert language codes to the supported ones. Configuration in Payments.config.
  • NEW: Payment method for SagePay supporting the new 3.0 protocol.
  • NEW: Configuration errors for included folders with configuration files will now tell which file has invalid configuration.
  • NEW: You can now input negative values in all awards in marketing foundation thus increasing the amount the user needs to pay.
  • FIX: Selecting images from the image cropper in Umbraco will now show the proper selected image. (Umbraco)
  • FIX: Installing on Sitecore will now try to move the Sitecore/Settings node out of web.config when installing to avoid default 250 kb config file size. (Sitecore)
  • FIX: Product target in combination with Quantity target on order and orderline would not evalute properly and assign too much discount.
  • FIX: LanguageService filters duplicate culture codes provided from Sitecore. (Sitecore).
  • FIX: Tree's where products are shown under a category e.g the product picker for product target in marketing foundation now observes sort order on products.
  • FIX: Moving a category to another catalog would not update the catalog reference for child categories.
  • FIX: Moving a category would not properly reload the relevant parts of the shell tree (Sitecore).
  • FIX: New Category would not be added to parent Categories list until reset.
  • BRK: If license key is present, it will be validatet also for local requests.

Change log for 6.7.2.15167

  • NEW: Added Index to Ucommerce_CategoryProperty to ensure faster loading of properties. 
  • FIX: Upgrade problem from Ucommerce version 6.0.3.

Change log for 6.7.1.15160

  • FIX: Saving a multilingual product descriptions would not trigger the "SaveProduct" pipeline.
  • FIX: v6.6.6 reintroduced issue around duplicate order numbers under high load.

Change log for 6.7.0.15155

  • NEW: Support for Sitecore Commerce Connect http://docs.ucommerce.net/ucommerce/v6.7/sitecore/Commerce-Connect/index.html.
  • NEW: Partial components for easy registration and patching of existing components http://docs.ucommerce.net/ucommerce/v6.7/extending-ucommerce/register-a-component.html.
  • NEW: Pipeline tasks can be added to existing pipelines without changing the original files via partial components http://docs.ucommerce.net/ucommerce/v6.7/extending-ucommerce/create-pipeline-task.html under the section "Configure the Pipeline".
  • NEW: Overridden components are now placed in / Ucommerce/Apps, e.g. / Ucommerce/Apps/MyApp, where they are automatically picked up. This superseedes Custom.config. http://docs.ucommerce.net/ucommerce/v6.7/manage-ucommerce/upgrading/migration-from-custom.config-to-apps-folder.html.
  • NEW: TransactionLibrary.AddToBasket() now executes "AddToBasket" pipeline.
  • NEW: TransactionLibrary.GetBasket now executes "GetBasket" pipeline.
  • NEW: OrderContext.NewBasket now executes "CreateBasket" pipeline.
  • NEW: CreateCustomerTask in "Checkout" pipeline now executes "CreateCustomer" pipeline.
  • NEW: CreateMemberForCustomerTask in "Checkout" pipeline now executes "CreateMember" pipeline.
  • FIX: The delete options in the right click menus on ProductCatalogGroups and ProductCatalogs now run pipelines. (Sitecore)
  • FIX: Changed GlobalCollectPAymentProducts to be an optional value as not allways required by the gateway. 
  • FIX: When running jobs on 'Managed Thread Pools' (Publish and indexing in Sitecore) we would some times get stale data. (Sitecore)
  • FIX: Variants property on Documents. Product is now part of the default facet indexes for RavenDB.
  • FIX: Products deleted in Ucommerce now gets removed from Sitecore dataprovider. (Sitecore)
  • FIX: Categories deleted in Ucommerce now gets removed from Sitecore dataprovider. (Sitecore)
  • FIX: ProductCatalogs deleted in Ucommerce now gets removed from Sitecore dataprovider. (Sitecore)
  • FIX: ProductCatalogGroups deleted in Ucommerce now gets removed from Sitecore dataprovider. (Sitecore)
  • FIX: Saving products in Sitecore Content Editor and In-Page Editor would some times cause errors to appear in the log.
  • FIX: Using the AsyncPipelineTask would cause data reader errors when indexing products.
  • BRK: AsyncPipelineTask now takes the name of the inner task, excluding "${" and "}".
  • BRK: Pipelines prefixed with their area of concern, e.g. "Checkout" pipeline is now "Baskets.Checkout". Component ids remain the same.
  • BRK: Admin pipelines related to saving and deleting entities in back-end moved to / Ucommerce/Pipelines/Admin folder to clear things up. Component ids remain the same.

Change log for 6.6.6.15141

  • NEW: Datatype for selecting multiple pieces of content for a single field.
  • NEW: Datatype for selecting multiple images for a single field. 
  • NEW: Added an implementation of IRavenDbStoreProvider for an IIS instance.
  • NOTE: Embedded version will still be default choise. Switch by setting the IIS version in custom.config 
  • NEW: Stored procedure to get order number for order now only returns the next number and not the full order number.
  • NEW: NumberSeriesService is now more flexible and easier to extend and format the order number.
  • BRK: Removed the rebuildSchema method from the ISessionProvider interface as the method shouldn't be used.
  • BRK: void IEnsureRolesAreUpToDateService.EnsureRolesAreUpToDate changed to return a bool which indicates whether new roles were added.
  • BRK: EnsureRolesAreUpToDateService.EnsureRolesAreUpToDate reflects changed interface.
  • FIX: User was not properly given permission to see stores they create.
  • FIX: ScratchIndexer would some time remove all documents as modified time was not taken from RavenDB. 
  • FIX: Path for saving data in RavenDB embedded version is now configurable.
  • FIX: Items that a given user should not be able to see will now be filtered away from the tree in the Ucommerce application instead of dimmed. (Sitecore).
  • FIX: Removed the ability to click create on the settings node in the navigation tree if you have no permission to access it (Umbraco7).
  • FIX: You can no longer create campaigns under marketing if you have no access to Marketing under any store.
  • FIX: Increased performance for selecting and browsing images in Image picker (Umbraco7).
  • FIX: It is now possible to set Guids on all entities with a property named Guid and type Guid, if needed.
  • FIX: The height of tabs in Ucommerce backoffice when using the launch pad in sitecore 8.
  • FIX: Image/Content picker properly observe sort order of images and content (Umbraco).
  • FIX: Introduced protected method EmailService.SendEmailInternal() to make it easier to send using something other than SmtpServer like SendGrid.
  • FIX: ServiceStack Windsor adapter TryResolve would always return default(T) and not try and resolve the type.
  • FIX: Dynamic order property target would always trigger on orders when setup to target order lines.
  • FIX: Indexing product data to Raven would sometimes index stale data.

Change log for 6.6.5.15100

  • FIX: Products for category field editor fixed in version 7.1.140130 
  • FIX: DibsPageBuilder now lets DomainService determine the domain.

Change log for 6.6.4.15089

  • NEW: Search option when searching orders which allows from/to date search.
  • NEW: Ucommerce launch pad icon on Sitecore 8
  • FIX: The order overview now shows dynamic orderline properties and orderline discounts.
  • FIX: Order analytics to include the selected end date. 

Change log for 6.6.3.15079

  • NEW: Sitecore8 look and feel for shell application. (Sitecore)
  • NEW: Basket pipeline task removes all orderlines marked as _generated as second task in pipeline to prevent wrong calculation of discounts. 
  • NEW: As default, the data provider now supports the "Is displayed in search results" field for our templates. If you enable this for the thumbnail image on "ProductBaseTemplate", you will see the thumbnail in search results. (Sitecore)
  • NEW: Message shows if no reviews has been placed in reviews tab on store and product editor.
  • FIX: Review tab would some times mess with the entire DOM causing tabs on the product editor to disappear. 
  • FIX: Changed the datatype of AmountOffTotal on the table Ucommerce_Discount from decimal(18,2) to MONEY, the migration will removed all index on the column.
  • FIX: Using inherited definitions would sometimes cause Indexing and Publishing to fail (Sitecore)
  • FIX: Free gift orderlines would sometimes recieve additional discounts even though no further discount should be added.
  • FIX: Error when changing parent category before the category is saved.
  • FIX: Webservice requests to / ucommerceapi could not identify current logged in user, when also logged in as a member causing all authenticated requests to fail e.g. categories picker on categories tab on product editor. (Umbraco)
  • FIX: NHibernate logging enabled using Sitecore's log4net implementation. (Sitecore)

Change log for 6.6.2.15058

  • FIX: Using DynamicProperty() on a multilingual field with no saved value would throw exception.
  • FIX: Saving a rich text value with html tags would throw an exception (Sitecore 8)

Change log for 6.6.1.15055

  • FIX: Setting changeBasketBillingCurrency to true in CatalogLibrary.ChangePriceGroup will now recalculate vat and price for the individual lines.
  • FIX: Permissions for non-admin users was broken in version 6.5.3.

Change log for 6.6.0.15051

  • BRK: AbstractPageBuilder method "BuildHead" has changed signature.
  • BRK: Payment providers are configured in the back-end UI rather than configuration files. Migration instructions at http://docs.ucommerce.net/ucommerce/v6.6/manage-ucommerce/upgrading/move-payment-method-configuration-from-xml-to-ui.html
  • NEW: Sitecore 8 support.
  • NEW: All payment providers support multiple instances with separate configurations.
  • NEW: Updated documentation for all payment providers at http://docs.ucommerce.net/ucommerce/v6.6/payment-providers/index.html
  • NEW: ICacheProvider configured in IoC.
  • NEW: New data type: Enum Multi Select. Define an enum, where multiple values can be selected. The value is a pipe separated list of values.
  • NEW: TransactionLibrary.ClearBasket() to clear the basket for current customer.
  • FIX: Internet Explorer no longer caches result from web services. 
  • FIX: Installing Ucommerce on Sitecore 7.5 and 8 would cause web.config to exceed default max size of 250Kb.
  • FIX: Adyen payments where authorization is "PENDING" are now handled correctly.
  • FIX: Migration script 79 would not work in upgrade scenarios on azure due to not allowing to insert data into a table without a primary key.
  • FIX: Validation bug in inherited definitions would give wrong answer in some situations.
  • FIX: Better visualization of definitions overview. 
  • FIX: Inherited media fields would not be shown under Media tab for the product editor.
  • FIX: PayPal Express service now correctly handles amounts above 1000.
  • FIX: Authorize.Net service upgraded to latest version. This fixes a problem where "acquire" would result in "Credit Card number is required" error.
  • FIX: Content editor shows related products as the product itself rather than the related products (Sitecore).
  • FIX: CatalogLibrary.GetProducts() would only include the current category in the list of categories for a given product.
  • FIX: Implementation of ICacheProvider would throw an exception, when ClearCache() was called.
  • FIX: System.InvalidOperationException: The JsonReader should not be on a token of type StartObject. thrown from Raven due to invalid documents generated during indexing when culture codes were missing on descriptions.
  • FIX: Indexing large sets of products could cause timeouts when reindexing everything from scratch. Products are now indexed in batches of 200 by default (configurable via scratchIndexer.BatchSize property in Search.config).
  • FIX: Infinite loops could in a few instances happen in MarketingFoundation, when calculating discounts.
  • FIX: Header on each page would have hover effect and placeholder "Enter value..." even if the input field was read only.
  • FIX: Styling on tree in Ucommerce shell application in IE fixed. (Sitecore).
  • FIX: Styling on tree in categories picker for the product editor is fixed in IE. (Umbraco6 and Umbraco7).
  • FIX: Better logging, when images cannot be found from Umbraco7

Change log for 6.5.3.14350

  • FIX: Sitecore installer would fail during upgrade from previous versions to 6.5.3.14346 due to race condition when deploying updated dependencies (Sitecore).

Change log for 6.5.3.14346

  • NEW: Support for inherited definitions on products, categories and campaign items. (Thanks to Power house LAIT and MVP's: Nickolaj Lundgreen and Nick Frederiksen for contributing with this feature.)
  • NEW: UI to view all definitions in relations to each other by clicking the 'product definitions node' under settings/definitions
  • NEW: Global Collect OrderId is now saved as TransactionId on the payment.
  • NEW: Updated to NHibernate version 4.0.2.4000
  • NEW: Updated to Fluent NHivernate version 2.0.1.0
  • NEW: Updated to NHibernate.SysCache versuib 4.0.0.4000
  • FIX: Categories picker on product editor now only displays list of already selected categories, the user has access to.
  • FIX: Comparing references on objects would sometimes give wrong result due to NHibernate proxy objects. Equals overridden and comparing on type + id on all entities. 
  • FIX: GetProperties on category did not filter properties associated with another definition away casuing YSOD on the category editor if multiple properties with the same name exists.
  • FIX: Saving a product or a catalog would in some setups create a false detection of a full catalog scan. This would cause the Save to use a huge amount of system resources. (Sitecore)
  • FIX: Improved performance when searching for orders in the backend.
  • FIX: Added correct sorting of ProductCatalogGroups in Sitecore ContentEditor. (Sitecore)
  • FIX: When two out of three orderlines are satisfied and "any target applies" is configured, the discount would only be applied to the first orderline.
  • FIX: The "back" button in the browsers is now enabled for the Ucommerce backend. (Sitecore)
  • FIX: When creating a new catalog and a new category, the category would not be presented in pickers until a reset. (Sitecore)
  • FIX: Sorting on price in the product search list is now correct.
  • FIX: Sorting on the order total in the order search list is now correct.
  • FIX: In case of a PENDING authResult from Adyen, the payment is set to declined. (Adyen)

Change log for 6.5.2.14331

  • FIX: Improved performance when searching for products in the backend.
  • FIX: Search results now display the parent product's name as part of the variant's name.
  • FIX: Removed need for double postbacks on product editor.
  • FIX: Tree no longer wraps when width less than actual size of tree. (Sitecore)
  • FIX: Browser windows smaller than 940px causes the entire editor to go blank. (Sitecore)
  • FIX: Improved performance when saving categories and products.
  • BRK: Removed ProductSearchQuery class.

Change log for 6.5.1.14323

  • NEW: Added ucommerce specific font to support icon as font instead of blue icon. (Umbraco7)
  • NOTE: New font requires clean installation or changing icon on the ' ucommerce' application under '/config/applications.config' to 'icon- ucommerce' instead of old 'ucommerce_tray.png'
  • FIX: Email maps didn't use sets and could cause duplicate instances in the collections as a result.
  • FIX: Redirecting frame url from dialogs after right click actions in the tree, would cause entire page to redirect to Ucommerce editor. (Umbraco7)
  • FIX: Editing relations would only show total list of products and not based on the selected relation type.
  • FIX: Editing the list of related product did not remove the removed items from the list properly.

Change log for 6.5.0.14311

  • FIX: Eventlistener would delete objects covered by cascade on parent object causing a "StaleStateException".
  • FIX: Deleting a product would not reload the frame properly.
  • FIX: Performance improvements when publishing a single item (Sitecore).

Change log for 6.5.0.14310

  • NEW: Catalog item picker based on AngularJS for better performance with large catalogs.
  • NEW: Add products to category from category editor.
  • NEW: Use new catalog picker when setting multi-product targets in Marketing Foundation.
  • NEW: Use new catalog picker when selecting categories for a product.
  • NEW: Use new catalog picker when selecting related products.
  • FIX: Duplicate order numbers would in rare instances be generated under high concurrent transactional volume.
  • FIX: Improved performance when listing orders per order status in back-end.
  • FIX: Improved performance when loading orders/baskets (SingleOrderQuery + SingleBasketQuery).
  • BRK: PurchaseOrderQuery renamed to SingleBasketQuery.

Change log for 6.4.5.14303

  • NEW: ProductTarget rewritten to hold a list of products. Any product from the list will satisfy the target.
  • NEW: General performance enhancements handling collections.
  • NEW: Phone Home for licensing check once a week removed.
  • BRK: ProductTarget Sku and VariantSku columns have been replaces with a Skus column.

Change log for 6.4.4.14301

  • FIX: Un-sealed a number of NHibernate maps to allow customization.
  • FIX: Orders overview Page will no longer throw exception when asking for validation state (Sitecore, Umbraco).

Change log for 6.4.3.14297

  • FIX: When AnyTargetAppliesAwards flag in MarketingFoundation is set, all order lines will always get awards, if any target is satisfied.
  • FIX: AllCategoriesQuery, AllProductsQuery would not always fully hydrate the category and product aggregates (inner vs outer joins).

Change log for 6.4.2.14296

  • FIX: Global Collect, error would potentially occur with HTML encoded values at the end of strings truncated as part of keeping values inside required lengths.

Change log 6.4.1.14295

  • FIX: New input in header for name are no longer thrown away if there's any validation errors.
  • FIX: Marketing service will set internal use of order property to empty string to avoid SQL exception when removing an order property.
  • FIX: Setting an order property or order line property to null and assigning to a new value will no longer cause SQL exception.
  • FIX: Global collect service now truncates address information properly according to limitations to Sitecore.
  • FIX: Marketing service will no longer trigger discounts when AnyTargetAppliesAwards is set to true and pure order line targets are configured.
  • FIX: If a category item was accessed, before the content tree was loaded, the item would be "remembered" as not existing, thus, it would disappear from the list of categories in the Content Editor.

Change log for 6.4.0.14294

  • NEW: Orderline properties prefixed with "_" are now hidden in the back office for order overview.
  • NEW: Sitecore data provider, products are now displayed in a bucket.
  • BRK: Sitecore, Content and Image pickers use master database as default. Change this to original behavior in Shell.config using element <nameOfContentDatabase>web</nameOfContentDatabase>.
  • BRK: Sitecore data provider, products are no longer listed as children on categories in Sitecore data provider. Indexes should point to sitecore/ Ucommerce/Products.
  • BRK: Sitecore data provider, products in categories are displayed as an multi list with search. For search to work please remember to reindex master.
  • FIX: Sitecore data provider, 20x performance improvement when publishing and indexing.
  • FIX: Sitecore data provider, reduced warm-up time upon initial request after app pool recycle.
  • FIX: Sitecore data provider, child items would disappear in rare instances in multi threaded scenarios.
  • FIX: Global Collect, if a payment was already cancelled at Global Collect, cancelling it would result in a "Requires Attention" state.
  • FIX: Global Collect, HTML encodes chars invalid in XML sent to the gateway.
  • FIX: Global Collect, when a payment authorization is declined provider will redirect to cancel page and add reason to audit trail.
  • FIX: Global Collect, decline URLs would not recognize optional URL placeholders {protocol}://{domain}:{port}/{language} when building absolute URL.
  • FIX: Deleting definitions and their associated fields through webservices now runs pipelines properly.
  • FIX: More consistent way of telling if you're signed in as a member.
  • FIX: Marketing Foundation advertising would populate targeting context with all products in category, even when there's a single product in context.
  • FIX: Users could access product information from order overview even if they didn't have permission to do so.
  • FIX: New categories would not show up in back-end tree as category structure was cached too aggressively (Umbraco, Sitecore).

Change log for 6.3.2.14281

  • NEW: Optionally configure ComponentsConfig in runtime configuration with the attribute componentsConfig and path e.g: componentsConfig="umbraco\ucommerce\configuration\components.config".

Change log for 6.3.1.14280

  • FIX: Shipment.DeliveryNote could not contain more than 2000 chars even though it's database field is ntext.

Change log for 6.3.0.14269

  • NEW: When publishing dataprovider creates separate product section for all products to keep the number of items to publish as low as possible.
  • NEW: Add billing and shipping addresses for global collect payments.
  • NEW: Global Collect payment provider will automatically decline payment if amount is above or below allowed threshold.
  • FIX: CatalogLibrary.CalculatePrice() would take discounts across all stores into account, even campaigns assigned to other stores than the current store.
  • FIX: Publishing processing speed increased 30x.
  • FIX: Empty CampaignItems would
  • FIX: If localized display name is not available (null or empty) use non-localized product name for order line.
  • FIX: MarketingLibrary.AddVoucher() would report that voucher works even when CampaignItem is disabled.
  • FIX: CampaignItems with no targets configured could block other discounts if "Allow other discounts" is disabled.

Change log for 6.2.3.14263

  • NEW: FreeGiftAward marks order lines it generates with a property of "_generated" set to "true".
  • NEW: Global Collect, ability to override billing country on payment via property "Country" to avoid requirement to create every country with locale.
  • FIX: CategoryTarget would not evaluate all products in a category (issue introduced in 6.2.2.14253).
  • FIX: Added error message to Order Audit trail, when initial payment request is declined by Global Collect.
  • FIX: Concurrency problems in the DataProvider, that would sometimes cause indexing to dead lock. (Sitecore)
  • FIX: ProductIndexer now filters away product properties associated with other definitions than the current one.
  • FIX: Country, if the culture code cannot be converted to a region code (when .NET doesn't support the region) the original value will be passed back rather than causing an ArgumentException.
  • FIX: CatalogLibrary.CalculatePrice() would slow down when customer has items in basket.
  • FIX: Page builders for redirecting customers to hosted payment pages will not force HTTPS, but instead use the same protocol as the request is issued under.

Change log for 6.2.2.14253

  • FIX: If Global Collect rejected the payment authorization attempt, the payment status would remain as "Pending Authorization"
  • FIX: CategoryTarget now targets the correct category in cases where the name of categories are not unique.
  • NEW: IAbsoluteUrlService added for converting a relative url to an absolute one.
  • NEW: Performance improvements for publishing. (Sitecore)
  • NEW: Performance improvements using CategoryTargets.

Change log for 6.2.1.14241

  • FIX: TabViewBuilder uses a Guid for ClientID to avoid duplicate control IDs if the same tab name is used twice.
  • FIX: Deleting a currency and then visiting a price group with the same currency assigned would cause a YSOD.
  • FIX: DefaultTarget- and AwardResolvers load all targets and awards configured in Marketing Foundation to avoid multiple queries to the database.
  • FIX: Removed hardcoded dependency from PriceCalculation to TransactionLibrary. Uses OrderContext instead to enable more testing scenarios.

Change log for 6.2.0.14239

  • NEW: Removed need to synchronize IDTable between environments (Sitecore).
  • NEW: Guids to uniquely identify ProductCatalogGroup, ProductCatalog, Category, Product.
  • FIX: Decreased start-up time for data provider (Sitecore).
  • FIX: When enforceCategoryNameUniqueness is set to false in config multiple deleted categories with the same name would cause an error when creating a new category with the same name.
  • FIX: Languages in Ucommerce back-end matches Sitecore sorting.
  • FIX: Display name of languages in back-end use display name from CultureInfo if available (Sitecore).
  • FIX: Pass calcfee "1" to DIBS instead of value "foo" as the value is present in the return URL from DIBS when the customer returns to the store.
  • FIX: Increased retry window for ServiceStack initialization to 15 secs to avoid race conditions errors during installation with overlapping app pool recycle enabled in IIS (default).
  • FIX: Wrapping of tabs in back-end break layout with multiple rows.

Change log for 6.1.2.14223

  • FIX: DatePicker would change from native format when selecting a new value.
  • FIX: Date pickers would cause YSOD with empty values when saving.
  • FIX: Component config error would take up to a minute to display the error during initialization. Now max 10 secs.
  • FIX: Global Collect rounding error for payment amount on third and fourth decimal.

Change log for 6.1.1.14217

  • BRK: Renamed ISitecoreContext.Database property to ISitecoreContext.MasterDatabase for more expressiveness of API. (Sitecore)
  • NEW: Moved all changes to Sitecore element in web.config to Include folder under App_Config. (Sitecore)
  • NEW: Added new control factory and adapter for new datatype that allows to pick both date and time in all cultures. Converted into universal time.
  • NEW: It is now configurable which Sitecore database the image and content pickers pick from. (Sitecore)
  • NEW: Displays the dates and numbers in the users Regional Iso Code preference. (Sitecore)
  • NEW: Sitecores field "Display Name" can now be set from the Content Edittor. (Sitecore)
  • FIX: Scanning for components.config now ignores: 'obj', 'bin' and 'App_Data' under root since VS publish/ Nuget backup would some times add a wrong version under one of those paths.
  • FIX: If tree exceeded available space in vertical direction, no scrollbar would appear. (Sitecore)
  • FIX: Dynamic Date fields would not display correctly in the Content Editor. (Sitecore)
  • FIX: AssignOrderNumberTask would indirectly use the context for finding the ProductCatalogGroup. This would throw an exception in some configurations. (Sitecore)
  • FIX: Added validation in UI for Sku and VariantSku to be max 30 characters long as observed on the database length constraint.
  • FIX: Added cleanup + constraint script for unique culturecode and category on category descriptions.
  • FIX: Payment property could not exceed 4k chars.
  • FIX: Order and order line property could not exceed 4k chars.
  • FIX: Better exception description, when trying to authorize a recurring payment, when the original authorization failed. (Adyen Payment Service)
  • FIX: If a facets query did not use .WithFacets() as the last part of the query, the facets would be ignored.

Change log for 6.1.0.14195

  • BRK: InventoryTask.GetInventortOnHandFieldName method renamed to InventoryTask.GetInventoryOnHandFieldName.
  • BRK: DynamicProperty() extension will now throw an exception if the field accessed isn't defined on the definition for the dynamic entity.
        NB! This change requires update to latest demo store for Umbraco.
  • NEW: Global Collect payment method service supports unique configs per configured instance via payment method definitions.
  • NEW: Convention-based definition support for payment methods. Create a payment method definition with the same name as the service configured for your payment method to enable.
  • NEW: Support for built-in definitions and fields, i.e. non-deleted.
  • NEW: Definition fields support default values.
  • NEW: Property editor that allows to configure and pick content from Ucommerce on content pages in Umbraco. (Umbraco7)
  • NEW: Edit order number on orders in editable state with no prior order number assigned.
  • NEW: DynamicProperty<T>() to support direct conversion to specific type when accessing fields on a dynamic entity.
  • NEW: ShippingMethodTarget allows to target a specific shipping method in marketing foundation.
  • FIX: Dibs page builder now have a virtual method "AddParameters" you can override to add aditional parameters sent to Dibs.
  • FIX: Added descriptions for the application icon in Sitecore for all supported languages (en,da,de, sv).
  • FIX: Added missing regex validator that allows only numbers and letters for name field, for all definition fields.
  • FIX: Available order statuses when changing order status did not observe sort order from the database.
  • FIX: Installing the Ucommerce package now keeps the connections string setting.
  • FIX: We will no longer show a tiny little empty menu when a node in the tree has no options. (Sitecore)

Change log for 6.0.5.14183

  • BRK: Category document, moved ImageUrl property to be a property in the property called "ImageMediaId".
  • FIX: ProductReview and ProductReviewComment would throw NullReferenceException when calling CreatedBy if no customer was linked to the object.
  • FIX: Basket pipeline would fail if no order lines exists on order.
  • FIX: Promocodes for unit level discounts will be included in PriceCalculation
  • FIX: Error in URL for the Ogone payment provider.
  • FIX: The dataprovider would fail to map an enum value if a datatype did not have any enums. (Sitecore)

Change log for 6.0.4.14174

  • NEW: Category now have image url when indexing to raven for primary image.
  • FIX: Product price calculations would reflect promocode unit level discounts in product listings.
  • FIX: Pipeline task would load every product from the database to calculate tax. Now properly only fetches needed ones.
  • FIX: Having null in next order status would return all statuses instead of those only available allways.
  • FIX: Rounding error in VAT calculation would sometimes give a "Purchase order VAT cannot be accurately calculated ..." exception.
  • FIX: Header for each editor page did not allow special characters e.g. having " in the name would cut the rest of the name away.
  • FIX: Content and Image picker was checking for datatype name instead of definition name.

Change log for 6.0.3.14141

  • NEW: Support for setting PaymentMethod, PaymentBrand and other parameters for the Ogone payment provider.
  • NEW: A product can now be selected as a free gift award in marketing foundation.
  • FIX: Facets would not display if the display name of the field did not match the name of the field.
  • FIX: DataProvider improvements in the handling of deleted Ucommerce entities. (Sitecore)
  • FIX: Creating first children for DataTypeEnums and ProductDefinitions would cause errors (Umbraco7)
  • FIX: Secure Trading would some times not find the transaction queried for timing reasons. Added configurable retry strategy.

Change log for 6.0.2.14122

  • FIX: Now correctly respects the disabling of Sitecore Security.
  • FIX: Removed potential "Key is not found" exception in the data provider.
  • FIX: Facets were broken.

Change log for 6.0.1.14120

  • NEW: Secure Trading Payment provider integrated into the core.
  • NEW: When creating a new product, the Sku is used as name, if the Name is not entered. (Sitecore)
  • FIX: Looking for the paymentmethod in the paymentprocessor using name would not find the appropiate one if the name included spaces.
  • FIX: Removed unique name validator on product editor page as not needed.
  • FIX: OGone payment provider did not include all the fields needed for hashing.
  • FIX: Schibsted payment provider did not include order level discounts when creating the payment request.
  • FIX: When running a background thread, the user was not found. (Sitecore)
  • FIX: Installing packages through the admin/UpdateInstallationWizard. aspx page would throw exceptions, when the DataProvider was enabled. (Sitecore)
  • FIX: Creating a new product would not add the product to the category, causing a validation error. (Sitecore)
  • FIX: The indication of HasChildren for categories was wrong, if children were all deleted.
  • FIX: The size of the Ucommerce logo in the "User Defined" template folder was huge. (Sitecore)
  • FIX: Facets was indexed as lowercase.
  • FIX: Sorting of orders by "Submitted Date" was wrong.
  • FIX: Facet index name for product properties was the same as the display name.
  • FIX Targeted .NET Framework 4 for all core projects. Not Umbraco7 and Sitecore, which require .NET 4.5.

Change log for 6.0.0.14094

  • NEW: Umbraco 7 support.
  • NEW: Categories for product are now lazy loaded for faster load of product page. 
  • NEW: It is now possible to create multiple product relations at once.
  • NEW: Payments are now shown on an individual tab in order editor.
  • NEW: All editors show the name of the entity being edited like Umbraco 7 (Umbraco 6, Sitecore).
  • NEW: Permission editor uses the same icons as catalog picker.
  • BRK: MarketingLibrary.AddVoucherCode returns true if the code is valid.
  • FIX: Datepicker now shows when clicking the date field. 
  • FIX: Category and catalog nodes now load faster in all trees.
  • FIX: Deindexing a catalog from RavenDb would try to remove a catalog not associated with the session.
  • FIX: Numbers above two for manual promo codes would cause a validation error.
  • FIX: Newly added promocodes didn't immediately appear in editor once saved.

Change log for 5.3.1.14080

  • NEW: Added Take() to the extension methods for faceted queryables.
  • NEW: Access level for Raven studio can now be configured in IoC. Defaults to None.
  • FIX: Backend shell now uses the UI language (Sitecore).
  • FIX: Editing multilingual variant image properties now possible in the backend shell (Sitecore).
  • FIX: Category targets now filters deleted categories away.
  • FIX: Having an Umbraco radio list property on a category would throw an exception during data binding (Umbraco).
  • FIX: XPathDropDownList datatype would cause an exception when saving (Umbraco).
  • FIX: Retry strategy added for initializing ServiceStack as edge case during install would sometimes cause an issue (Sitecore).
  • FIX: ClientDependency versioning ensures that JavaScript is reloaded when new install is made (Sitecore).
  • FIX: Large category trees would load slowly (3k+ categories spread on two levels).
  • FIX: Indexing multilingual properties for categories and products should not set null or whitespace key for culture.
  • FIX: ScratchIndexer should not index deleted catalogs.
  • FIX: Optimized load time of tabs in backend.
  • FIX: Calling WithFacets() extension method with null would cause a NullReferenceException.

Change log for 5.3.0.14057

  • NEW: Property values can be converted when indexed to search engine. Implement IPropertyValueConverter and register in Custom.config to override property values or change their types.
  • NEW: Index fields containing multiple values so each value can be searched or faceted indiviually.
  • NEW: Index fields containing empty strings will convert them to null.
  • NEW: PurchaseOrder can now be copied to new instance with the same amount of orderlines and order properties on both orderline and order level.
  • NEW: CatalogLibrary.CalculatePrice now also considers order level properties.
  • FIX: Removing a pricegroup would cause the security editor to fail.
  • FIX: Amazon now uses proper implementation of HttpExtractor instead of just the first random implementation.
  • FIX: Adyen no longer throws exception when the payment gateway sends notifications with empty references.

Change log for 5.3.0.14057 (Sitecore)

  • FIX: In some cases we tried to clear the cache of data providers that wasn't initialized at all.
  • FIX: Multilingual variant image properties can now be saved through the Sitecore content editor.

Change log for 5.3.0.14057 (Umbraco)

  • FIX: Installing Ucommerce would fail to insert proper logging levels for Raven and NHibernate.

Change log for 5.2.3.14050

  • NEW: ServiceStack AppHost web service configuration is overridable in Custom.config.
  • NOTE: The moved ServiceStack related classes are closed for extensions and thus never referenced directly your code will keep functioning even though the changes are listed as breaking.
  • BRK: Moved class WindsorContainerAdapter to UCommerce.Web.Api.WindsorContainerAdapter, UCommerce.Web.Api.
  • BRK: Moved class ServiceStackAppHostInit to UCommerce.Web.Api.ServiceStackAppHostInit, UCommerce.Web.Api.
  • BRK: Moved class UCommerceAppHost to UCommerce.Web.Api.UCommerceAppHost, UCommerce.Web.Api.

Change log for 5.2.2.14044 (Umbraco)

  • NEW: Better performance when editing user permissions.
  • NEW: Better performance creating a new price group, when having multiple stores.
  • FIX: Endless loop removed when editing permissions for users with a language that had no culture code.
  • FIX: Viewing orders by order status would not yield results for Orders with no customer or billingaddress.
  • FIX: Sessionprovider is now usable without an IoC container in runtime environment.
  • FIX: Product ratings pipeline now only calculates average rating based on approved reviews.
  • FIX: Permissions now have a constraint to prevent a user having the same permission twice. 
  • FIX: ExternalId now have a constraint to prevent more users linked to the same CMS user.
  • FIX: Category Product relations now have a constraint to prevent multiple relations.
  • FIX: ProductDefinitionFieldDescription now have a constraint to prevent multiple description for the same culture and field.
  • FIX: ProductDescriptionProperty now have a constraint to prevent a product having the same multi lingual property multiple times.
  • FIX: ProductProperty now have a constraint to prevent a product having the same property multiple times.

Change log for 5.2.2.14044 (Sitecore)

  • NEW: Better performance when editing user permissions.
  • NEW: Better performance creating a new price group, when having multiple stores.
  • FIX: Some fields on product variants could not be saved through content editor.
  • FIX: PaymentProcessor failed to determine Sitecore context specific information during checkout pipeline.
  • FIX: Endless loop removed when editing permissions for users with a language that had no culture code.
  • FIX: Viewing orders by order status would not yield results for Orders with no customer or billingaddress.
  • FIX: Sessionprovider is now usable without an IoC container in runtime environment.
  • FIX: Product ratings pipeline now only calculates average rating based on approved reviews.
  • FIX: Allowed Price Groups on the Category template is now ordered by name.
  • FIX: Permissions now have a constraint to prevent a user having the same permission twice. 
  • FIX: ExternalId now have a constraint to prevent more users linked to the same CMS user.
  • FIX: Category Product relations now have a constraint to prevent multiple relations.
  • FIX: ProductDefinitionFieldDescription now have a constraint to prevent multiple description for the same culture and field.
  • FIX: ProductDescriptionProperty now have a constraint to prevent a product having the same multi lingual property multiple times.
  • FIX: ProductProperty now have a constraint to prevent a product having the same property multiple times.
  • FIX: Adding or removing a language in the Master database now correctly updates versions in the Content Editor, without the need to clear the cache.
  • FIX: Modifying a definition or definition field now correctly updates the data in the Content Editor, without the need to clear the cache.

Change log for 5.2.1.14035 (Umbraco)

  • NEW: Better exception descriptions when email content is not configured correctly
  • FIX: Bug preventing creation of products and categories, inadvertently introduced in 5.2.0.
  • FIX: Saving a product would remove it from categories the user did not have rights to see.
  • FIX: Editing a new order with no orderlines would potentially remove only shipment with no way of getting it back.
  • FIX: Added validation for input date fields in Analytics/Orders
  • FIX: Ucommerce shell. Related products link, now opens editor with the parent product.

Change log for 5.2.1.14035 (Sitecore)

  • NEW: Better exception descriptions when email content is not configured correctly
  • FIX: "Number" is now supported for variants and categories.
  • FIX: Removed size limitation on Sitecore field values saved in the Ucommerce database.
  • FIX: Editing a new order with no orderlines would potentially remove only shipment with no way of getting it back.
  • FIX: Saving a product would remove it from categories the user did not have rights to see.
  • FIX: Ucommerce shell. Added validation for input date fields in Analytics/Orders
  • FIX: Ucommerce shell. Related products link, now opens editor with the parent product.

Change log for 5.2.0.14030 (Umbraco)

  • NEW: The orders are no longer displayed as nodes in the tree in the Ucommerce shell by default.
  • NEW: Price group target in Marketing Foundation.
  • NEW: Better performance of Basket API, when retrieving properties on a basket.
  • FIX: Added a new BooleanConverter, to handle the situation where an empty string is returned for a boolean property.
  • FIX: Better check for web context when asking for current username.
  • FIX: Reload of umbraco tree nodes when moving a category.
  • FIX: Adding new order line now updates the view.
  • FIX: Display of Shipping Method and Media page for products would not frame the controls properly.
  • FIX: Generate voucher dialog did not always respect the back office language.
  • FIX: Adding a new order manually could add a deleted shipping method or language.

Change log for 5.2.0.14030 (Sitecore)

  • NEW: The orders are no longer displayed as nodes in the tree in the Ucommerce shell by default.
  • NEW: Price group target in Marketing Foundation.
  • NEW: Better performance of Basket API, when retrieving properties on a basket.
  • FIX: Added a new BooleanConverter, to handle the situation where an empty string is returned for a boolean property.
  • FIX: Categories list would sometimes give a wrong list of categories.
  • FIX: Better check for web context when asking for current username.
  • FIX: Sitecore editors did not refresh when dialogs are closed.
  • FIX: Adding new order line now updates the view.
  • FIX: Display of Shipping Method and Media page for products would not frame the controls properly.
  • FIX: Generate voucher dialog did not always respect the back office language.
  • FIX: Adding a new order manually could add a deleted shipping method or language.

Change log for 5.1.1.14007

  • NEW: Schibsted payment provider.
  • FIX: Tax rate was calculated without taking discounts into account.

Change log for 5.1.0.13354

  • NEW: Added ability to remove shipment on order.
  • NEW: Added ability to move Category to new parent.
  • NEW: Adyen payment provider with recurring support.
  • BRK: Removed paymentmethodservice from PaymentUrlInformation as reduntant.
  • BRK: CreatePayment now returns the actual payment rather than void.
  • FIX: Saving an order will only remove an empty shipment if another one exists.
  • FIX: Paymentmethod services can now be extracted in the paymentprocessor by name.
  • FIX: Edit promo code preview now works properly.
  • FIX: Minor styling issues with promo code generation dialog.
  • FIX: Basket cookie life extended by 30 days every time it is fetched rather than only when created.
  • FIX: Creating a new ENUM data type would create temporary problems until data is reloaded.

Change log for 5.0.0.13332: Ucommerce for Sitecore

  • NEW: Creating a new language in Sitecore triggers creating a new index in RavenDB.
  • NEW: Security settings from Securityfoundtaion are reflected in content editor for stores and catalogs.
  • NEW: Ability to extend the UcommerceApi web app host with your own services. Added markerinterface to implement and configure in custom.config.
  • BRK: Pulled away Servicestack services for frontend.
  • BRK: ISecurityService extended with 1 method that can provide access information for a given object for a given user.
  • FIX: Prerequisites for installing Ucommerce for sitecore. 
  • FIX: Missing icon in tray in desktopmode of Sitecore
  • FIX: Image size on images may exeed frame in imagepicker in shell.
  • FIX: Display names are getting prefilled for every entity when they are created.
  • FIX: ContentPicker now have a safe cast on contentId preventing it from throwing exceptions.
  • FIX: Some minor styling issues.
  • FIX: Entities now have the same default settings and supposed when creating them.
  • FIX: Now properly adding roles for user when creating a new store.
  • FIX: Validation error when saving ucommerce items in content editor due to broken link fixed.
  • FIX: Scrupped all JS files for Console.log
  • FIX: Content Editor much more responsive to changes in Ucommerce data.
  • FIX: Content Editor now reacts with a correct "item could have been deleted" error when it can't find the corresponding Ucommerce item.

Changelog for 4.0.6.13304

  • FIX: Category display name and description weren't indexed.
  • FIX: Custom category properties weren't stored.

Change log for 4.0.5.13302

  • FIX: Marketing Foundation would not include campaigns with on the same date as "StartsOn".
  • FIX: SoftDeletable repository would not return deleted entities when specifially asked for them.
  • FIX: Deleted fields with same name as non-deleted would sometimes cause editor to not get the proper value and cause NullReferenceException.
  • FIX: Products with duplicate properties would fail getting indexed.

Change log for 4.0.4.13301

  • FIX: Extensive RavenDB logging.
  • FIX: Category propertiy queries were not automatically batched by NHibernate.
  • FIX: Indexing upon deleting a category would cause an exception.
  • FIX: Changing category name would not be reflected in the tree.
  • FIX: Improved performance when indexing large catalogs with thousands of categories.

Change log for 4.0.3.13287

  • FIX: PayPal recurring payment provider would remove decimal of payment amount.
  • FIX: PayPal providers used "Sum" for item description rather than actual product name.
  • FIX: When creating or deleting a language in Umbraco subsequent calls the search engine would throw an error.

Change log for 4.0.2.13277

  • FIX: Orders without CompletedDate would not be displayed in the backend unless filter is set to "all".
  • FIX: Campaigns could not be assigned to all stores at once.
  • FIX: Improved security on promocode export.
  • FIX: Newly generated promocodes would not immediately should up in the campaign editor

Change log for 4.0.1.13255

  • FIX: Billing address line 2 not sent to SagePay.
  • FIX: Ucommerce 4 licensing.

Change log for 4.0.0.14239

  • NEW: Faceted search API via SearchLibrary.
  • NEW: Promote product fields to facets.
  • NEW: Multilingual faceted search indexes for facets and facet values (enums).
  • NEW: Multiple price group support in faceted search.
  • NEW: Consolidation of multiple facet values into one via enum mapping.
  • NEW: Pluggable facet factories for setting up custom facets.
  • NEW: CatalogLibrary.ChangePriceGroup() API for easier multi-currency and -price list scenarios.
  • NEW: Set up multiple allowed price groups on individual catalogs.
  • NEW: Full low-level search engine.
  • NEW: Scratch indexer for full indexing of all information.
  • NEW: Save/Delete pipelines for DataType, Language, Definition, DefinitionField, ProductCatalogGroup, ProductCatalog.
  • FIX: Product categorization editor did not properly sort catalogs and categories.
  • BRK: Removed IOrderContext.GetAvailableShippingMethods() method. Use TransactionLibrary.GetShippingMethods instead.
  • BRK: Removed OrderContext.GetAvailableShippingMethods() method. Use TransactionLibrary.GetShippingMethods instead.
  • BRK: Added ICatalogContext.CurrentPriceGroup.
  • BRK: Added IDefinition.Guid.

Change log for 3.6.4.13211

  • FIX: Reports did not take billing currency from order into account when summarizing results.

Change log for 3.6.3.13183

  • NEW: Performance improvements and enhancements for Marketing Foundation.
  • NEW: PayPal Express payment provider. Much simpler setup. No certs required. Auth, Acquire, Void, Refund supported as always. Thanks to Morten Bock for contributing it.
  • NEW: XSLT API CommerceLibrary:GetProductById(catalogName, productId).
  • NEW: XSLT API CommerceLibrary:GetCategoriesForProduct(catalogName, productId).
  • NEW: .NET API Product.AddCategory(category, sortOrder).
  • FIX: Money.ToString() will use the current culture rather than invariant culture by default.
  • FIX: CommerceLibrary:FormatCurrency() includes thousands separator.
  • FIX: Product.GetPrice(PriceGroup) would throw a NullReferenceException if no price is set up for requested price group.
  • FIX: Media fields were not properly aggregated under the Media tab for products.
  • FIX: When upgrading to 3.6 dynamically compiled assemblies for cshtml, aspx, ascx, etc. would throw an exception when using ObjectFactory directly in view code.

Change log for 3.6.1.13149

  • FIX: Discount specific order line award saved with "Any" as the value in the target an exception would occur.
  • FIX: Overflowing order level discounts applied to shipping and payment fees would be added incorrectly.
  • FIX: Category product listing would be duplicated for products with multiple price groups attached.
  • FIX: Multi node tree picker did not retain view state after save in variant editor.
  • FIX: Authorize.net payment provider would throw an exception when credit card is declined rather than displaying the configured decline page.

Change log for 3.6.0.13142

  • NEW: Fix Umbraco DLL hell by rolling out dependencies to /bin/ucommerce.
  • NEW: Dependencies like NHibernate, Castle Windsor are downloaded from NuGet on install.
  • NEW: ePay payment provider updated to use latest version of payment window.
  • FIX: WorldPay provider updated to use the latest form URLs.
  • FIX: Deleting an order line would cause an exception on subsequent save in order editor.
  • FIX: Locales for users like US English would cause an error when loading the commerce tree due to non-standard representation of culture locale, e.g. en_us instead of en-us.
  • FIX: Excessive logging from NHibernate causing log files to grow massive.
  • FIX: When license exceeds its activation limit an exception would be thrown trying to load version number from license.
  • FIX: Products without a price in configured price group on catalog would not show up in backend even when put in category in that catalog.
  • BRK: Installer types moved from UCommerce.Umbraco.dll to UCommerce.Umbraco.Installer.dll.

Change log for 3.5.0.13091

  • NEW: Place new orders in back-end.
  • NEW: Add new shipments to orders in back-end.
  • NEW: Drag and drop order lines between shipments in back-end.
  • NEW: Change order status on multiple orders in back-end.
  • NEW: Add discounts to existing orders in back-end.
  • NEW: Edit discounts on existing orders in back-end.
  • NEW: Edit billing information for existing orders in back-end.
  • NEW: Edit shipping information for shipments in back-end.
  • NEW: Edit unit prices on existing order lines in back-end.
  • NEW: Filter order lists in back-end by orders from "Today", "This Week", "This Month", "Last 3 Months", "This Year", "All".
  • NEW: QuickPay payment provider.
  • NEW: Nets Netaxept payment provider.
  • NEW: SaveCategory and DeleteCategory pipelines in back-end.
  • NEW: Ucommerce will use overriden connection string from "commerce" section to install in separate database for upgrade scenarios.
  • NEW: Paging in variant editor when there are more than 100 variants present on a single product.
  • FIX: Saving a product with a large amount (1k+) of variants 100x faster.
  • FIX: Security Foundation would fail when showing security roles for cultures not supported by CultureInfo.
  • FIX: Multiple properties with the same name will no longer cause an exception in the product editor.
  • FIX: Licensing should not be activated for JSON/XML service requests.
  • FIX: Validation would trigger for empty variant for required fields are with no user input.
  • FIX: Category.RemoveProduct and Product.RemoveCategory would only remove product from category if both are called.
  • FIX: Ogone payment provider used erronous production URL.
  • BRK: EditCategoryPresenter requires constructor (requires recompile against new binaries).
  • BRK: Extension method AddOrderGuidParamter renamed to AddOrderGuidParameter (requires recompile against new binaries).

Change log for 3.0.8.13078

  • NEW: Logging interceptors on API configurable via XML.
  • FIX: DynamicOrderPropertyTarget did not evaluate properly when combined with a ProductTarget.
  • FIX: Enum values duplicated in the product editor.
  • FIX: Product mapping did not cascade deletes, i.e. Product.RemoveVariant(variant) did not work.

Change log for 3.0.7.13056

  • FIX: Improved performance when displaying a product in back-end with many Umbraco data types enabled (30+).
  • FIX: Further improved performance in products lists in back-end.

Change log for 3.0.6.13052

  • FIX: Improved performance when viewing categories in back-end with many products.
  • FIX: Improved performance when viewing a single product with many properties.
  • FIX: Improved performance when saving a single product with many multi-lingual properties.

Change log for 3.0.5.13045

  • NEW: Made Current properties on CatalogContext virtual to allow for more easily overriding CatalogContext.
  • NEW: SessionProvider accepts IUserService dependency in ctor for easier testing support.
  • FIX: PriceCalculation did not provide product context to TaxService. Thanks Fabrice.
  • FIX: Removing product from category would produce a save cascade error in rare instances.

Change log for 3.0.4.13032

  • NEW: Umbraco 6 support.
  • FIX: Admin UIs didn't take up entire vertical space in IE8 compatibility mode.
  • FIX: Licensing service would fail to determine embedded license version in rare instances.

Change log for 3.0.3.13009

  • FIX: PayPal provider couldn't authorize new payments per updated payment status response "pending" instead of expected "completed" from PayPal.
  • FIX: When installed in non-standard CMS path, e.g. /MyCms instead of /Umbraco, dialogs would cause parent page to display a 404 when closed.

Change log for 3.0.2.12355

  • NEW: Checkout pipeline configured automatically for default payment methods Account and Invoice.
  • FIX: ePay payment provider didn't set language for remote form based on order culture.
  • FIX: Catalogs for deleted stores shouldn't count against license restrictions.
  • FIX: Order discount total used for display purposes only would include order levels discounts twice.

Change log for 3.0.1.12331

  • NEW: License keys for newer versions work with older version, e.g. a 3.0 key works for 2.0 and 1.0.
  • FIX: Review list remained unpopulated in product editor.
  • FIX: Order editor did not update with new values on saving.
  • FIX: DataTypeDefinitions with all UPPERCASE names would get a space between all letter, e.g U P P E R, which should remain UPPER.
  • FIX: Umbraco DataTypeControlFactory would fail for data type definitions, which don't produce a DataEditor or DataType object.

Change log for 3.0.0.12320

  • NEW: Better validation messages for variant editor.
  • NEW: Payment method service inheriting ExternalPaymentMethodService will force redirect instead of waiting to the thread to finish to avoid subsequent redirects breaking the flow.
  • FIX: Friendly URLs no longer include duplicated dashes.
  • FIX: XML renderes for percentage based awards would output localized decimals, e.g. "10,10" instead of "10.10".
  • FIX: Marketing Foundation, Order total target would not display updated amount before postback.
  • FIX: Marketing Foundation, Campaign items with only order-level targets would evaluate to true always (affects only 3.0).
  • FIX: Marketing Foundation, Better support for evaluating targets when editing baskets.
  • FIX: PurchaseOrder.DiscountTotal includes all types of discounts: Order-, Order line-, and shipping discounts.
  • FIX: Removing a product from a category would remove all products in that category.

Change log for 3.0.0.12306

  • NEW: Price group information is rendered with product catalog XML.
  • FIX: Removing product from a category would remove it from all categories.
  • FIX: Products not in a category would not show up in back end search.
  • FIX: Going to product definition from product search would cause a 404.
  • FIX: Viewing thousands of orders in the back end would take around 10 seconds to load up. Now down to less than 1.
  • FIX: Marketing Foundation, Dynamic order property target would take 2+ seconds to load with many dynamic order properties (150,000+).
  • FIX: Product search used German localization for header when using Danish language.
  • FIX: Discount renderers did not take catalog setting "show prices including VAT" into account.
  • FIX: Orders belonging to a deleted store would be filtered from the orders list.

Change log for 3.0.0.12303

  • NEW: DynamicProperty() support on Category and Campaign.
  • FIX: DynamicProperty() support for multilingual fields on Product.
  • FIX: Missing registration of client side namepace "Umbraco.Controls" when using uComponents UI Modules.
  • FIX: Data type control factory did not properly pick up all uComponent data types.
  • FIX: Multilingual field validation message didn't display proper locale in message.
  • FIX: Licensing would kick in for Umbraco dialogs involing Ucommerce content.

Change log for 3.0.0.12298

  • NEW: Updated log4net dependency to 1.2.11.0 in anticipation of Umbraco 4.10 using it.
  • FIX: PayEx payment provider would throw an exception on bad payments instead of just setting payment status to declined.
  • FIX: Licensing kicked in for service requests for JSON/XML. Ignoring application/json and application/xml accept types.
  • FIX: YSOD would occur if selected component id on payment- or shipping method does not exist in config.

Change log for 3.0.0.12290

  • FIX: Deleted default store would still be used if no other default store with lower database rank existed.
  • FIX: Multilingual category media would show in both language- and media tabs.
  • FIX: SendEmailTask disregarded culture code stored on order when sending e-mails.
  • BRK: IEmailService signature changed. Added ILocalizationContext parameter to support above scenario.

Change log for 3.0.0.12286

  • FIX: Adding product with overriden currency to basket didn't use the overrriden currency.
  • FIX: SendEmailTask uses catalog context to find e-mail profile instead of the product catalog group stored on the purchase order.
  • FIX: Expose TransactionLibrary.RequestPayment(s) methods.

Change log for 3.0.0.12278 

  • NEW: .NET Framework 4.0 required.
  • NEW: Windows Azure Websites compatibility (requires clean install).
  • NEW: Razor optimized API (using UCommerce.Api).
  • NEW: Experimental support for Umbraco data types including uComponents data types.
  • NEW: Content data type.
  • NEW: Custom data types for definitions (IControlFactory and IControlAdapter interfaces).
  • NEW: Display field descriptions for custom properties in all editors.
  • NEW: Sorting and filtering for lists.
  • NEW: Sorting of fields on definitions.
  • NEW: Save product pipeline for easier plug into save event in backend.
  • NEW: New basket API will auto discover currency for new baskets.
  • NEW: CatalogContext will auto discover current catalog for store.
  • NEW: Discount specific order line (great for bundles!).
  • NEW: Target dynamic order properties in Marketing Foundation.
  • NEW: All tax calculations centralized to ITaxService.
  • NEW: Relative URLs for accept/cancel URLs for all payment providers.
  • NEW: PaymentMethodServices are registered in /configuration/Payment.config instead of web.config.
  • NEW: ShippingMethodServices are registered in /configuration/Shipping.config instead of web.config.
  • NEW: Name property removed IPaymentMethodService and IShippingMethodService interfaces.
  • NEW: Unified dynamic property handling on Product, Category, and Campaign Item via IDynamicEntity.
  • NEW: Builds are version with year + day number of year, e.g. 2012/09/26 is 12270 (day 270 of 2012).
  • NEW: Automatic lifestyle selection for configured IoC components (API easier to use in apps and web services).
  • NEW: Delete product pipeline.
  • NEW: Persistent component overrides via Custom.config.
  • NEW: Ability to turn off Security Foundation.
  • FIX: Adding a product without price to basket would cause an exception.
  • FIX: SagePay and eWAY payment providers would fail on missing customer information.
  • FIX: Ogone provider did not enable MasterCard.
  • FIX: Targets implementing both IPurchaseOrderTarget and IOrderLineTarget would be duplicated in Act list.
  • FIX: Trees are not duplicated when reinstalling.
  • FIX: Ucommerce section shows up as undefined in Umbraco.
  • FIX: Tab would incorrect set focus when creating product relations for products without variants.
  • BRK: Foreign keys removed from entities, use entities for relations instead, e.g. PurchaseOrder.CustomerId becomes PurchaseOrder.Customer.CustomerId.
  • BRK: Some .NET method signatures have changed. Your existing solution needs to be recompiled against 3.0.
  • BRK: IPricingService returns Money objects instead of PriceGroupPrice objects.

Change log for 2.6.1.0

  • FIX: Google Checkout payment provider did not take shipping fees and order level discounts into account.

Change log for 2.6.0.0

  • NEW: Quantity target for order- and line aggregate- and individual line quantity targeting.
  • NEW: Multi targeting for categories.
  • NEW: Multi targeting for catalogs.
  • NEW: Improved bundle support.
  • NEW: Order line qualifier for discounts (IOrderLineQualifier).
  • NEW: Revamped act targeting engine for Marketing Foundation produces more predictable results for order line discounts.
  • NEW: Improved support for combining multiple targets on a single campaign item.
  • NEW: IWebControlAdapter interface for saving values from custom controls.
  • FIX: BOGOF support for mix discounts.
  • FIX: Category target did not display properly for users without permission to any product catalog groups.
  • FIX: NHibernate matches Umbraco Courier to avoid conflicts when both Ucommerce and Courier are installed.
  • FIX: PayPal payment provider would in rare cases fail on verification of business id.
  • FIX: Calculating order totals would round decimals to two places, which would cause tiny amounts to be rounded to zero.
  • FIX: Deleting a price group in Enterprise Edition would cause permission editor to fail.
  • NOTE: If you created assembly redirects for NHibernate or FluentNHibernate in web.config please remove them.

Change log for 2.5.2.0

  • FIX: Updated TinyMCE to 2.4.9 to fix issue with multiple RTEs on same page in Firefox.
  • FIX: Custom product images fields are now displayed with the image and name instead of just the name.

Change log for 2.5.1.0

  • NEW: Order guid included automatically on accept URL for all payment providers.
  • NEW: Authorize.Net payment provider supports itemizing receipt on gateway and adding logo.
  • NEW: ePay payment provider supports instant capture.
  • FIX: Authorize.Net payment provider sends customer e-mail with the payment request.
  • FIX: Searching for order numbers in backend would cause an error.
  • FIX: Surplus order total discounts from order sub total will be applied to shipping total and payment total. In that order.
  • FIX: Custom audit messages were not saved to the order.

Change log for 2.5.0.0

Security Foundation overview video.

  • NEW: Security Foundation adds business and role based authorization.
  • NEW: Security roles for foundations.
  • NEW: Security roles for catalog management.
  • NEW: Security roles for order management.
  • NEW: Security roles for campaign management.
  • NEW: Distributed catalog management for Enterprise Edition.
  • NEW: Distributed order management for Enterprise Edition.
  • NEW: Configure which languages are available in any given store.
  • NEW: Store specific campaigns.
  • NEW: Authorize.NET provider with authorize, acquire, void, and refund.
  • NEW: Amazon Payments provider with authorize, acquire, void, and refund.
  • NEW: Google Checkout provider with authorize, acquire, void, and refund.
  • NEW: Braintree Payments provider with authorize, acquire, void, and refund.
  • NEW: Ogone payment provider with authorize, acquire, void, and refund..
  • NEW: MultisafePay with acquire and callback support for updates in MultiSafepay back office.
  • NEW: Ideal (via ING bank) with acquire.
  • NEW: eWAY Payment Provider (AU) with authorize.
  • NEW: Automatic recheck of license when the license is exceeded. No more apppool recycles.
  • FIX: Newly added voucher codes would not immediately be picked up by the basket pipeline.
  • FIX: CommerceLibrary:RequestPayments() caused "collection modified error" when using DefaultPaymentMethodService.
  • FIX: Shipments created with CommerceLibrary:CreateShipment() would require a database roundtrip before showing up on the order.
  • FIX: E-mail service would fail with Umbraco configured to use domain prefixes (useDomainPrefixes on).
  • FIX: In very rare instances Ucommerce would to revert to developer mode with a valid license present.

Change log for 2.1.0.0

  • NEW: "Amount off order total" and "Percentage off order total" award are now applied on the order level when same VAT rate is used on all order lines.
  • NEW: Advertise now uses OR instead of AND for displaying advertising information.
  • NEW: Differentiated VAT on order lines supported by order level discounts by spreading the discount total across all order lines.
  • NEW: Basket pipeline tasks for calculating PurchaseOrder SubTotal and TaxTotal.
  • NEW: Added Swedish translations for the Admin UI.
  • NEW: Added German translations for the Marketing UI.
  • NEW: CommerceLibrary:GetPurchaseOrderByPaymentReference extension - useful when displaying the order confirmation page.
  • NEW: Added payment guid to new payments to make it impossible to guess payment ids passed to payment gateways.
  • FIX: Added state to the billing information sent to SagePay.
  • FIX: Recreating a root category with the same name as deleted one deeper in the catalog structure would cause it to reappear in the location instead of in the root.
  • FIX: CreatePayment did not add the new payment to the order thus a refresh of order was required for payment to be added.
  • FIX: CommerceLíbrary:GetNiceUrlForCategory did not work for category name, only for category ids.
  • FIX: CommerceLibrary:GetProduct would load product by id before SKU.
  • FIX: Made default PricingService members virtual for easier overrides.
  • FIX: Made the default TaxService members virtual for easier overrides.
  • FIX: URLs are pruned more extensively for illegal chars. Names are trimmed for trailing "." chars.
  • FIX: Missing speech bubble when saving categories.
  • FIX: Length of Shipment name could not accommodate long display names from Shipping Methods.
  • FIX: Order overview displayed name from Customer instead of Billing Address.
  • FIX: Added better error message when trying to send an e-mail type which does not exist.
  • FIX: Campaign items for deleted campaigns would be evaluated for discounting.
  • FIX: "Amount off order line total" and "Amount off unit price" would only get applied to the first satisfied order line.
  • FIX: Next campaign item would not get evaluated if "Allow next" was unchecked and one order level target was satisfied while line level was not.
  • FIX: Product catalog target crashing with catalogs named the same in different stores.
  • FIX: Product catalog group target crashing with one deleted group with the same name as a non deleted group.
  • FIX: Removed addtional special chars from URLs generated by UrlService.
  • FIX: Product 10 report mark had closing tags for table and div reversed.

Change log for 2.0.5.0

  • NEW: Catalog XML structure now contains showPricesIncludingVat config value and selected priceGroupId (Thanks to Kim Hansen for suggesting the feature).
  • NEW: RBS WorldPay provider now supports accept and decline URLs for custom response pages (Thanks to Chris Knowles for suggesting the feature).
  • NEW: Free Edition will enable a single language (as specified in CatalogConfiguration defaultCultureCode).
  • NEW: Order audit trail is updated when an order line is deleted.
  • NEW: Order audit trail is updated when a discount is deleted.
  • FIX: Order audit trail did not reflect new entries until page was refreshed.
  • FIX: When running Free Edition access could not be set for new shipping methods.
  • FIX: When running Free Edition template for e-mails could not be selected.
  • FIX: CommerceLibrary:SetOrderProperty would not save the property.
  • FIX: Payment XML did not contain referenceId.

Change log for 2.0.4.0

  • FIX: CommerceLibrary:DeleteLineItem would cause an error when deleting.
  • FIX: CommerceLibrary:GetBasket would display old shipping method id after changing shipping method until subsequent request.

Change log for 2.0.3.0

  • FIX: Disabled payment methods would be returned as available for product catalog groups.

Change log for 2.0.2.0

  • FIX: Null display name for shipping method would cause a transient error in NHibernate when saving a new shipment.
  • FIX: Get Product Top 10 report included "Cancelled orders" instead of "Requires Attention".
  • FIX: Store sales total report, which didn't get transformed to the proper type safe object and casued an exception at runtime.
  • FIX: Uninstalling would leave cache config behind, which would have to to be removed manually.
  • FIX: Calculating totals in basket pipeline would cause totals with more than two decimals.
  • FIX: Shipment fields Tax, TaxRate, and ShipmentTotal were not rendered in order XML.
  • FIX: Add variant SKU to Product Top 1o Reports.

Change log for 2.0.1.0

  • NEW: Removed definition restriction from Ucommerce Free Edition.
  • FIX: XSLT extension for loading order history throws exception.
  • wFIX: PurchaseOrder ModifiedOn was always set to the date when the order created instead of when it was last updated.

Change log for 2.0.0.0: Marketing Foundation

  • BREAKING: UCommerce.Entities replaced by UCommerce.EntityV2.
  • Information on migrating .NET code to 2.0.
  • BREAKING: Ucommerce 2.0 will not work with existing 1.0 keys.
  • NEW: Ucommerce Free, Charity, Pro, Enterprise Editions.
  • NEW: Time limited marketing campaigns.
  • NEW: Site ads based on Umbraco content.
  • NEW: Multilinugal site ads.
  • NEW: Prioritize order of evaluation of campaign items.
  • NEW: Targeted ads and content based on the customer's context.
  • NEW: Targeted discounts based on the customer's context.
  • NEW: Percentage off shipping fee (Free shipping discounts).
  • NEW: Unit price discount (percentage off).
  • NEW: Order total discount (amount and percentage off).
  • NEW: Order line discount (amount and percentage off).
  • NEW: Product bundle discount (amount and percentage off).
  • NEW: Buy 2 get 1 free discount.
  • NEW: Free shipping vouchers/promocodes.
  • NEW: Personal, single use vouchers.
  • NEW: Generic, multiuse vouchers.
  • NEW: Product vouchers/promocodes.
  • NEW: Product group vouchers/promocodes.
  • NEW: Store specific vouchers/promocodes.
  • NEW: Voucher/promocode export to third party systems.
  • NEW: Target combinations.
  • NEW: Award combinations.
  • NEW: Configurable rules for multiple awards per customer behavior.
  • NEW: XSLT extensions for working with Marketing Foundation.
  • NEW: .NET API for working with Marketing Foundation.
  • NEW: Extendable framework for adding custom targets and awards.
  • NEW: Dynamic UI support for custom targets and awards.
  • NEW: View information about applied campaigns and discounts in backend.
  • NEW: Edit order discounts in backend.
  • NEW: Recurring payments with PayPal (subscriptions).
  • FIX: Performance improvements when generating nice urls for large product listings.
  • FIX: CommerceLibrary:GetCatalog would load by name only, instead of name and catalog group.
  • FIX: XSLT outputs prices in US format exclusively instead of based on server/browser locale.
  • FIX: Upped timeout on installer due to failure on slow machines and 30 sec timeout on database connection.
  • FIX: Submitting reviews with no rating for products with no prior ratings would cause an error.
  • FIX: Products with integers for SKUs could not be loaded by SKU, only by product id.
  • FIX: Fallback to product name when no display name is set.
  • FIX: Customers could be dulicated when creating them using EditCustomer extensions.

Change log for Ucommerce 1.5.1.0

NEW: EmailService accepts multiple CC and BCC addresses for e-mail (comma separated in admin gui).
NEW: EmailService can insert dynamic data in subject and for template, e.g. "Confirmation for order number {orderNumber}." combined with Send() which takes a dictionary parameter.
NEW: Purchase order maintains a ModifiedOn field to make it easier to discover abandoned baskets.
NEW: Shipments can have tax applied via new CalculateShipmentTaxForShipments pipeline task.
FIX: SendEmailTask will use the culture code on the purchase order instead of current thread for the language of e-mail.
FIX: Payment fee added to requested amount automatically.
FIX: Rich text editor would change URLs to be relative to the editing page.
FIX: Billing- and shipping addresses would be duplicated with each call to EditBillingAddress and EditShipmentInformation.
FIX: Order lines will contain information about both the product family and variant instead of just the variant.
FIX: Performance increases when generating nice URLs for catalog, categories, and products using ids instead of names and SKUs.
FIX: Culture codes will hold codes longer than five chars, e.g. en-029 for Carribbean.
FIX: Umbraco installs done via Web Platform Installer would not grant db user exec permissions on stored procs.
UPD: Updated to NHibernate 3.1 (including Castle Windsor and FluentNHibernate).
(Thanks to Tim Gaunt from The Site Doctor, Fabio Bongiovanni from Taipan, and Jeavon Leopold from Crumpled Dog for helping with this release).
  • NEW: EmailService accepts multiple CC and BCC addresses for e-mail (comma separated in admin gui).
  • NEW: EmailService can insert dynamic data in subject and for template, e.g. "Confirmation for order number {orderNumber}." combined with Send() which takes a dictionary parameter.
  • NEW: Purchase order maintains a ModifiedOn field to make it easier to discover abandoned baskets.
  • NEW: Shipments can have tax applied via new CalculateShipmentTaxForShipments pipeline task.
  • FIX: SendEmailTask will use the culture code on the purchase order instead of current thread for the language of e-mail.
  • FIX: Payment fee added to requested amount automatically.
  • FIX: Rich text editor would change URLs to be relative to the editing page.
  • FIX: Billing- and shipping addresses would be duplicated with each call to EditBillingAddress and EditShipmentInformation.
  • FIX: Order lines will contain information about both the product family and variant instead of just the variant.
  • FIX: Performance increases when generating nice URLs for catalog, categories, and products using ids instead of names and SKUs.
  • FIX: Culture codes will hold codes longer than five chars, e.g. en-029 for Carribbean.
  • FIX: Umbraco installs done via Web Platform Installer would not grant db user exec permissions on stored procs.
  • UPD: Updated to NHibernate 3.1 (including Castle Windsor and FluentNHibernate).

Thanks to Tim Gaunt from The Site Doctor, Fabio Bongiovanni from Taipan, and Jeavon Leopold from Crumpled Dog for providing feedback for this release.

Change log for Ucommerce Store 1.1.1.0

  • NEW: Prices will be indexed by Google and displayed as part of search results.
  • FIX: Performance increase generating nice URLs using ids.
  • FIX: Product list would be placed after categories list.

Change log for Ucommerce 1.5.0.2

  • NEW: Added product id to rendered XML for product.
  • NEW: Added vat rate to rendered XML for order lines.
  • FIX: SagePay provider did not pass on customer e-mail and delivery phone to SagePay.
  • FIX: Calculate order total pipeline task didn't subtract order line discount from order sub total.

Change log for Ucommerce 1.5.0.1

  • FIX: Product thumbnail and primary image could not be saved.

Change log for Ucommerce 1.5.0.0

  • NEW: Nice URLs for catalog, categories, and products. Use CommerceLibrary:GetNiceUrlForCatalog, GetNiceUrlForCategory, GetNiceUrlForProduct.  Nice URLs Optimize Webshop Google Page Rank with Ucommerce.
  • NEW: Category definitions: Add custom properties to categories.
  • NEW: Social commerce with product reviews, ratings, and comments.  Social Commerce Explained: Product Ratings, Products Reviews, and Comments.
  • NEW: ProductReview and ProductReviewComment pipelines extension point to override default behavior.
  • NEW: Optional moderation of new reviews and comments (configure setting on individual product catalog groups).
  • NEW: XSLT extension for getting entire category hierarchy for catalog GetRootCategories(CatalogName, true).
  • NEW: Full Razor support  Building Webshops with Umbraco, Razor, and the Ucommerce E-commerce Framework. Oh My!.
  • FIX: Related products picker buttons would be placed far down the dialog when picking from a long category list.
  • FIX: Custom product images would display a textbox instead of media picker UI.
  • FIX: SKU / category name longer than 30 chars caused an error.
  • FIX: Removed price editing checkboxes for easier management of price information.
  • FIX: Creating members during checkout would fail if a member with the same e-mail but different user name existed.
  • FIX: Disabled payment methods would still be returned when retrieving available via API.
  • FIX: Deleting an order line with custom properties in the backend caused a SQL error.
  • FIX: New enum data type didn't allow adding enum values without refresh.
  • FIX: Navigating to a product from search and deleting it in backend would cause an exception when delete was complete.
  • COMPATIBILITY: Works with latest Umbraco 4.7.

Change log for Ucommerce Store 1.1

  • NEW: Product rating, review, and comment pages.
  • NEW: Report abuse in the store.
  • NEW: Product reviews displayed as part of Google search results.
  • NEW: Improved Google Page Rank with nice URLs.

Change log for 1.3.0.3

  • FIX: Rich texts field support for more than 4,000 characters.

Change log for 1.3.0.2

  • FIX: Support Umbraco 4.6.2 changed behavior for missing images.

Change log for 1.3.0.1

  • FIX: WYSIWYG rich text editor replaced with TinyMCE due to incompatibility with IE8 - would cause product editor to fail.

Change log for 1.3.0.0

  • NEW: Works beautifully with Umbraco 4.6 (Ucommerce 1.1 and up are compatible with Umbraco 4.6).
  • NEW: Product search in backend.
  • NEW: Rich text editor data type for product definitions.
  • NEW: Date picker data type for product definitions.
  • NEW: Related products picker with full catalog structure UI for selecting products.
  • NEW: Backend UI available in German. Thanks to Christian Wendler of Byte5 for providing the translations.
  • NEW: Order sorting in search listings in admin UI.
  • NEW: The Product tab is displayed by default when clicking a category in the backend.
  • NEW: Ability to configure default tab for any section in Ucommerce admin. Please refer to the table Ucommerce_AdminPage and Ucommerce_AdminTab to change defaults.
  • NEW: Full API available through EntitiesV2 for improved performance and querying.
  • NEW: Caching of product catalog available through UCommerce.EntitiesV2. Please refer to runtimeConfiguration section in web.config to change settings.
  • NEW: Payment method service post processing pipeline can now be configured via UI in admin.
  • FIX: Large number of custom properties (40+) would cause the product viewer to slow down.
  • FIX: Display names for custom product definition properties are display in the backend.
  • FIX: Long text data type would display a tiny text box.
  • FIX: UI consistency for backend listings.
  • FIX: Subsonic delete would not take into account multiple clauses.
  • FIX: Removed the requirement for a display name on products.

Change log for 1.2.0.0

  • NEW: Ability to change quantity on existing order lines in the backend.
  • NEW: Ability to delete order lines in the backend.
  • NEW: Ability to search on order numbers in backend order search.
  • NEW: Variant SKU is displayed on the order overview in the backend.
  • NEW: RBS WorldPay payment provider with support for authorization, acquire (capture), cancel, and refunds.
  • NEW: SagePay payment provider with support for authorization, acquire (capture), cancel, and refunds.
  • NEW: PayEx payment provider with support for authorization, acquire (capture), cancel, and refunds.
  • NEW: Payer.se payment provider with support for authorization with instant acquire (capture).
  • NEW: Support for multiple shipments per order.
  • FIXED: Large number of orders would cause a timeout in the backend when listing orders for a given order status.
  • FIXED: Product relations mappings added to EntitiesV2.Product.
  • FIXED: Performance issue on loading products for a category using XSLT extensions.
  • FIXED: Baskets and cancelled orders were included in Product 10 report.
  • FIXED: DIBS payment provider picks up configured language form the domain.

Change log for 1.1.1.0

  • NEW: XSLT API for adding products to basket without adding the product to existing order line.
  • NEW: Pipeline task for sending e-mails, SendEmailTask. By default order confirmation is configured to be sent during checkout. See Checkout pipeline on how to configure your own e-mail types.
  • NEW: Pipeline tasks for basic inventory handling during checkout and in the backend for returns, DecreaseInventoryOnHandTask, IncreaseInventoryOnHandTask - just add a field to your product definition called InventoryOnHand and Ucommerce will decrement and increment during checkout and if an order is cancelled in the backend.
  • NEW: License banner will not be displayed for staging URLs containing the words "stage", "staging", and "preview".
  • FIXED: Javascript conflict with Umbraco would cause the Ucommerce data type UI to be displayed for Umbraco data types, if a user accessed Ucommerce prior to accessing the Umbraco data type UI.

Change log for 1.1.0.1

Tiny fix for installations running IIS6 or IIS7 classic mode app pools. HTTP handlers for these types of settings were rolled out using IIS7 integrated mode.

Download Ucommerce 1.1.0.1

Change log for 1.1.0.0

Ucommerce 1.1 brings out of the box support for three payment gateways: PayPal, DIBS, and ePay. Each of the providers support your basic authorization of credit cards and aqcuiring payments once the store owner is ready to ship the goods, and finally refunding money if the customer decides to return goods to the store.

More importantly 1.1 introduces an extended framework for integrating with payment gateways when you need to pass the customer to the payment gateway for authorization of payments and back to your store once complete.

A nice additional for store owners is the ability to add custom messages to the audit trails, which enables them to keep track of additional order information without having to plaster their monitors with post it notes :)

  • NEW: Framework for integrating with payment providers using remote pages at the provider

  • NEW: Paypal payment method service with support for authorization, acquire, cancel, and refund

  • NEW: DIBS payment method service with support for authorization, acquire, cancel, and refund (capture, cancel, and refund require Premium plan with DIBS or the integration package)

  • NEW: ePay payment method service with support for authorization, acquire, cancel, and refund (capture, cancel, and refund require Pro plan with ePay)

  • NEW: Backup is performed of pipelines and configuration files when upgrading to newer versions of Ucommerce

  • NEW: Custom messages can be added to the order audit trail using the admin interface

  • FIXED: New data objects would be duplicated if Save() was called multiple times

  • FIXED: Categories could be loaded from other catalogs than the one specified when using CommerceLibrary:GetCategory()

  • FIXED: Creating a new basket from scratch and running basket pipeline would only calculate totals on second request

Change log for 1.0.5.3

  • FIXED: Updating existing order properties would cause a SQL error.

Change log for 1.0.5.2

Maintenance release in preparation of 1.1. Fixes an issue with new baskets which can't be recalculated on the same request as they were created.

  • FIXED: Accessing new baskets immediately after persisting with the client cookies would load the basket until the next request.

  • FIXED: Clearing basket information in a context without access to client cookies would produce an error.

  • FIXED: Deleting a line item with dynamic order properties attached would produce an error.

Change log for 1.0.5.1

A minor issue was discovered which would cause order total to be incorrect when two circumstances are true: 1) catalog is configured to display prices including VAT and 2) the customer has multiple items in her basket.

Change log for 1.0.5.0

This version introduces two new extensibility features. The first extension point, the checkout pipeline, was already there but all logic associated with checkout is now present in the pipeline making it easier and more useful than ever tocustomize the checkout logic to your needs. The checkout pipeline is configured in the file /umbraco/ucommerce/pipelines/Checkout.config.

The second extension enables you to override the default pricing schema of Ucommerce with your own. Simply implement your own version of IPricingService or override the standard Ucommerce pricing service to match your needs.

Finally as part of the pricing extension point tax calculations can be overridden as well in the same manner as IPricingService. ITaxService and IPricingService are both configured in /umbraco/Ucommerce/configuration/Components.config.

  • NEW: Checkout process is now handled exclusively through the checkout pipeline
  • NEW: Pipeline tasks for assigning order number, adding audit trails to purchase order, creating customers, creating members for customers, clearing basket information
  • NEW: XSLT extension for assigning an order number by config or a custom order number to basket
  • NEW: Payment fee total added to payments
  • NEW: Price calculation extension added. Override pricing calculations by replacing IPricingService in components.config
  • NEW: Tax calculation
  • FIXED: Purchase order subtotal calculated with VAT - order subtotal now excludes VAT
  • FIXED: Duplicate addresses no longer created for customers
  • FIXED: Basket.SubTotal was used for the default payment amount instead of Basket.OrderTotal
  • FIXED: Catalog nodes with no sub nodes were expandable in the admin tree
  • FIXED: Missing buttons for date picker for Umbraco 4.5
  • FIXED: Javascript error due to undefinied variable _tabs
  • FIXED: Validation expression missing for number data type - only integers and decimals from here on in :) 

Change log for Ucommerce 1.0.4.2

  • NEW: Ability to add two-way product relationships - available from the Product / Product Relations tab
  • FIXED: Deleted countries showing up when editing Shipping Methods and Payment Methods accessibility
  • FIXED: Support for virtual paths introduced with Umbraco 4.5
  • FIXED: "Create customers as members" enabled would cause an error when executing checkout pipeline due to missing user when creating new members

Change log for Ucommerce 1.0.4.1

  • FIXED: Small issues with the way Javascript is injected into custom node actions by Umbraco 4.5 causes issues with Product and Category Sort and affected some functionality in TinyMCE

Change log for Ucommerce 1.0.4.0

  • NEW: Umbraco 4.5 compatibility
  • NEW: Language specific images for products and variants
  • FIXED: YSOD due to session not being initialized by default for extensionless URLs
  • FIXED: Products related to other products can't be deleted
  • FIXED: Installing Ucommerce on an Umbraco installed from WebPI would cause an error due to the datalayer keyword in the Umbraco connectionstring which is incompatible with ADO.NET
  • FIXED: Deleting a shipping method would only delete it from the backend

Change log for Ucommerce Store 1.0.1.2

  • Support for Umbraco 4.5
  • Optimizations for SmallCart macro

Change log for Ucommerce 1.0.3.2

Ucommerce 1.0.3.2 includes compatibility with Umbraco 4.0.4.x. Also released is the Ucommerce Store with a minor change with regards to which API is used to requesting payment.

  • NEW: Umbraco 4.0.4.x compatibility
  • NEW: Library.RequestPayment() introduced to support two-step payment providers, i.e. CreatePayment() and later RequestPayment(). For more information please read   Integrating Ucommerce with a Payment Provider
  • FIXED: Multilingual product property enums are rendered as text fields under language tabs
  • FIXED: CatalogContext relies on URL to determine current catalog and SKU
  • FIXED: Product definition fields allow spaces in their names which causes problems with XML rendering
  • FIXED: Product properties are displayed in editor regardless of Render in Editor setting
  • FIXED: Product save fails for products with custom image fields
  • FIXED: Payment fee total is not calculated during checkout
  • FIXED: GetBasket() extension fails when user is logged in
  • FIXED: Change country during checkout causes an error on subsequent check out steps
  • FIXED: CC and BCC for mail types are stored for all mails on a profile

Change log for Ucommerce 1.0.3.1

  • NEW: Ability to run with non unique category names by setting the enforceCategoryNameUniquenessWithinCatalogs configuration setting in web.config to false
  • NEW: Library.GetCategoryById() for working with categories by id instead of name
  • NEW: SiteContext, OrderContext, CatalogContext, ContentService, and LocalizationContextare now pluggable via components.config
  • FIXED: Context tightly bound to url param "Catalog"
  • FIXED: Product definition fields allow spaces in their names
  • FIXED: Product properties are displayed in editor regardless of their Render in Editor setting
  • FIXED: Save fails for products with custom images
  • FIXED: Multilingual product properties are rendered as text only
  • FIXED: Duplicate variant XML returned for variants with multiple multilingual fields
  • FIXED: Add related product for a product not yet saved would fail
  • FIXED: Library.GetBasket() does not render variantSku

Change log for Ucommerce 1.0.3.0

Ucommerce Starter Edition is targeted at smaller solutions, which require less functionality than larger scale operations. Ucommerce Starter Edition is priced accordingly and will enable store owners to get started with e-commerce without breaking the bank.

Upgrading from Ucommerce Starter Edition to Pro is as easy as entering a new key in an existing Starter installation. No upgrades of the site needed - you just start using the additional features right away.

Related Products will help increase conversion rates by relating product to each other thus helping potential customers find the products they want. You can define a number of relation ship kinds, which are used to relate products to each other, e.g. Cross Sell, Up Sell, Accessory. Ucommerce gives you complete control over which kinds of related products you wish to maintain.

Dynamic Order Properties is a way for the developer to add new properties to baskets, orders, and even order lines. Any information you wish to capture during browse or checkout can be added to the basket or order for later use - be it reporting, fulfillment, or something else altogether. 

Change log for Ucommerce 1.0.3.0

Ucommerce Starter Edition is targeted at smaller solutions, which require less functionality than larger scale operations. Ucommerce Starter Edition is priced accordingly and will enable store owners to get started with e-commerce without breaking the bank.

Upgrading from Ucommerce Starter Edition to Pro is as easy as entering a new key in an existing Starter installation. No upgrades of the site needed - you just start using the additional features right away.

Related Products will help increase conversion rates by relating product to each other thus helping potential customers find the products they want. You can define a number of relation ship kinds, which are used to relate products to each other, e.g. Cross Sell, Up Sell, Accessory. Ucommerce gives you complete control over which kinds of related products you wish to maintain.

Dynamic Order Properties is a way for the developer to add new properties to baskets, orders, and even order lines. Any information you wish to capture during browse or checkout can be added to the basket or order for later use - be it reporting, fulfillment, or something else altogether.

  • NEW: Ucommerce Starter Edition (Compare Starter Edition to Pro)
  • NEW: Related Products
  • NEW: Dynamic properties on baskets, orders, and order lines
  • NEW: API for working directly with order addresses - Library.EditOrderAddress()
  • FIXED: Shipping method is not executed during checkout
  • FIXED: Baskets are not persisted across sessions
  • FIXED: TransactionLibrary.GetPurchaseOrde with string and guid cannot be called from XSLT
  • FIXED: CreateErrorMessageXml fails when called with a single string parameter
  • FIXED: Library.DeleteLineItem() doesn't delete
  • FIXED: Library.ClearBasket() doesn't clear
  • FIXED: Cannot delete data type
  • FIXED: OrderGuid not set on orders
  • FIXED: Adding an image to a product, category, or payment method doesn't display the image name when first added
  • FIXED: Deleted catalogs and catalog groups are displayed on product categories tab
  • FIXED: Cannot save property field (ProductDefinitionField) when name has been used before

Changelog for Ucommerce 1.0.2.0

  • NEW: Sorting of products and categories in Ucommerce Admin
  • NEW: 10k product SKUs supported in each category in Ucommerce Admin
  • NEW: 10k product SKUs supported in each category using the XSLT API
  • NEW: HTML support in product and category descriptions
  • NEW: Validation messages appear on all tabs in uCommece Admin
  • FIXED: Issue with order addresses, which would change whenever the customer changed her customer address. Addresses are now copied to the order. Requires a small update to the XSLT becuase we introduced a new extension to handle it.
  • FIXED: Displaying long product lists in Ucommerce Admin would cause a timeout
  • FIXED: Displaying long product lists using the XSLT API would cause a timeout
  • FIXED: Deleting an active price group would cause an error on editing product catalog
  • FIXED: Product description fields are too small
  • FIXED: Product definition are not deleted properly

Updating to Ucommerce 1.0.2

To update an existing version of Ucommerce 1.0.1 you simply install Ucommerce 1.0.2 on top of your existing installation. Ucommerce will migrate any resources required to the latest version including the database.

Please note that if you've made changes to the pipeline configuration files you need to make a backup of these before installing Ucommerce 1.0.2 as Umbraco will overwrite any modified files with the new versions during installation.

Please make a backup of your Ucommerce database as schema updates will be rolled out with 1.0.2. Your 1.0.1 schema will be migrated forward which means that you cannot rollback to 1.0.1 easily without a database backup should you need to do so.

Updating to Ucommerce Store 1.0.2

If you have an existing version of Ucommerce Store installed you will need to uninstall it before installing Ucommerce Store 1.0.2 as Umbraco will duplicate any content rolled out with the package including macros, XSLT files, and document types.

Category and product sorting

You can now manually sort products and categories in Ucommerce Admin to your heart's content. Of course you can still optionally resort using the Commerce XSLT API or the Foundation API. Your choice.

New API for handling addresses

An issue with address handling in Ucommerce 1.0.1 would cause customers who place an order under one address and later update their account information with new address information to also update all previous orders placed under that address.

To fix the issue a new XSLT API was introduced for version 1.0.2, which replaces EditAddress and requires a change when working with address information.

Addresses are now split between customer- and order addresses. Addresses maintained as part of the user account are considered customer addresses and should be maintained using the EditCustomerAddress() API (previously: EditAddress()).

Both billing address and shipment addresses are considered order addresses and are maintained with two completely new APIs: EditBillingInformation() and EditShipmentInformation().

Removed XSLT APIs:

  • SetBillingAddress() - replaced by EditBillingInformation()
  • EditAddress() - replaced by EditCustomerAddress() and EditShipmentInformation()

Example of address XSLT for version 1.0.1

<xsl:variable name="editCustomerResult" select="CommerceLibrary:EditCustomer($firstName, $lastName, $email, $phone, $mobile)"/>

<xsl:variable name="editAddressResult" select="CommerceLibrary:EditAddress('Billing', $company, $line1, $line2, $postalCode, $city, '', $attention, $countryId)"/>

<xsl:variable name=" editResult " select="CommerceLibrary:EditAddress('Delivery', $del_company, $del_line1, $del_line2, $del_postalCode, $del_city, '', $del_attention, $del_countryId)"/>

<xsl:variable name="setInvoiceAddressResult" select="CommerceLibrary:SetBillingAddress('Billing')" />

Example of new XSLT for version 1.0.2

<xsl:variable name="editResult" select="CommerceLibrary: EditBillingInformation ($firstName, $lastName, $email, $phone, $mobile, $company, $line1, $line2, $postalCode, $city, '', $attention, $countryId)"/>

<xsl:variable name="editShipmentInformationResult" select="CommerceLibrary:EditShipmentInformation('Delivery', $shipment_firstName, $shipment_lastName, '', '', '', $shipment_company, $shipment_line1, $shipment_line2, $shipment_postalCode, $shipment_city, '', $shipment_attention, $shipment_countryId)"/>

Pipeline configuration updates

The Ucommerce component configuration system was updated for version 1.0.2, which requires modifications to pipeline configuration files. Basket and checkout pipelines are automatically updated.

<component id="Basket.CalculateOrderLinesTotals"  service="UCommerce.Pipelines.IPipeline`1[[UCommerce.Entities.PurchaseOrder, UCommerce]], UCommerce"  type="UCommerce.Pipelines.Basket.CalculateOrderLineTotalsTask, UCommerce.Pipelines"  lifestyle="Thread" />

To

<component id="Basket.CalculateOrderLinesTotals"  service="UCommerce.Pipelines.IPipelineTask`1[[UCommerce.Entities.PurchaseOrder, UCommerce]], UCommerce" type="UCommerce.Pipelines.Basket.CalculateOrderLineTotalsTask, UCommerce.Pipelines" lifestyle="Thread" />

The UCommerce.EntitiesV2 namespace

The short story: You should continue to use the entities in UCommerce.Entities.

The slightly longer story: To achieve the performance we want from the Ucommerce subsystems we're in the process of replacing our data access strategy moving from Subsonic 3 to NHibernate 3. NHibernate provides a more robust data access strategy but it's only partially implemented at this point.

Key areas of the Ucommerce API already leverages NHibernate, but the new entities are created specifically for these areas. Thus you'd find things missing for for general purpose use, so you should stick with UCommerce.Entities.

Once our work in this area is completed the change to the new data access strategy will happen transparently provided you stick with the UCommerce.Entities namespace.

Error when saving a macro using GetBasket extension

When using CommerceLibrary:GetBasket() extension in a macro you see an error when saving. Ucommerce 1.0.2 is using a new Umbraco API as part of GetBasket, which reports an error under Umbraco 4.0.2.0.

Updating your Umbraco install to version 4.0.3.0 fixes this issue. If you don't want to update you can check the "Skip testing (ignore errors)" checkbox. The macro will work fine on your frontend site.