Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.758

Month 8, 2024

Released on all test and acceptance environments on October 8, 2024

Will be released to production in EUW and ASE on October 14, 2024*

Will be released to production in CUS on October 15, 2024*


release notes image

Breaking

No breaking changes.

Security

✅ Security: improve GetTokenInfo token handling

Standard anonymous access of this service is no longer allowed.

✅ Security: anonymous gift card data

Standardize gift card response errors and increase GiftCardID (used to access anonymous gift cards) length from 8 to 12.

Compliance

✅ Updating Certified Invoice Templates (Thermal & PDF)

We are updating the Certified Invoice Templates for both thermal and PDF formats. These updates apply to sales and return (credit) invoices/receipts and include:

  • Removing the Software Version.
  • Displaying the Receipt Number only in the header, whereas previously it was shown in both the header and footer.

Applicable Countries
  • Denmark
  • France
  • Hong Kong
  • Ireland
  • Jordan
  • Macau
  • Netherlands
  • New Zealand
  • Oman
  • South Africa
  • Switzerland
  • United Arab Emirates
  • United Kingdom

Note: Countries not listed here will implement these changes gradually.

🇸🇪 Sweden
  • Duplicates of Certified invoices (PDF) and Certified thermal receipts will now explicitly state "KOPIA".

Properties

🆕 BackendSystemID in OrderCustomType extension point

We are adding the BackendSystemID to the OrderCustomType extension point.

Though we removed this property earlier on, due to the property being slowly phased out across EVA, we have decided to support it for several entities still. This includes the Order entity.

🆕 Query in ListStockMutationReasons

To allow for more ways to search for stock mutations, we are adding the Query property to ListStockMutationReasons.

This way you will soon be able to search on descriptions and names of stock mutations simultaneously.

🆕 IncludedFields in GetRepair

To be able to offer a repair summary in the Checkout App, we are adding a new property called IncludedFields to the GetRepair request.

This will allow for the retrieval of additional product properties when specified.

🆕 DiscountedSubtotalExcludingDelivery in GetOrder

We are adding a new property to GetOrder for the purpose of showing a discounted subtotal of an order which excludes delivery during checkout, aptly named DiscountedSubtotalExcludingDelivery.

🆕 DiscountDetailsBackendIDs in OrderLineVariable

We have added the DiscountDetailsBackendIDs to the OrderLineVariable.

This allows you to script with the discounts via the OrderCustomFieldEligibility extension point.

Details

DiscountDetailsBackendIDs is a list containing all the discount BackendIDs found in the line's discount details.

It will not contain null values and you should ensure that the discounts have a BackendID.

Sample
extend OrderCustomFieldEligibility

if (Order.OrderLines.HasAny line -> line.DiscountDetailsBackendIDs[1] = 'randomBackendID') then
set output.IsRequired to false
end

The DiscountDetailsBackendIDs can be accessed through Order and then OrderLine.

Services

🆕 SearchOrders

We are making some changes to SearchOrders when it comes to images: it will now return a ProductImageUrl.

Details

The existing ProductImage and new ProductImageUrl are chosen based on a new criterion: the images of non-cancelled product lines are prioritized, followed by cancelled product lines.

In practice this means that in case of an order whose product lines are all cancelled, it will pick the image of a cancelled line.

Settings

🆕 Orders:ReturnToSupplier:AutoReceiveShipmentOnTaskCompletion

We are introducing a new setting to EVA called Orders:ReturnToSupplier:AutoReceiveShipmentOnTaskCompletion.

By switching this setting to true on an OU which is to receive RTS shipments, the RTS order will be received and completed automatically on that OU after the RTS task has been performed.

🆕 Shipment:OverrideUserDefinedReceiveMethod

We are introducing a new setting that will make the shipment’s receipt method, as based on the selection of the employee, visible.

  • Shipment:OverrideUserDefinedReceiveMethod (default false)

Details

When the method for receiving goods is set to UserDefined, an employee can decide whether to perform a detailed inspection or receive all goods all at once.

If this new setting is set to true, the UserDefined value will change based on the selection of the employee:

  • If the shipment has receipts, the ReceiveMethod is switched to Manual
  • If the shipment does not have receipts, the ReceiveMethod is switched to Automatic

This value can be seen in the Receive method column of the Receive Goods chapter.

Other topics

🆕 Repairs: DeferredRepairReceived template

We are introducing a new stencil template to EVA: Repairs: DeferredRepairReceived

By configuring this template, you can inform your consumers that the product they sent in for repairs has been safely received. If configured, it will trigger automatically upon completion of the Receive repair task.

✅ Cancelling repairs

We've done the back-end work for making repairs cancellable in more situations.

Details

These situations will include both repairs which are, and aren't executed. Any order amounts will consequently either be set to 0 or, if already paid, refunded. Stock mutations will be reverted so that stock is moved back to the original stock label.

If configured, the customer will receive a RepairCancelled mail.

🆕 New OU type: Concession

The following change is introduced as part of a bigger development - this feature is not ready for use

We are introducing a new OU type to EVA: Concession

Details

This new OU type will come with additional requirements, namely a BackendID. Without it specified, the following order types cannot be completed:

  • CarryOut orders
  • Delivery
  • Reserve
  • Order
  • RTS
  • Interstore

🆕 Checking device status

We are adding two properties to the WatchtowerGetDeviceDetails service, which will result in giving users more insight into the status of a device.

  • FleetManagerStatus
  • FleetManagerLastCheckIn

🆕 Custom fields in Shipping methods

The following change is introduced as part of a bigger development - though testable via API, the full feature is not ready for use

We’ve done the back-end work necessary for creating and making use of custom fields in shipping methods and related services and templates.

Details

Creation

CustomFields can be set using the CreateShippingMethod and UpdateShippingMethod services.

Returning custom fields

EVA will return the custom fields in the following services:

  • GetOrder (IncludeAvailableShippingMethods)
  • GetShoppingCart (IncludeAvailableShippingMethods)
  • ListAvailableShippingMethods
  • GetShippingMethodByID

Stencil templates

The new field is also present on the following stencil templates:

  • OrderShippedConfirmation
  • OrderPlacedConfirmation

Warehouse exporter and Data lake

The new field is also available on the Warehouse exporter and on the Data lake export Shipments.

Sample of what the fields may look like

Sample data
{
"CustomFieldValues": {
"1": {
"StringValue": "Sample text",
"BlobValue": null,
"NumberValue": null,
"BoolValue": null,
"DateTimeValue": null,
"ArrayValues": null
},
"2": {
"StringValue": null,
"BlobValue": null,
"NumberValue": 99.99,
"BoolValue": null,
"DateTimeValue": null,
"ArrayValues": null
},
"3": {
"StringValue": null,
"BlobValue": null,
"NumberValue": null,
"BoolValue": true,
"DateTimeValue": null,
"ArrayValues": null
}
}
}

To offer additional logging options when it comes to performing an external user search, EVA will have two new headers for every call done to the external user search endpoint:

  • EVA-UserID → User performing the search
  • EVA-OrganizationUnitID → Current ou

✅ Transfer orders invoice prices

We are changing the logic for financial events related to transfer orders when they are generated from e-com orders returned in store.

Details

Transfer orders which result from in-store returns where EVA financially handles the return on the original SoldFrom, will now be handled the same way as regular Interbranch orders.

The orderlines are also no longer cloned, so the order uses the regular pricing rules between organization units (and may be subject to tax).

  • CreateInStoreReturn now takes a ReturnReasonID
    • This ReturnReasonID is returned by GetOrder
  • GetOrder now returns:
    • ReturnReasonID
    • The EVA ID / BackendID mapping for Organization Units.

The Invoiced price on transfer orders created by CreateInStoreReturn now use the purchase price that is configured between the original SoldFrom OU and the OU the order is returned to. If no purchase price is set up, cost prices are used as a fallback.

Stock mutations triggered by the transfer order use the cost price of the SoldTo (StockReceived).

If there are differences between the invoiced price and the cost price of the receiving store, Purchase Price Variance mutations are triggered.

Fixes

  • Fixed an issue where no changes were tracked when using the AutoShip feature for payments that committed the PaymentTransaction inside the PaymentMethod.
  • Fixed an issue with the UnitCost property recently introduced in Core 2.0.756 which wasn't available everywhere it should be.
  • Fixed an issue with the additional information made available for Financial periods reports in Core 2.0.757.
  • Fixed an issue where unshipped invoiced order line corrections could not be refunded due to a missing ShipOrder requirement.
  • Fixed an edge case in the AddDiscountCouponToOrder service to ensure DiscountIsApplied returns false when a previously applied discount is removed and the order no longer meets the conditions for applying the coupon.
  • EVA will now restart the Stock export task to the Data lake when the task gets interrupted.
  • Fixes an issue where attempting to open a financial period would fail when a cash journal with an "Ignore" method is already open, by allowing the financial period to open without conflict in such cases.
  • We adjusted logic to ensure that attaching a customer to an offline order is only blocked when the order is in a completed state, allowing customer attachments for non-completed offline orders.
  • We corrected the logic for calculating the new WAC by CreatePurchaseOrderLineUnitPriceCorrection.

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 BackendCompanyID is deprecated and will be removed in 2.0.790: Set the Company BackendID instead.
    • UpdateOrganizationUnitSettings.BackendCompanyID
  • High BackendCompanyID is deprecated and will be removed in 2.0.790: The Company's BackendID is now stored on the OrganizationUnit's attached Company..
    • GetOrganizationUnitSettingsResponse.BackendCompanyID
  • High ToCreate.BackendCompanyID is deprecated and will be removed in 2.0.790: The Company's BackendID is now stored on the OrganizationUnit's attached Company..
    • CreateOrganizationUnit.ToCreate.BackendCompanyID

⚡ 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 ServiceLines is deprecated and will be removed in 2.0.774: Use PackLines.
    • StartShipFromStoreTaskResponse.ServiceLines

🚫 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

  • Medium Definition.IsEmpty is deprecated since 2.0.758: This property is now exposed as a settable property, which isn't the case.Will be removed for clarity.
    • CreateOrganizationUnitSet.Definition.IsEmpty
    • PreviewOrganizationUnitSet.Definition.IsEmpty
  • Medium Definition.Value.IsEmpty is deprecated since 2.0.758: This property is now exposed as a settable property, which isn't the case.Will be removed for clarity.
    • UpdateOrganizationUnitSet.Definition.Value.IsEmpty
  • Medium Set.Definition.IsEmpty is deprecated since 2.0.758: This property is now exposed as a settable property, which isn't the case.Will be removed for clarity.
    • GetOrganizationUnitSetDetailsResponse.Set.Definition.IsEmpty
    • PreviewOrganizationUnitSetResponse.Set.Definition.IsEmpty

Low

  • Low Filters.Status is deprecated since 2.0.758: Please use IsActive..
    • GetCheckoutOptions.Filters.Status
Impact descriptions

For more details on the impact categories, please see When are changes communicated?.





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.