Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.706

September 19, 2023

Released on all test and acceptance environments on September 19, 2023

Will be released to production in EUW and ASE on September 25, 2023*

Will be released to production in CUS on September 26, 2023*


release notes image

Breaking

No breaking changes.

Added

LoyaltyProgram event

We've added a new Target to the event exports called LoyaltyProgram.

Expand the following section for its types and data.

Additional information
{
"EventTypes": [
"withdrawn",
"refunded",
"deposited",
"revoked"
]
}

And as for an example of the data that can be contained in the event:

{
"UID":"4b234d27b-asdf2-46432-sdf0-5324324sds",
"CreationTime":"2023-08-10T14:43:04.759Z",
"TimeZone":"Europe/Amsterdam",
"Target":"LoyaltyProgram",
"EventType":"deposited",
"Identifier":"1232-1b-deposited",
"BackendID":null,
"BackendSystemID":null,
"Region":"euw",
"Data":{
"LoyaltyProgramID":11,
"LoyaltyProgramBackendID":"OPTR-LoyaltyProgram",
"OrderID":19204,
"UserID":507,
"UserBackendID":"5001225",
"PointMutation":0
}
}

Mind that the Subscription is already available as part of the Customer event.

Cases

We now expose CreatedBy/ModifiedBy information and timestamps for Cases.

Response sample

{
"ID": 237,
"CreationTime": "2023-08-07T07:24:28.14Z",
"LastModificationTime": "2023-08-07T07:24:28.317Z",
"CreatedBy": {
"ID": 490,
"FirstName": "John",
"LastName": "Doe",
"FullName": "John Doe"
},
"LastModifiedBy": {
"ID": 490,
"FirstName": "John",
"LastName": "Doe",
"FullName": "John Doe"
},
// ...
}

Additionally, case topics, statuses, and interactions now allow for a BackendID

CreateCaseTopic sample

{
"Name": "Damaged",
"BackendID": "damaged-external"
}

Customer object to non-certified invoice template

Non-certified receipt and invoice stencil templates now include the following customer object:

Customer object

Thermal receipt

"Customer": {
"DisplayName": "string",
"FirstName": "string",
"LastName": "string",
"TaxRegistrationNumber": "string",
"RegistrationNumber": "string",
"EmailAddress": "string",
"PhoneNumber": "string",
"BillingAddress": {
"Name": "string",
"Address1": "string",
"Address2": "string",
"HouseNumber": "string",
"City": "string",
"ZipCode": "string",
"CountryID": "string",
"District": "string",
"SubDistrict": "string"
},
"ShippingAddress": {
"Name": "string",
"Address1": "string",
"Address2": "string",
"HouseNumber": "string",
"City": "string",
"ZipCode": "string",
"CountryID": "string",
"District": "string",
"SubDistrict": "string"
}
}

Invoice

"Company": {
"ID": "int",
"Name": "string",
"RegistrationNumber": "string",
"FiscalID": "string",
"VatNumber": "string",
"PhoneNumber": "string",
"Email": "string",
"BankAccount": "string",
}

"Customer": {
"ID": "int",
"CompanyName": "string",
"FullName": "string",
"FirstName": "string",
"LastName": "string",
"RegistrationNumber": "string",
"VatNumber": "string",
"BankAccount": "string",
"EmailAddress": "string",
"PhoneNumber": "string",
"BackendRelationID": "string",
"PaymentTerms": "string",
"FiscalID": "string",
"LanguageID": "string",
"CountryID": "string",
"CocNumber": "string",
"MobilePhoneNumber": "string",
"HomePhoneNumber": "string"
},
"BillingAddress": {
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"EmailAddress": "string",
->"HouseNumber": "string",
->"Address1": "string",
->"Address2": "string",
->"ZipCode": "string",
->"Subdistrict": "string",
->"District": "string",
->"City": "string",
"State": "string",
"ZipCodeAndCity": "string",
->"CountryID": "string",
"AddressedTo": "string",
},
"ShippingAddress": {
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"EmailAddress": "string",
->"HouseNumber": "string",
->"Address1": "string",
->"Address2": "string",
->"ZipCode": "string",
->"Subdistrict": "string",
->"District": "string",
->"City": "string",
"State": "string",
"ZipCodeAndCity": "string",
->"CountryID": "string",
"AddressedTo": "string",
}

Other additions

  • We added the new custom field structure in the UserDto & AdditionalOrderData objects.
  • We've added the RebalanceLoyaltyPoints service to allow rebalancing of a user's loyalty points.

    see the Rebalance loyalty points docs for more information

  • SearchOrders now contains a new property called HasPriceCorrection.

    back-end work to allow for filtering on orders which had a price correction

Improved

Stock labels

We've completely reworked the way we configure stock labels. We're moving away from the currently used specific settings and instead using a combination of new services which allow for much clearer and more detailed management of your labels.

Removed and migrated settings

The following settings were used to specify what was allowed for which labels, such as Demo being an Adjustable label.

  • Stock:SellableSourceStockLabels
  • Orders:Returns:AlwaysReturnToSellable
  • Orders:Returns:AlwaysIncludeDamagedLabel
  • CycleCount:StockLabels

Your configuration should however remain the same, since the removal of these settings includes a migration to the new services.

New services

GetStockLabelSettings

This service is used to check what is configured per OU/StockLabel/Feature combination and whether it is enabled or disabled. But let's first dive into what those combinations entail in detail.

With feature, we mean what is possible for a label. I.e. moving or selling of a label for example. The following features are possible:

  • Sellable = 0
  • Movable = 1
  • Adjustable = 2
  • Returnable = 3
  • CycleCountable = 4
  • IncludeInFullStockCount = 5 - Note that this one is new: this was not configurable before.

Now the following sample will show this one in use, with the first few entries showing how our StocklabelID 1 / Sellable makes use of each feature. I.e. Sellable stock can be sold, moved, adjusted, etc.

GetStockLabelSettings sample

{
"StockLabelSettings": [
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 5,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 4,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 3,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 2,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 1,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 1,
"Feature": 0,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 2,
"Feature": 4,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 4,
"Feature": 2,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 4,
"Feature": 1,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 4,
"Feature": 3,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 8,
"Feature": 4,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 8,
"Feature": 2,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 8,
"Feature": 1,
"Enabled": true
},
{
"OrganizationUnitID": -1,
"StockLabelID": 129,
"Feature": 1,
"Enabled": true
}
]
}

SetStockLabelSetting

You can use SetStockLabelSetting to actually configure your new combinations. The service take sthe following properties:

  • OrganizationUnitID
  • StockLabelID
  • Feature
  • Enabled (true / false)

If you want to reset it, you can specify a null value to make it inherit its parameters from the parent. If no settings are present, it will default to false.

Do note however that regardless of your configurations, there are cases in which EVA will overrule them. These are only cases where having them configured any other way than EVA prescribes would be illogical, for example having the stocklabel Transit with the IncludeInFullStockCount feature.

Minor improvements

  • The RetryInvoiceExport service now allows for retrying multiple invoices at the same time by means of the InvoiceExportIDs property.

Fixed

  • Authorization reversals after a non-captured payment during a fraud check will no longer block you from initiating a new payment.
  • We fixed an issue where an unsuccessful payment transaction in EVA Pay, followed by an immediate retry within EVA Pay, lead to the transaction skipping the fraud check.
  • Require a VisibilityGroup when updating it with a service, instead of throwing an error.
  • Push user with subscription with balance threw an error.
  • Return multiple loyalty details on the same line & use max discount usage.
  • Block point deposits from no longer paid event & take into account rule active interval.
  • Fix PendingReturnPeriod policy, and set correct policy types.
  • Mapping of configurable bundle product.
  • Fix IsCompleted check on Orders.
  • Allow employees to be created in VGs where AllowStandardAccounts is disabled.
  • OrderLineVariable.OrignalOrder was not being fetched.
  • Transfer order currency fix.
  • Revoke all loyalty points on full return.
  • Improved ShippedFrom guessing.
  • Speed up get_shipment_line_children.
  • Use the actual VG from the context to check for existing Users.
  • Set correct unit cost for WAC.
  • We shouldn't set the orderline fulfillment status if you don't update the fulfillment line status.
  • Shouldn't rely on OrderLine.FulfillmentStatus when deciding about orchestration.
  • Ignore lines that have a length of 0.
  • Set product claiming rule condition and elect best point value rule.
  • Prevent duplicate addresses.

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

  • Medium AdditionalOrderData.CustomerCustomFields is deprecated and will be removed in 2.0.722: Use CustomerCustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.AdditionalOrderData.CustomerCustomFields
    • GetOrderResponse.AdditionalOrderData.CustomerCustomFields
  • Medium AvailableTasks.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListAvailableUserTasksResponse.AvailableTasks.User.CustomFields
  • Medium Details.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetUserTaskDetailsResponse.Details.User.CustomFields
  • Medium Employees.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListClockedInEmployeesForFinancialPeriodResponse.Employees.User.CustomFields
  • Medium Order.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • CreateOrderFromShoppingCartResponse.Order.CreatedBy.CustomFields
  • Medium Order.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • CreateOrderFromShoppingCartResponse.Order.Customer.CustomFields
  • Medium Result.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetOrderResponse.Result.CreatedBy.CustomFields
    • EVAPayGetInfoResponse.Result.CreatedBy.CustomFields
  • Medium Result.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetOrderResponse.Result.Customer.CustomFields
    • EVAPayGetInfoResponse.Result.Customer.CustomFields
  • Medium Result.Order.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetStockReservationTaskResponse.Result.Order.CreatedBy.CustomFields
  • Medium Result.Order.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetStockReservationTaskResponse.Result.Order.Customer.CustomFields
  • Medium Result.Page.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListOrdersForCustomerResponse.Result.Page.CreatedBy.CustomFields
    • ListReplenishmentProposalsResponse.Result.Page.CreatedBy.CustomFields
  • Medium Result.Page.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListOrdersForCustomerResponse.Result.Page.Customer.CustomFields
  • Medium Result.Page.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListSalaryComponentsResponse.Result.Page.User.CustomFields
  • Medium ShoppingCart.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.ShoppingCart.CreatedBy.CustomFields
  • Medium ShoppingCart.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.ShoppingCart.Customer.CustomFields
  • Medium Task.Order.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Order.CreatedBy.CustomFields
  • Medium Task.Order.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Order.Customer.CustomFields
  • Medium Tasks.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListTasksThatBlockPeriodClosingResponse.Tasks.User.CustomFields
  • Medium User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • LoginResponse.User.CustomFields
    • CreateCustomerResponse.User.CustomFields
    • GetCurrentUserResponse.User.CustomFields
    • RitualsScanLoyaltyCardResponse.User.CustomFields
  • Medium UserCard.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetUserCardDetailsResponse.UserCard.User.CustomFields
  • Medium UserCards.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • GetUserCardsForUserResponse.UserCards.User.CustomFields
  • Medium Users.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListUsersWithBadgesByIDsResponse.Users.CustomFields
    • ListEmployeesForOrganizationUnitResponse.Users.CustomFields
  • Medium WorkedHours.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • ListWorkedHoursForCurrentEmployeeResponse.WorkedHours.User.CustomFields
  • Medium WorkSet.Order.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • StartStockReservationResponse.WorkSet.Order.CreatedBy.CustomFields
  • Medium WorkSet.Order.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • StartStockReservationResponse.WorkSet.Order.Customer.CustomFields
  • Medium WorkSet.Orders.CreatedBy.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • CompleteReservationDeviationTask.WorkSet.Orders.CreatedBy.CustomFields
    • StartReservationDeviationTaskResponse.WorkSet.Orders.CreatedBy.CustomFields
  • Medium WorkSet.Orders.Customer.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • CompleteReservationDeviationTask.WorkSet.Orders.Customer.CustomFields
    • StartReservationDeviationTaskResponse.WorkSet.Orders.Customer.CustomFields
  • Medium WorkSet.UserTask.User.CustomFields is deprecated and will be removed in 2.0.722: Use CustomFieldValuesWithOptions instead..
    • CompleteCustomerInteractionTask.WorkSet.UserTask.User.CustomFields
    • StartCustomerInteractionTaskResponse.WorkSet.UserTask.User.CustomFields

⚡ Removed from typings

These deprecations are now halfway through their deprecation timeline. As of now, these services and/or fields will no longer be exposed by our typings.

Deprecated

High

  • High EVA.Blobs.Services.ListBlobs is deprecated and will be removed in 2.0.722: Blobs can no longer be listed generically - use specific services like ListBlobsForOrderListBlobsForInvoiceListBlobsForDocumentation, ....
    • ListBlobs

Medium

  • Medium CreatedTransactions.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • RefundOrderResponse.CreatedTransactions.CustomFields
  • Medium Details.Corrections.PaymentTransaction.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.PaymentTransaction.CustomFields
  • Medium IdentifierCustomFieldID is deprecated and will be removed in 2.0.714: Custom fields cannot be updated after create.
    • UpdateSubscription.IdentifierCustomFieldID
  • Medium Order.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • CreateOrderFromShoppingCartResponse.Order.HasReturns
  • Medium Order.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • CreateOrderFromShoppingCartResponse.Order.Payments.CustomFields
  • Medium PaymentTransaction.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • CapturePaymentResponse.PaymentTransaction.CustomFields
    • CreatePaymentResponse.PaymentTransaction.CustomFields
    • FinalizePaymentResponse.PaymentTransaction.CustomFields
    • GetPaymentTransactionResponse.PaymentTransaction.CustomFields
    • GetPreferredRefundMethodResponse.PaymentTransaction.CustomFields
    • RequestPaymentUpdateResponse.PaymentTransaction.CustomFields
  • Medium PaymentTransactions.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • CreatePaymentResponse.PaymentTransactions.CustomFields
    • CreateRefundResponse.PaymentTransactions.CustomFields
    • GetPaymentTransactionsResponse.PaymentTransactions.CustomFields
  • Medium Result.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • GetOrderResponse.Result.HasReturns
    • EVAPayGetInfoResponse.Result.HasReturns
  • Medium Result.Order.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • GetStockReservationTaskResponse.Result.Order.HasReturns
  • Medium Result.Order.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • GetStockReservationTaskResponse.Result.Order.Payments.CustomFields
  • Medium Result.Page.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • ListOrganizationUnitsDetailedResponse.Result.Page.CustomFields
  • Medium Result.Page.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • ListOrdersForCustomerResponse.Result.Page.HasReturns
  • Medium Result.Page.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • ListOrdersForCustomerResponse.Result.Page.Payments.CustomFields
  • Medium Result.Page.PaymentTransaction.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.PaymentTransaction.CustomFields
  • Medium Result.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • GetOrderResponse.Result.Payments.CustomFields
    • EVAPayGetInfoResponse.Result.Payments.CustomFields
  • Medium ShoppingCart.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • ShoppingCartResponse.ShoppingCart.HasReturns
  • Medium ShoppingCart.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.ShoppingCart.Payments.CustomFields
  • Medium Task.Order.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • StartReservationCleanupResponse.Task.Order.HasReturns
  • Medium Task.Order.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Order.Payments.CustomFields
  • Medium WorkSet.Order.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • StartStockReservationResponse.WorkSet.Order.HasReturns
  • Medium WorkSet.Order.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • StartStockReservationResponse.WorkSet.Order.Payments.CustomFields
  • Medium WorkSet.Orders.HasReturns is deprecated and will be removed in 2.0.714: Use the new Properties value HasReturnLines (131072).
    • CompleteReservationDeviationTask.WorkSet.Orders.HasReturns
    • StartReservationDeviationTaskResponse.WorkSet.Orders.HasReturns
  • Medium WorkSet.Orders.Payments.CustomFields is deprecated and will be removed in 2.0.714: Use CustomFieldValuesWithOptions instead..
    • CompleteReservationDeviationTask.WorkSet.Orders.Payments.CustomFields
    • StartReservationDeviationTaskResponse.WorkSet.Orders.Payments.CustomFields




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.