Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.716

November 28, 2023

Released on all test and acceptance environments on November 28, 2023

Will be released to production in EUW and ASE on December 4, 2023*

Will be released to production in CUS on December 5, 2023*


release notes image

Word in advance

🔑 Core drop notes structure

In our continuous effort to make our Core Drop more easily digestible, we've made the following changes to its format:

  • We try to categorize all drop entries as best we can by the closest common denominator, e.g. Extension point entries, or Services. This will make it a little easier for you to discern what's important to you.
  • Although the difference can be subtle, we try and categorize the entries on whether they're new additions 🆕 or improvements ✅
  • The introductory text for each entry will be more concise, with Detailed information available via the Expansion bar.

Breaking

No breaking changes.

Event exports

🆕 Triggering Event exports

Calling the following services will now trigger a corresponding event export for the LoyaltyProgram Target:

  • DepositLoyaltyPoints
  • WithdrawLoyaltyPoints
  • RebalanceLoyaltyPoints

Details

Here's an example of the event being triggered:

{
“UID”:“155c86d3-6f1d-41cc-b9a1-de06a2ea8cb3",
“CreationTime”:“2023-03-24T08:23:50.1393393Z”,
“TimeZone”: null,
“Target”:“LoyaltyProgram”,
“EventType”:“deposited”, // or withdrawn/refunded/revoked
“Identifier”:1322-deposited,
“LoyaltyProgramBackendID”:“LP-1",
“LoyaltyProgramID”: 1,
“OrderID”: 1234,
“PointMutation”: 50,
“Region”:“euw”,
}

In this case the trigger of the event, and its consequent EventType is based on the following logic:

  • If the original number of points is larger than the number of points deposited, the EventType is Withdrawn, and if smaller: Deposited.
  • And in case of the Rebalance service: if the original number of points equals the new number of points, the event is not triggered.

🆕 CustomOrderType in EventExport extension point

Aside from CustomOrderStatus, the extension point EventExports now also supports the CustomOrderType.

Other topics

✅ Riskified

We've implemented several changes to Riskified's JSON export.

Details
  • Discount codes are now mapped, and the BackendID is exported. In cases where the BackendID is not set, there's a fallback to the EVA ID.
  • Negative amounts are exported as positive to align with Riskified's handling of values.
  • The cardholder name no longer appears in the exported JSON.
  • Customer.Addressbook is now mapped as Phone.Addressbook, including billing and shipping addresses. If the customer does not have a phone number, the exported JSON will not contain any phone numbers.
  • The JSON structure was refined to align with Riskified's preferences.

🆕 Vertex

We've integrated Vertex to assist you in staying tax compliant in your operating countries. Check our docs on Vertex on how to set it up for your businesses.

🆕 New monitor

We've added an additional handler for monitoring failed settlement files: PaymentSettlementFiles.

This will make its way to the Admin Suite soon.

Addition 07-12-23: Template required

In order to send the mail, the PaymentSettlementFileMonitorNotificationor template needs to be configured.

🆕 Default workspaces for roles

We've done the back-end work for another great feature which will make working with Admin Suite's Orders chapter much easier: default workspaces.

To give some practical insight in how this will help is by considering the role of "Customer Service Agent Marketplaces" for example, which would be a role that benefits from a specific default overview such as including Marketplace Order IDs and excluding Carry-out orders. Similarly, a "Finance Agent" would prefer seeing particular payment states while a regular store employee should by default see only orders done from their store.

All of these workspaces will take into account the CurrentOrganizationUnit of the logged in user and the users' permissions (displaying only the orders sold, shipped and picked from the store they are allowed to see).

Details
  • Added a new service: SetDefaultSharedWorkspaceForRoles. This will allow for setting and unsetting a default shared workspace for multiple roles.
  • ListSharedWorkspacesResponse and GetSharedWorkspaceByIDResponse now have IsAllowedToEdit boolean (based on if the workspace is owned by the user).
  • ListSharedWorkspacesFilter now has the property RoleID.
  • GetSharedWorkspaceByIDResponse Roles has been deprecated and RolesWithDefault has been added → this lets you see if a role is default or not for a specific shared workspace.

Properties and services

✅ Improving RTS requests

In order to only return RTS requests for full OU set matches, we've added an OuSet filter to the ListReturnToSupplierRequests service.

✅ Additional shipping information

You can now get all sorts of shipping information via the GetShoppingCart service call, including minimum amounts and free shipping thresholds.

Details
{   
"OrderID": 31581,
"AdditionalOrderDataOptions": {
"IncludeAvailableShippingMethods": true
}
}
{
"OrderID": 31581,
"AdditionalOrderDataOptions": {
"IncludeAvailableShippingMethods": true
}
}
"AdditionalOrderData": {
"AvailableShippingMethods": [
{
"AppliesToOrderLineIDs": [
63828
],
"Costs": {
"Amount": 0.0,
"Ranges": [
{
"MinAmount": 0.0,
"MaxAmount": 5.0000,
"Costs": 0.0
},
{
"MinAmount": 5.0000,
"MaxAmount": 200.0000,
"Costs": 4.0000
},
{
"MinAmount": 200.0000,
"Costs": 0.0
}
]
},
"ID": 4,
"CarrierID": 5,
"Carrier": {
"ID": 5,
"Name": "New Black",
"Code": "NEWBLACK"
},
"Name": "Own Delivery",
"Code": "OD",
"ExtraCosts": 0.0,
"Priority": 1,
"PaymentHandledByCarrier": false,
"DeliveryType": 3
}
]
}

✅ Enabling filter/search in FSC label overview

We've made a few changes to the ListFullStockCountLabelSummary service, which will make it possible to filter labels in Admin Suite on the following:

  • Products
  • Whether it contains products
  • Status

✅ Better filtering in ListPriceLists

The ListPriceLists call now also allows for filtering based on:

  • UsageType
  • OuSet

These two can be combined.

✅ Checking for deviations on POs

To make it possible to check if purchase orders have been received with a deviation (based on the difference between QuantityDelivered and QuantityShipped), we've added the HasDeviations property to ListPurchaseOrderShipments.

Additionally this will make it possible to filter on POs with deviations - although this will not affect existing orders.

✅ Clarifying the type of order for invoices

To clarify the origin of your invoices (such as sales order, return or price correction), we've added the Lines.OrderLine.Type to the GetInvoice service call.

Fixes

  • The EVA loyalty handler will prevent fractional points in the user's balance after cancellation of paid products.

  • While SubscribeUser is rightly so giving an error when trying to subscribe an already subscribed user, this is causing issues in the POS. We're removing the error for now and focus on improving the service in its entirety instead.

  • Fix the Consignor flow when returning an order.

  • GetConfigurableProductsDetail now works when you request multiple children of a single root product.

  • Waldo 2.0 migration fix for SearchOrders.

  • Prevent calling ShipExternalOrder without either Lines or Packages.

  • Remove readonly on TerminalReport.

  • Handle invalid configured JWT keys.

  • Copy Order.Customer as well.

    Order.CustomerID was copied but Customer wasn't, so on new return orders you could have a non-null CustomerID while Customer was null

  • Handle deleted users graceful with TwoFactor services.

  • Skip user visibility checks on ou level when VisibilityGroups for Users is enabled.

  • Anonymous users should be able to see display price of a product.

  • Lock phone book GetUserPhoneNumbers service for migration inserts.

  • Events were skipped when the user wasn't loaded on the UserSubscription.

Deprecations

🔙 Reverted

The deprecation of ReceiveShipment.Lines, announced to go into effect with this core drop has been reverted due to its incompatibility with the rollback of Companion to version 1.50.

🚫 Effective

These deprecations are now effective. As of now, these services and/or fields are no longer available in EVA and can no longer be used.

Deprecated

  • Medium CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetStationResponse.CustomFields
    • GetCaseByIDResponse.CustomFields
    • GetRepairResponse.CustomFields
    • GetWishlistResponse.CustomFields
    • GetOrganizationUnitDetailedResponse.CustomFields
    • GetShipmentDetailsResponse.CustomFields
    • GetUserResponse.CustomFields
    • GetAnonymousWishlistResponse.CustomFields
    • GetUserWishlistResponse.CustomFields
  • Medium CustomFieldValues is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetShipmentResponse.CustomFieldValues
    • GetCustomUserTaskDataResponse.CustomFieldValues
  • Medium Details.Corrections.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.OrganizationUnit.CustomFields
  • Medium Details.Corrections.StockMutation.DestinationOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.StockMutation.DestinationOrganizationUnit.CustomFields
  • Medium Details.Corrections.StockMutation.OrderLine.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.StockMutation.OrderLine.CustomFieldsV2
  • Medium Details.Corrections.StockMutation.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.StockMutation.OrganizationUnit.CustomFields
  • Medium Details.Corrections.StockMutation.SourceOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetFinancialPeriodDetailsResponse.Details.Corrections.StockMutation.SourceOrganizationUnit.CustomFields
  • Medium Details.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetUserTaskDetailsResponse.Details.OrganizationUnit.CustomFields
  • Medium Inquiry.Items.CustomField is deprecated since 2.0.716: Use CustomFieldMetadata instead..
    • GetInquiryResponse.Inquiry.Items.CustomField
  • Medium IsArray is deprecated since 2.0.716: Cannot be updated. Create a new custom field instead..
    • UpdateCustomField.IsArray
  • Medium Items.CustomField is deprecated since 2.0.716: Use CustomFieldMetadata instead..
    • GetInquiryResponse.Items.CustomField
    • GetUserInquiryResponse.Items.CustomField
  • Medium Items.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListPlanningResponse.Items.OrganizationUnit.CustomFields
  • Medium Order.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CreateOrderFromShoppingCartResponse.Order.CustomFieldsV2
  • Medium Order.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CreateOrderFromShoppingCartResponse.Order.Lines.CustomFieldsV2
  • Medium Products.PickupIndications.PickupOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetAvailabilityIndicationResponse.Products.PickupIndications.PickupOrganizationUnit.CustomFields
  • Medium Result.Children.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetRelatedOrderLinesResponse.Result.Children.CustomFieldsV2
  • Medium Result.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetOrganizationUnitResponse.Result.CustomFields
    • GetOrganizationUnitsForUserResponse.Result.CustomFields
    • GetReplenishmentProposalSourcesResponse.Result.CustomFields
    • GetReplenishmentProposalTargetsResponse.Result.CustomFields
  • Medium Result.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CreateOrderLineUnitPriceCorrectionResponse.Result.CustomFieldsV2
    • GetOrderResponse.Result.CustomFieldsV2
    • GetRelatedOrderLinesResponse.Result.CustomFieldsV2
    • EVAPayGetInfoResponse.Result.CustomFieldsV2
  • Medium Result.Devices.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetStationResponse.Result.Devices.OrganizationUnit.CustomFields
  • Medium Result.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetOrderResponse.Result.Lines.CustomFieldsV2
    • EVAPayGetInfoResponse.Result.Lines.CustomFieldsV2
  • Medium Result.Order.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetStockReservationTaskResponse.Result.Order.CustomFieldsV2
  • Medium Result.Order.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetStockReservationTaskResponse.Result.Order.Lines.CustomFieldsV2
  • Medium Result.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetDeviceResponse.Result.OrganizationUnit.CustomFields
    • GetStationResponse.Result.OrganizationUnit.CustomFields
  • Medium Result.Page.Children.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListOrderLinesInvoiceSummaryResponse.Result.Page.Children.CustomFieldsV2
  • Medium Result.Page.Customer.CustomFields is deprecated since 2.0.716: Use CustomFieldValues instead..
    • SearchOrdersResponse.Result.Page.Customer.CustomFields
  • Medium Result.Page.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListOrganizationUnitByProximityResponse.Result.Page.CustomFields
  • Medium Result.Page.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListOrderLinesInvoiceSummaryResponse.Result.Page.CustomFieldsV2
    • ListOrderLinesResponse.Result.Page.CustomFieldsV2
    • ListOrdersForCustomerResponse.Result.Page.CustomFieldsV2
  • Medium Result.Page.DestinationOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListStockMutationsResponse.Result.Page.DestinationOrganizationUnit.CustomFields
  • Medium Result.Page.Devices.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListStationsForOrganizationUnitResponse.Result.Page.Devices.OrganizationUnit.CustomFields
  • Medium Result.Page.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListOrdersForCustomerResponse.Result.Page.Lines.CustomFieldsV2
  • Medium Result.Page.OrderLine.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListStockMutationsResponse.Result.Page.OrderLine.CustomFieldsV2
  • Medium Result.Page.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.OrganizationUnit.CustomFields
    • ListStationsForOrganizationUnitResponse.Result.Page.OrganizationUnit.CustomFields
    • ListStockMutationsResponse.Result.Page.OrganizationUnit.CustomFields
    • ListOrganizationUnitShelvesResponse.Result.Page.OrganizationUnit.CustomFields
  • Medium Result.Page.SourceOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListStockMutationsResponse.Result.Page.SourceOrganizationUnit.CustomFields
    • ListReplenishmentProposalResultsResponse.Result.Page.SourceOrganizationUnit.CustomFields
  • Medium Result.Page.StockMutation.DestinationOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.StockMutation.DestinationOrganizationUnit.CustomFields
  • Medium Result.Page.StockMutation.OrderLine.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.StockMutation.OrderLine.CustomFieldsV2
  • Medium Result.Page.StockMutation.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.StockMutation.OrganizationUnit.CustomFields
  • Medium Result.Page.StockMutation.SourceOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListBookingsResponse.Result.Page.StockMutation.SourceOrganizationUnit.CustomFields
  • Medium Result.Page.TargetOrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListReplenishmentProposalResultsResponse.Result.Page.TargetOrganizationUnit.CustomFields
  • Medium Result.Station.Devices.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetDeviceResponse.Result.Station.Devices.OrganizationUnit.CustomFields
  • Medium Result.Station.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • GetDeviceResponse.Result.Station.OrganizationUnit.CustomFields
  • Medium ScriptID is deprecated since 2.0.716: Use SecurityScriptID instead..
    • SetCustomFieldOptions.ScriptID
  • Medium ShoppingCart.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.ShoppingCart.CustomFieldsV2
  • Medium ShoppingCart.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ShoppingCartResponse.ShoppingCart.Lines.CustomFieldsV2
  • Medium Station.Devices.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • SelectStationResponse.Station.Devices.OrganizationUnit.CustomFields
  • Medium Station.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • SelectStationResponse.Station.OrganizationUnit.CustomFields
  • Medium Task.Lines.OrderLine.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Lines.OrderLine.CustomFieldsV2
  • Medium Task.Order.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Order.CustomFieldsV2
  • Medium Task.Order.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • StartReservationCleanupResponse.Task.Order.Lines.CustomFieldsV2
  • Medium Tasks.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListTasksThatBlockPeriodClosingResponse.Tasks.OrganizationUnit.CustomFields
  • Medium WorkedHours.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • ListWorkedHoursForCurrentEmployeeResponse.WorkedHours.OrganizationUnit.CustomFields
  • Medium WorkSet.Order.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • StartStockReservationResponse.WorkSet.Order.CustomFieldsV2
  • Medium WorkSet.Order.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • StartStockReservationResponse.WorkSet.Order.Lines.CustomFieldsV2
  • Medium WorkSet.Orders.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CompleteReservationDeviationTask.WorkSet.Orders.CustomFieldsV2
    • StartReservationDeviationTaskResponse.WorkSet.Orders.CustomFieldsV2
  • Medium WorkSet.Orders.Lines.CustomFieldsV2 is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CompleteReservationDeviationTask.WorkSet.Orders.Lines.CustomFieldsV2
    • StartReservationDeviationTaskResponse.WorkSet.Orders.Lines.CustomFieldsV2
  • Medium WorkSet.UserTask.OrganizationUnit.CustomFields is deprecated since 2.0.716: Use CustomFieldValuesWithOptions instead..
    • CompleteCustomerInteractionTask.WorkSet.UserTask.OrganizationUnit.CustomFields
    • StartCustomerInteractionTaskResponse.WorkSet.UserTask.OrganizationUnit.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.