Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.725

February 20, 2024

Released on all test and acceptance environments on February 20, 2024

Will be released to production in EUW and ASE on February 26, 2024*

Will be released to production in CUS on February 27, 2024*


release notes image

Breaking

✅ Temporary password notifications

From this release onward, we will be notifying users by email when a temporary token has been created for their account.

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.

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:

Available data

{ Discount: {
BackendID: "D-3532"
StartDate: "2024-01-01",
EndDate: "2025-01-01",
Enabled: true,
LayerID: 2,
Trigger: 0
}
}

Script example

{
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 and UpdateManualTaxExemptionReason;
    • This property is stored in the TaxExemptionReason data model;
  • RequiresVerification is now included in the response objects for ListManualTaxExemptionReasons and GetTaxExemptionReasons.

🆕 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

Export sample

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