Release Notes

Ucommerce 10.2.1

2024-05-03

Bug Fixes

  • (Migrations) Added safeguards to migration logic that could break migrations in rare cases.

Ucommerce 10.2.0

2024-04-25

Breaking changes

  • (Pipelines) Pipelines have been improved. If you have any custom pipeline tasks or are executing any pipelines, you will need to change your code.

    • IsSuccessful has been deprecated. It is replaced by EnsureSuccess. We believe that the new name better reflects the fact that a PipelineException is thrown if any errors occur during the execution of the pipeline. Also, in case EnsureSuccess does not throw a PipelineException, it returns the output from the pipeline execution.

    • PipelineTaskArgs has been removed. PipelineContext now contains the input and output instead. The PipelineContext has been made generic to support this change. In addition, the CancellationToken has been moved out of the PipelineContext and is now a part of the Execute method signature to make your IDE recognize its existence. Method signature before:

      Task Execute(PipelineTaskArgs<TInput, TOutput> context, PipelineContext context);

      Method signature now:

      Task Execute(PipelineContext<TInput, TOutput> context, CancellationToken cancellationToken);
    • Executing a pipeline no longer requires an output or PipelineTaskArgs object. To run a pipeline, you only need to provide the input. When the pipeline has executed, we recommend calling EnsureSuccess on the PipelineExecutionResponse, to make sure no errors occured and get the output from the pipeline.

Features

  • (UI extensibility) It is now possible to inject custom web components into the Ucommerce backoffice. See more here.

Bug Fixes

  • (Indexing) The product indexer now works correctly when indexing products outside of categories.

  • (Pipelines) The checkout and order processing pipelines are now discoverable in the pipeline discoverability endpoint. See how here.

Ucommerce 10.1.2

2024-04-09

Bug Fixes

  • (Licensing) The application will no longer shut down end of June even if a valid license key is given

Ucommerce 10.1.1

2024-03-22

Improvements

  • (Migration) Migration script execution speed and reliability is improved

Bug Fixes

  • (Backoffice) Changing language will now update labels on custom fields.

  • (Backoffice) Lazy loading fixed in the products app now works regardless of screen height.

  • (Backoffice) The result count when searching will now show in the correct format.

  • (Backoffice) After updating a product the product list will update with the correct values.

  • (Search) Sorting on product unit price now sorts the result correctly. This was caused by the index definition defining the values as long instead of floating points.

Ucommerce 10.1.0

2024-03-08

Breaking changes

  • We improved setting up an external identity provider for our Backoffice. See documentation for details.

Features

  • It is now possible to assign store permissions to individual users.

  • A user will be created or updated when using an external identity provider. See documentation for details.

  • It is now possible to rebuild the search index and/or check the status from Backoffice -> Settings -> Search - rebuild index.

  • It is now possible to undo the deletion of promotions.

  • It is now possible to undo the update of a criterion or discount.

Bug Fixes

  • Undo widgets in Backoffice will disappear if the route changes.

Ucommerce 10.0.1

2023-02-23

Features

  • It is now easier to add and edit the checkout pipelines through the PaymentBuilder.CheckoutPipelines property. See documentation for details.

  • It is now possible to add and edit order processing pipelines through the PaymentBuilder.OrderProcessingPipelines property. See documentation for details.

  • When a user searches within any searchable list in the back office, it is now possible to change the focus on search results using the arrow keys and to open a selected item by pressing the Enter key.

  • A new type; UserDefinedEnum, was created to be used for index definitions on fields containing user-defined enums.

  • Using the UserDefinedEnum type, multilingual user-defined enums can now display the appropriate display name while using the enum's value for queries.

Bug Fixes

  • Order processing pipelines are now triggered correctly on order status updates.

  • Fixed an issue where the selection of a catalog criteria in the promotions page caused an error.

  • The product page -> Display name is now correctly set as required.

  • The product page -> No longer displays the variants section for products that can not have variants.

  • Product page -> Focusing and unfocusing the Long Description now only sends a PATCH request if any changes were made.

  • CatalogLibrary.GetFacets() returns the expected facets now.

  • Faceted search returns the correct products.

  • Using the UserDefinedEnum type, multilingual user-defined enums are now displayed correctly.

  • Parent products no longer index all language versions of enum variant properties.

Notes

  • Raw search capabilities for Elasticsearch have been moved out of Ucommerce.Extensions.Search.Abstractions. They are now available as extension methods on IIndex using the namespace Ucommerce.Search.Elastic.Extensions. Note: The extension methods will throw an exception if the IIndex instance is not ElasticsearchIndex

  • The unused table uCommerce_ProductCatalogGroupTarget has been removed from the database. This table was used to link a promotion to a store. This is now done using the campaign.

Ucommerce 10.0.0

2023-02-08

Features

  • Changing the priority of promotions is now undoable.

  • Deleting a campaign is now undoable.

  • Adds convenience accessors to UCommerceDBContext for

    • Catalogs,

    • Customers,

    • PriceGroups,

    • ShippingMethods,

    • Users,

    • Campaigns,

    • Carts,

    • Orders,

    • Products,

    • Categories and

    • Stores

Breaking changes

  • Migrated the search driver from Elasticsearch.Net and NEST 7.17.5 to Elastic.Clients.Elasticsearch 8.11.0

    • There will be a need to update any existing search configurations. Please refer to the Configuration documentation for further information.

  • Upgraded from .Net 7 to .Net 8

  • Changed signature of GetPrices in IPriceCalculationService - removing intermediate value object

  • Renamed WebSiteControllerBase to HeadlessControllerBase for better readability for partner developers.

  • The default back office URL moved from /ucommerce-ui/ to /ucommerce/

Bug fixes

  • Price group validation now happens before updates in headless calls - meaning a wrong price group guid will now actually block the update of the entity.

  • Fixed an issue where having no stores at all would cause errors in the back office.

    • If no store exists, the sidebar tabs for catalogs, products, orders, and promotions are now hidden.

  • Removed some corrupted data from the default database migration, which caused issues in the default campaign.

  • Fixed an issue with payment provider callbacks not being registered correctly.

Alpha

Alpha Releases

Alpha 13

Build 4021

Breaking Changes

  • The navigation property called Properties of DefinitionFieldEntity has been removed.

  • The navigation property called ProductDescriptionProperties of ProductDefinitionFieldEntity has been removed.

Features

  • It is now possible to see users' permissions when navigating to the settings app.

  • When clicking the user permissions item on the settings app, it is now possible to see a list of available users.

  • The user entity has been extended with Name and IsAdmin properties. As part of the migration Name is set to ExternalId.

  • The settings area of the backoffice is now only available to users with admin privileges.

The user permissions settings will be added to the backoffice in the next release.

Bugs

  • Fixed an issue where the ElasticSearch cloud options were not set to use the correct serializer. This meant that custom-defined fields would not be added to the index as they should when they are added to the index definition.

  • Fixed an issue with date pickers on custom definition fields.

Improvements

  • Guid generation for new entity objects has been moved from an EF Core SavingChanges-interceptor to object creation time.

  • Fewer database calls are needed for security checks.

  • Added cascade on delete for relevant foreign key constraints in the database.

  • Added Ucommerce.Web.Core.Constants.DateFormattingConstants.DEFAULT_DATE_TIME_FORMATTING as a constant for date formatting in Ucommerce.

  • Added helper method ToUcommerceString() as an extension method for DateTime and DateTimeOffset to convert time to UTC and format it using Ucommerce.Web.Core.Constants.DateFormattingConstants.DEFAULT_DATE_TIME_FORMATTING. This aligns with how dates persisted in V9.

    • This method (or the constant above) should be used when importing dates into definitions to make sure that the dates are displayed as expected in Ucommerce.

Alpha 12

Build 4019

Features

  • Search Adorners are now available. This allows you to add custom data to search models. See Custom Data for more details.

  • It is now possible to create, update, edit, and delete order number series from the Backoffice → Settings app → order number series.

Improvements

  • ElasticSearch Implementation now handles large data sets better.

  • Added logging of execution time for indexing service.

Alpha 11

Build 4017

Features

  • The promotions engine now applies to carts based on the promotions set up in the Backoffice.

  • Changing the priority of campaigns is now undoable.

  • Deleting campaigns is now undoable.

  • The list of campaigns is now searchable.

Bugs

  • Clicking on "create new campaign" to open the modal will now show the loading state until ready.

  • Creating a new campaign from the Backoffice will now have all the required fields marked with "required".

  • Creating a new campaign from the Backoffice will now have fields disabled while sending a POST request.

Other improvements

  • Scratch indexing was slow for categories containing a large number of products.

Alpha 10

Build 4016

Breaking

  • Renamed all pipeline tasks that save changes using the DbContext to "SaveChangesPipelineTask" to keep naming consistent

Features

  • It is now possible to create and replace an Index Definition to configure what information will be indexed to ElasticSearch (e.g., custom definition fields).

  • It is now possible to implement product filtering using Faceted Search based on price or any custom definition field.

  • It's now possible to search for menu items in the settings app, and pressing enter will open the highlighted menu item.

  • It's now possible to see, create, edit, and delete product relations from the Backoffice → Settings app → Product relations menu.

  • For all selectable lists in Backoffice, when we start selecting a row, it will switch to select mode, which means the cursor will change to a check sign, and when clicking any row, it will check/uncheck the row instead of opening the edit page.

Bugs

  • Fixed: When editing order billing or shipping through Backoffice, the country and shipping methods wouldn't show up correctly.

  • Fixed: On the orders app, when a user starts selecting orders to change status, the orders with different statuses should be disabled.

  • Fixed: Product indexer could not find related categories.

  • Fixed: Category indexer could not find related products.

  • Fixed: Product indexer now correctly indexes parent products.

  • Fixed: Existing relations between products and categories when adding a new product to a category would result in duplicates.

  • Fixed: Filtering issue for user-defined multilingual enums when fetching products for indexing.

  • Fixed: User-defined multilingual enums would not be saved correctly when changed in the Backoffice.

Other improvements

  • Fewer database lookups are needed when indexing a category.

Known bugs

  • Product relation names can't be longer than 50 characters. The backend will throw an exception, but the UI doesn't notify the user of the problem.

Alpha 9

Breaking

  • Refactored the UpdateCart pipeline to CalculateCart and SaveOrder pipeline to CalculateOrder - and updated all other pipelines using those

    • Added the possibility to use entities on the inputs instead of entity GUIDs

    • Added the possibility to optionally not save database changes in these pipelines (they always saved before)

Features

  • Added loading and error states to the product app.

  • Search terms, sort options and render types (search or navigate) are part of query params in backoffice (the user is able to share the search result URL)

  • It is now possible to see the price groups menu item in the settings of the backoffice, and a list of price groups when navigating into it.

  • It is now possible to add a new price group directly from the backoffice.

  • It is now possible to delete a list of price groups and undo deletion in the backoffice settings.

  • It is now possible to edit a price group and undo changes when clicking the undo button after editing from backoffice.

  • Improved index consistency using a persistent queue of entities to add/update/remove from the index.

    • Interval/schedule and lock duration for the indexing can be set on SearchOptions. Defaults are 5 seconds (IndexingInterval) and 30 seconds (IndexingLockDuration).

Bugs

  • Fixed an issue from alpha 7, where stripe and adyen definitions were no longer added correctly when migrating from an old database.

Alpha 8

Breaking

  • The authentication changes in this alpha mean you need to update your project, see this gist for details.

Features

Alpha 7

Breaking

  • DefaultRoundingService now uses MidpointRounding.AwayFromZeroinstead of MidpointRounding.ToEven(C# standard). See Midpoint values and rounding conventions for further details

  • IRepository has been removed. Instead, use UcommerceDbContextto interact with EF Core directly

Features

  • It is now possible to create, see, edit, and delete (CRUD) currencies from the backoffice, settings app, and currencies menu.

  • It is now possible to create, see, edit, and delete (CRUD) shipping methods from the backoffice, settings app, and shipping methods menu.

    • It is possible to edit the general properties of a shipping method as well as pricing and restrictions.

  • It is now possible to see and change the image on a payment method through the backoffice (requires custom IImageService).

  • It is now possible to update which pipeline a payment method uses after its creation.

Bugs

  • Custom, non-multilingual definition field updates are now persistent again.

  • Category Search Models list of product IDs now reflects the IDs of the products and not the category product relations.

  • Categories and payment methods now get their display names set in all languages on creation.

  • Categories with "display on site" set to false are not indexed; they are not shown in the indexed products' category list.

  • It is now possible to create a category on the default store again.

  • Changed the name of the category field "Show Prices Including VAT" to "Show Prices Including Tax", and updating the field is now persistent again.

  • When generating promo codes, the amount field is now limited to 6000, just like the API, effectively avoiding a silent fail in the backoffice when going over this limit.

  • A custom definition field on a product definition now correctly defaults to the data type editor instead of an editor property, effectively meaning that the field now appears consistently in the backoffice.

  • Missing Tax Rate and incorrect net price calculated for products. (Thank you Gratsiela!)

  • Better error messages.

  • Better differentiated empty state messages depending on order status for order lines and discounts section.

  • Content Picker Editors: Dynamic rendering of related entity type names in translations, replacing the previous hardcoded “product” label in the sub-header.

  • The item name in the breadcrumbs navigation is truncated now if it's more than 42 characters.

Alpha 5

Main Features

  • The pricing section has been added to the payment method edit page.

  • It is now possible to delete a payment method and undo that deletion.

  • It is now possible to deep link to a product

  • It is now possible to edit the store, country and price group related restrictions on payment methods

Bug fixes

  • Clicking on a product variant now redirects you to it again.

  • Product criteria no longer throws an error when adding a product.

  • "Spend more than" criteria now handles too large numbers properly.

  • Account payment method no longer throws 500 after a fresh install.

  • Display name for categories, catalogs, products and payment methods, can no longer be empty.

  • Updating, adding or deleting an order line now live-updates the log book.

  • Validation errors of Product upon creation is now displayed properly.

  • Dropdown items are now easier to click.

  • Get payment methods method in transaction library now returns hydrated payment method.

  • Get payment methods endpoint in headless now respects price group restriction.

  • Default payment method Account now has the relevant information to function as intended.

  • Removing Display names completely is no longer possible on any Entity through back office.

Alpha 3

Main Features

  • All new Api Acces page for configuring headless properties like client id, client secret, and a list of URIs that should be whitelisted.

  • You can change the client secret for your stores in the UI, granting a much faster headless setup.

  • You can add URLs to your whitelist for headless through the ui, granting a much smoother experience than earlier alpha builds.

  • You can remove URLs from the URL whitelist.

Bug fixes

  • Adding specific discounts to a promotion no longer throws an error.

  • Adding a product to a product criteria no longer throws an error.

  • The country field in the orders app is now more responsive.

  • Create store modal now closes when clicking cancel.

  • Creating a category now normalizes the sort order as expected.

  • Moving a category to another category now sorts them correctly.

  • A negative quantity in AddToCart will decrease the amount on an order line or delete it if the value drops to 0 or below.

  • Variant products will now correctly show in the Backoffice that they inherit parent prices if no prices are set.

  • Store pickers are now reactive; new stores will appear immediately.

  • Deleted stores will immediately be removed from store pickers.

  • Undo button now disappears after deleting an entity.

  • Multiple requests are no longer sent when getting stores on high-resolution devices.

Alpha 2

Main Features

  • Payment Method Settings, the settings area of the backoffice now has a section for configuring your payment methods. It's possible to see payment methods, create new ones, and edit the properties for a payment method.

  • Support for acquiring payments with Stripe as provider.

  • Support for refunding payments with Stripe as provider.

  • Support for cancelling payments with Stripe as provider.

  • New template for an MVC project with Ucommerce with a single index page, scratch indexing and pages for categories, products, adding products as well as viewing and clearing a cart.

Bug fixes

  • It's now possible to change the SKU of a product in backoffice again.

  • Store domain dropdown in backoffice now supports different port numbers.

  • Store domain dropdown in backoffice is no longer triplicated.

  • Creating a cart now includes it's order lines.

  • Re-ordering catalogs and categories no longer throws a server error.

  • It's now possible to change order status from the backoffice again.

  • It's now possible to update the long description on a product in backoffice again.

Last updated