Product upgrade - changed behaviour of Storm API upgrade to Norce Commerce Services
Last changed: 2025-08-20
A list of behaviour discrepances between old service and new
Background
To make use of moder infrastructure in our cloud native environment our services needs to get an upgrade if its technology stack. This has a a consequence that some error messages and other outlying behaviour is different. We foresee no major problem for our clients by this, but we note all our findings here for your convienience.
Changes
FilterItems
The filter item (product filters) has a built-in field "type", that the jsonserializer handles differently in the new .net service.
The old one has it named "__type" with a longer name and the new calls it "$type" with a short name. The field is created by the serializer and cannot be easily changed, but we expect it pose not big problem for the clients.
Example 1.1 - Old service
{
"__type": "FilterItem:Enferno.Services.Contracts.Expose.Products",
"Id": "11",
"Name": "Chain saws",
"Value": "11",
"Type": null,
"Uom": null,
"Count": 1,
"Description": null,
"Code": null,
"SortOrder": null
}
Example 1.2 - New service
{
"$type": "FilterItem",
"Id": "11",
"Name": "Chain saws",
"Value": "11",
"Type": null,
"Uom": null,
"Count": 1,
"Description": null,
"Code": null,
"SortOrder": null
}
API Calls
- ListProductFilters
- ListProductFiltersByIds
- ListProductFiltersByCustomer
- ListProductFiltersByPriceList
Wrong Status Code
New service returns 204 No content instead of 200 OK, when there is no result on a search or listing call and no data in body.
API Calls
- Search and listings
- Get (when no item exists)
AsVariants (on filters)
AsVariants is not used by filter methods and is removed from new service.
API Calls
- ListProductFilters
- ListProductFiltersByIds
- ListProductFiltersByCustomer
- ListProductFiltersByPriceList
Row notations
The new service uses linux components and will return result based on unix line breaks standards where applicable. This means that the old service returns \r\n but the new will return \n.
Occurence
- HTML-formated texts
- HTML-formated text parametrics
- Description fields, like payment method description on checkout objects.
- Similar description fields
Error Code result messages
Some of the results returned by web host are different, for example 401 Unauthorized. The .net 9 version gives out more information about the error, while the old version just returns a generic html formatted response from the web server.
Example 2.1 - Old service

Example 2.2 - New service
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.2",
"title": "Unauthorized",
"status": 401,
"traceId": "00-9842cf3cf079f14972ee3fb677eea195-990d598e9a426d98-01"
}
Example 3.1 - Old service

Example 3.2 - New service
{
"title": "Invalid header",
"status": 401,
"detail": "Header ApplicationId is missing."
}
Invalid format
According to all our logs, no-one uses xml anymore, so we have removed the format parameter and JSON is always returned.
Return empty value
Empty result is returned differently. Old service returns empty object {}, but new service will return null.
This is because the serializer works differently.
Occurence
Get methods, list and search methods
- GetCompanyByOrgNo
- SearchOrder
- among others