{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-release-notes/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"Release-notes","owner":"MB"},"seo":{"title":"Release notes March 2026","description":"Release notes March 2026","keywords":"release-notes, product-update, features"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"release-notes-march-2026"},"children":["Release notes March 2026"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"notable-features"},"children":["Notable features"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-new-norce-query-is-released-to-production"},"children":["The New Norce Query is released to Production"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The New modernized Query 3.0 API is now released to production. This has a few breaking changes from the old version, so we made it a new major release."," ","Read about how to upgrade to version 3.0 ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/solution-portal/functional-change-upgrade-query-v2-v3"},"children":["here"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-new-product-feed-is-released-to-production"},"children":["The New Product Feed is released to Production"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The New modernized Product Feed is now released to production. All environments will gradually be moved over to the new version."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"norce-checkout---error-transparency-transactions"},"children":["Norce Checkout - Error Transparency (Transactions)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Additional functionality to increase the transparency of the transaction workflows."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Now available in Playground and Stage!"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We've rolled out a new feature that gives you visibility into what's happening behind the scenes in Norce Checkout."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What's new?"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transactions API:"]}," A new API that captures detailed logs for requests flowing through checkout services. Unlike internal logs, these are available to you, filtered by your merchant and channel combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Checkout Admin integration:"]}," Browse and filter transactions directly in Checkout Admin under Events > Transactions in the navigation menu."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Call graph visualization:"]}," Each order view now includes a call graph that lets you follow every call made for that order, making it much easier to trace issues end to end."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These features are live in playground and stage now for evaluation. Let us know if you have questions or feedback!"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"other-patches-and-fixes"},"children":["Other patches and fixes"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"norce-checkout"},"children":["Norce Checkout"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New features:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added Loyalty model to Customer on Norce Checkout Order."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Preserve customer identity fields (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Key"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Code"]},") during customer-changed webhook handling to prevent silent loss of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CustomerId"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CompanyId"]}," on Commerce baskets."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Allow shipping validation to pass for digital-only orders (for example gift cards) where Norce Commerce removes the freight item from the basket but the PSP adapter still provides a shipping entry."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"commerce-admin"},"children":["Commerce Admin"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New features:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricelist:"]}," Added filters for currency, type, sales area, parent, public, favorite, and virtual."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Promotions:"]}," Improved loading performance when viewing promotions with usage statistics."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parametrics:"]}," Fixed incorrect tooltip on the 'Show on text tab' checkbox in parametric edit view."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parametrics:"]}," Fixed misaligned rows in the parametric translation view for List and Multiple list types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricelist Rules:"]}," Fixed an issue where it was not always possible to apply rule changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security:"]}," Improved output encoding in list views and GDPR print."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Event Settings:"]}," Fixed missing tooltips for event settings on CustomerChangedNotification, CompanyChangedNotification, SupplierSkuChangedNotification, SupplierSkuOnHandChangedNotification, and SupplierSkuPriceChangedNotification events."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Event Settings:"]}," Added missing tooltips for tApplicationAccount and tApplicationAccountApplicationRole on the CustomerChangedNotification event settings page."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricing:"]}," Fixed price history change log column name to show the correct field name instead of always showing 'Sale price'."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["General:"]}," Improved error message wording shown to users when an unexpected error occurs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GDPR:"]}," Fixed an issue where it was occasionally not possible to search for orders."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Product Batch Updates:"]}," Fixed an issue where products selected for batch updates were deselected when navigating to a different page in the product listing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Roles:"]}," Fixed issue where a child component could not be inactivated."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"commerce-service"},"children":["Commerce Service"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New features:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Improved background caching performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Price lists now support sales area associations."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["SearchProductsLite & SearchProductsLite2 will now return null on ManufacturerName if a Manufacturer can't be found, rather than failing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Various endpoints have received OpenAPI specification documentation improvements."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed an edge case 500 error in UpdateBasketItemQuantityWithChildren."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed duplicate freight rows appearing in basket responses when using FreightStructure delivery methods."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Client sales area VAT codes are now cached per client for better performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Account password updates now correctly prioritize the new password field."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed an issue where promotion prices could become stale when inserting basket items."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed a crash caused by a type mismatch when loading product relation types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed a crash during payment completion for Collector payments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added missing summary annotations for SearchManufacturers and DeliveryMethods endpoints."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"product-feed"},"children":["Product Feed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Fixed in the modernized version before launch:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ProductStatus now respects the \"Detailed Prices\" setting."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["QuantityBreaks under DetailedPrices in both ProductFeed and ProductStatus now function as expected."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["ProductFeed now returns null instead of empty string for text fields (descriptionHeader, description, subHeader, subDescription, synonyms) when fallback culture values are not used, aligning it with the old feed behavior."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed multipleValues in ProductFeed to include entries with null names, matching the old feed behavior."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Quantity break prices are now rounded to 2 decimal precision, matching the old feed behavior."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed commodityCode returning null instead of empty string to match the old feed behavior."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed historicalBestPrices incorrectly filtering out some entries."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed an issue where product status exports included extra entries in chosenSupplierOnPriceLists caused by volume pricing rows. The field now correctly reflects only base price assignments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed crash when duplicate supplier inventory entries exist. Exports no longer fail when multiple supplier inventory records share the same supplier/warehouse/location. Duplicates are now aggregated (quantities summed, shortest lead time kept)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Status fallback changed from \"Hidden\" to \"Inactive\". Products or variants with an unrecognized status now default to \"Inactive\" instead of \"Hidden\", aligning the new feed with the old one."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["On-hand entries with unknown warehouses are now consistently filtered out across all export types."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"image-service"},"children":["Image Service"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fixed image upload by removing decoding of content-type headers."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"management-api"},"children":["Management API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bug fixes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Parametric List Values (PUT /parametric/{id}/list): Fixed an issue where parametric list values for the primary language culture were left blank when sending multiple translations."]}]}]},"headings":[{"value":"Release notes March 2026","id":"release-notes-march-2026","depth":1},{"value":"Notable features","id":"notable-features","depth":2},{"value":"The New Norce Query is released to Production","id":"the-new-norce-query-is-released-to-production","depth":3},{"value":"The New Product Feed is released to Production","id":"the-new-product-feed-is-released-to-production","depth":3},{"value":"Norce Checkout - Error Transparency (Transactions)","id":"norce-checkout---error-transparency-transactions","depth":3},{"value":"Other patches and fixes","id":"other-patches-and-fixes","depth":2},{"value":"Norce Checkout","id":"norce-checkout","depth":3},{"value":"Commerce Admin","id":"commerce-admin","depth":3},{"value":"Commerce Service","id":"commerce-service","depth":3},{"value":"Product Feed","id":"product-feed","depth":3},{"value":"Image Service","id":"image-service","depth":3},{"value":"Management API","id":"management-api","depth":3}],"frontmatter":{"seo":{"description":"Release notes March 2026","keywords":"release-notes, product-update, features","title":"Release notes March 2026"},"metadata":{"redocly_category":"Release-notes","owner":"MB"}},"lastModified":"2026-04-07T14:21:19.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/release-notes/2026/release-notes-march-2026","userData":{"isAuthenticated":false,"teams":["anonymous"]}}