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.
{
"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
ListBlobsForOrder
,ListBlobsForInvoice
,ListBlobsForDocumentation
, ....- 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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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
valueHasReturnLines
(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.