Specific topic
✅ Norwegian Certified receipt Stencil
The CertifiedReceipt stencil for Norway has seen some small layout changes to make it more consistent with other countries.
Details
The font size of the receipt title "Salgskvittering" has been changed from 2.2 to 1.0, and its position on the receipt is now below the word "Foretaksregisteret".
✅ Preventing invalid transfer orders
In case of returns where two OUs (the original SoldFrom OU and the OU processing the return order) fall under companies that share the same TaxID / VatNumber OR have the same Company if no TaxID is set, you can now optionally prevent the creation of transfer orders.
You can do so by setting Orders:Returns:UseTransferOrderForIntraCompanyReturns
explicitly to false.
✅ MagicLink
We've made using MagicLink more secure by adding two new settings. The use of these helps prevent a theoretical kind of misuse via the impersonation of other people.
Details
MagicLink:Enabled
- defaults to true and can be used to turn off this feature entirely.MagicLink:RedirectDomains
- this can be used to configure the (sub)domains which are allowed to be used as RedirectUrl. If this setting is not configured, we allow all domains.
We advise to either turn off MagicLink via the first setting, or to add specifically allowed domains to make it more secure.
While the necessary service infrastructure is in place for you to make use of MagicLink as you wish, EVA itself currently only uses the MagicLink feature in the Return portal.
🆕 Custom fields in promotions
We've made several changes to allow for the use of custom fields in promotions, including a new variant on the CustomFieldEligibility extension points called DiscountCustomFieldEligibility.
Details
You can now manage custom fields via the CreateDiscount
and UpdateDiscount
services. Validation occurs similarly to other custom field types and is included in ValidateDiscount
as well.
Custom fields are returned via the usual CustomFieldValuesWithOptions in GetDiscountByID
as well as services that expose the PrefigureDiscountResult
.
There is a custom field eligibility extension point for discounts. For now, this only exposes basic discount info:
{ Discount: {
BackendID: "D-3532"
StartDate: "2024-01-01",
EndDate: "2025-01-01",
Enabled: true,
LayerID: 2,
Trigger: 0
}
}
{
extend DiscountCustomFieldEligibility
if (Discount.Enabled) and
(Discount.BackendID.Contains with Value 'NewBlack') and
(Discount.StartDate > Date with Year 2024, Month 1, Day 1) and
(Discount.EndDate < Date with Year 2025, Month 1, Day 1) and
(CustomFieldBackendID = 'NB-DISCOUNTCUSTOMFIELDELIGIBILITY') then
set output.IsRequired to true
end
}
🆕 Tax exemption improvements
We've made several changes for tax exemption situations, which will allow for better capture of the exemption reasons in the front ends.
Details
The following changes to services were made:
- We added a new property called TaxExemptionVerification to
ExemptOrderFromTax
service;- This property is stored in both OrderLine and Order data models;
- When calling the
GetOrder
service, the TaxExemptionVerification will be available on the order line; - We added a boolean property called RequiresVerification to both
CreateManualTaxExemptionReason
andUpdateManualTaxExemptionReason
;- This property is stored in the TaxExemptionReason data model;
- RequiresVerification is now included in the response objects for
ListManualTaxExemptionReasons
andGetTaxExemptionReasons
.
🆕 Wishlist in Event exports and Data lake
Wishlist has been added as a possible target in event exports and as a new Data lake data pack.
Event exports
The new event export target has the following types:
- created
- updated
- deleted
- product_added
- product_removed
{
WishlistID: 5, // number
WishlistName: "My wishlist", // string
WishlistBackendID: "my-wishlist", // string
UserID: 1066, // number
MutationTime: "2024-02-16T08:55:49.6919793Z", // datetime
MutatedProducts: [5, 6, 9] // number array
}
Data lake
The following properties are exported to data lake:
- GenerationTime
- ID
- Name
- Description
- BackendID
- UserID
- LastReadTime
- Products
- CustomFields
This data lake export does not have to be manually added by means of a cron task, and is instead triggered based on changes to the wishlist.
The new file path: /wishlists/Year/Month/Day
✅ Reverting hiding of prices
In Core drop 2.0.714 we introduced the hiding of prices based on based on users' functionalities. This was locked behind the setting EnablePriceViewingFunctionalitiesOnOrder
, which would have to be set to true.
We are reverting this change for now, due to it affecting other parts of EVA in undesired ways, while we think of better ways to manage sensitive information.
🆕 AppTokens for accessing orders
We have created a new service, called CreateOrderAppToken
, which will allow orders (without attached customers) to be viewed by the customer later on.
Details
CreateOrderAppToken
will explicitly set and return an AppToken to an order, allowing anyone with that token to see and access that order - which is exactly like the mechanism already used for anonymous order access.
You can then use this token in an EVA-App-Token
request header when calling AttachCustomerToOrder
from a customer context to be granted access. This is only possible if there is no customer attached to this order yet.
There is no expiration on this token.
Properties
🆕 New properties in PushUserBoughtProduct
We've added several new properties to the PushUserBoughtProduct
service.
Details
- IsUnderWarranty
- WarrantyExpiryDate
- AdditionalWarrantyInfo
- Archive
If Archive is set to true, then the user bought product will be archived, meaning it's no longer visible in the ListUserBoughtProducts
and not returned in GetUserBoughtProduct
.
🆕 IsSingleSignOnOnly in Createcustomer
The Createcustomer
service call now has the User.IsSingleSignOnOnly property, making it possible to prevent the user from using any other login methods than the configured single sign on provider.
✅ ZReport in POS
In Drop 69 the ZReport will become printable from within the POS's reports section. To facilitate this, we're reverting a previous deprecation on DocumentID in the PrintTerminalReport
service. Additionally, the service's current XReport filter will be extended with the ZReport.
Services
✅ Stock label services
We are making several changes to our services pertaining to stock labels. These changes will allow for a new and improved Stock label UI in Admin Suite which will better incorporate inherited stock labels and make it easier to make changes for multiple features at once.
Check out the back-end changes below, or our updated Stock labels documentation.
Details
We're deprecating the following services:
SetStockLabelSetting
GetStockLabelSettings
We're adding the following services:
GetStockLabelsForFeature
- This returns all stock labels with a feature of your choice for a single organization unit
GetStockLabelSettingsForLabel
- This works the other way around: select a stock label to see on what OU it has which feature
Fixes
- The orders responsible for committed stock will now be properly displayed in the Related orders in the Overview and mutations chapter and the Availability chapter.
- The
EnumValues
service did not play nice with product requirements for a short amount of time. - The Sorting of expected goods based on expected delivery date was not working as intended and has been fixed.
shipments that have the property ExpectedDeliveryDate will now have its shipments returned in chronological order, with the earliest shipments on top, and the ones furthest in the future on the bottom - it was actually fixed since Core drop 723
- The App filter in
ListAppSettings
now also handles a null value.
Deprecations
🆕 Introduced
These deprecations are now announced for the first time. Usage of these services and/or fields will return the appropriate EVA-Warnings
header.
Deprecated
High
- High ManualUserIdentifiers is deprecated and will be removed in 2.0.750: Cannot change subscription identifier policy.
- UpdateSubscription
- High UserIdentifierPrefix is deprecated and will be removed in 2.0.750: Cannot change subscription identifier policy.
- UpdateSubscription
- High UserIdentifierSuffix is deprecated and will be removed in 2.0.750: Cannot change subscription identifier policy.
- UpdateSubscription
- High UserIdentifierStartNumber is deprecated and will be removed in 2.0.750: Cannot change subscription identifier policy.
- UpdateSubscription
- High EVA.Core.Services.Management.Discounts.GetDiscountCoupons is deprecated and will be removed in 2.0.750: Use ListCouponsByQuery instead.
- GetDiscountCoupons
- High Options is deprecated and will be removed in 2.0.750: Moved to RequirementOptions.
- UpdateProductRequirement
- High Options is deprecated and will be removed in 2.0.750: Moved to RequirementOptions.
- CreateProductRequirement
- High Details.Corrections.StockMutation.OrderLine.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- GetFinancialPeriodDetailsResponse.Details.Corrections.StockMutation.OrderLine.HasHiddenPrices
- High EVA.Core.Services.Stock.GetStockLabelSettings is deprecated and will be removed in 2.0.757: Use GetStockLabelSettingsForLabel instead.
- GetStockLabelSettings
- High EVA.Core.Services.Stock.SetStockLabelSetting is deprecated and will be removed in 2.0.757: Use SetStockLabelSettings instead.
- SetStockLabelSetting
- High Order.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- CreateOrderFromShoppingCartResponse.Order.HasHiddenPrices
- High Order.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- CreateOrderFromShoppingCartResponse.Order.Lines.HasHiddenPrices
- High Result.Children.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- GetRelatedOrderLinesResponse.Result.Children.HasHiddenPrices
- High Result.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- CreateOrderLineUnitPriceCorrectionResponse.Result.HasHiddenPrices
- GetOrderResponse.Result.HasHiddenPrices
- GetRelatedOrderLinesResponse.Result.HasHiddenPrices
- EVAPayGetInfoResponse.Result.HasHiddenPrices
- High Result.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- GetOrderResponse.Result.Lines.HasHiddenPrices
- EVAPayGetInfoResponse.Result.Lines.HasHiddenPrices
- High Result.Order.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- GetStockReservationTaskResponse.Result.Order.HasHiddenPrices
- High Result.Order.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- GetStockReservationTaskResponse.Result.Order.Lines.HasHiddenPrices
- High Result.Page.Children.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ListOrderLinesInvoiceSummaryResponse.Result.Page.Children.HasHiddenPrices
- High Result.Page.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ListOrderLinesInvoiceSummaryResponse.Result.Page.HasHiddenPrices
- ListOrderLinesResponse.Result.Page.HasHiddenPrices
- ListOrdersForCustomerResponse.Result.Page.HasHiddenPrices
- SearchOrdersResponse.Result.Page.HasHiddenPrices
- High Result.Page.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ListOrdersForCustomerResponse.Result.Page.Lines.HasHiddenPrices
- High Result.Page.OrderLine.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ListStockMutationsResponse.Result.Page.OrderLine.HasHiddenPrices
- High Result.Page.StockMutation.OrderLine.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ListBookingsResponse.Result.Page.StockMutation.OrderLine.HasHiddenPrices
- High Result.Page.UnitPriceInTax is deprecated and will be removed in 2.0.757: Use
Amount
..- ListShippingCostsResponse.Result.Page.UnitPriceInTax
- High ShoppingCart.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ShoppingCartResponse.ShoppingCart.HasHiddenPrices
- High ShoppingCart.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- ShoppingCartResponse.ShoppingCart.Lines.HasHiddenPrices
- High Task.Lines.OrderLine.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- StartReservationCleanupResponse.Task.Lines.OrderLine.HasHiddenPrices
- High Task.Order.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- StartReservationCleanupResponse.Task.Order.HasHiddenPrices
- High Task.Order.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- StartReservationCleanupResponse.Task.Order.Lines.HasHiddenPrices
- High UnitPriceInTax is deprecated and will be removed in 2.0.757: Use
Amount
..- CreateShippingCost.UnitPriceInTax
- GetShippingCostByIDResponse.UnitPriceInTax
- UpdateShippingCost.UnitPriceInTax
- High WorkSet.Order.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- StartStockReservationResponse.WorkSet.Order.HasHiddenPrices
- High WorkSet.Order.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- StartStockReservationResponse.WorkSet.Order.Lines.HasHiddenPrices
- High WorkSet.Orders.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- CompleteReservationDeviationTask.WorkSet.Orders.HasHiddenPrices
- StartReservationDeviationTaskResponse.WorkSet.Orders.HasHiddenPrices
- High WorkSet.Orders.Lines.HasHiddenPrices is deprecated and will be removed in 2.0.757: No longer supported.
- CompleteReservationDeviationTask.WorkSet.Orders.Lines.HasHiddenPrices
- StartReservationDeviationTaskResponse.WorkSet.Orders.Lines.HasHiddenPrices
Release dates may vary
The exact date for deploying a Core release to production environments may vary. See How we handle Core releases for more details.