Breaking
No breaking changes
Compliance
🇫🇷 France
✅ French Audit Updates
After completing an independent audit in accordance with NF525 and NF203 standards, we have made several updates to our Point of Sale (POS) App and Certified Invoice Template (this only applies to French organization units).
Here are the key changes:
Company Profile Setup: The VAT number, company name, and SIRET number are optional when creating a company profile for business customers. However, these fields become required during sales transactions with business customers. The checkout process will halt until this information is provided.
Auditing Summary Fields: For users logged into a French Operating Unit (OU), the certificate number and name displayed on the 'More Options' page have been updated. Additionally, we now display different versions:
- Fiscal EVA Core Version
- Fiscal EVA POS Version
- Fiscal EVA Version
Invoice Modifications:
- The SIRET number of the store handling the transaction has been moved to the top left corner of the certified invoice, previously located at the bottom.
- In France, sales on debit are not possible. Therefore, payment must be made immediately at the time of the sales transaction. A notice stating "Sur Encaissements" will now appear under "Option TVA" at the top of certified invoices to comply with this regulation.
- We have revised the presentation of EVA and signatures on the certified invoice. A new column titled 'IDENTIFIANT' now includes:
- EVA Unified Commerce V2.2
- (NF525) B 0365 I8aN
- (NF203) C 461 I8aN
These changes ensure compliance with French fiscal regulations and enhance the clarity and functionality of our POS App.
🇵🇱 Poland
✅ Retrieving Fiscal Receipts for E-Commerce Transactions
Fiscal receipts (Paragon Fiskalny) for e-commerce transactions, processed through third-party integrations via the PushSalesOrders
API, are now accessible. You can view these receipts in the Orders Overview section, specifically under the Documents tab of the respective order.
Fixes
- For NTH integrations, resolved a problem in the
RetryInvoiceExport
service where the returned status update failed to refresh the error message displayed in EVA.
Properties
🆕 DiscountCouponCode and DiscountCouponID in Orders Data lake
We have added the properties DiscountCouponCode and DiscountCouponID to the Data lake Orders export.
🆕 Properties in repair related stencil templates
We have added several new properties to repair related stencil templates, mainly to allow for showing what products have been used/replaced during the repair.
Details
- (Execute) RepairCompleted
- Repair order lines
- FirstName and LastName to the following objects:
- CompletedBy
- AssignedTo
- Customer
- RepairReadyForPickup
- Repair order lines
- FirstName and LastName to the following objects:
- CompletedBy
- AssignedTo
- Customer
- RepairShipped
- Repair order lines
- FirstName and LastName to the following objects:
- CompletedBy
- AssignedTo
- Customer
🆕 More properties in Financial Events Data lake
We have added many new properties to the Financial events Data lake export.
Details
The new properties are mainly nested objects and additional fields within these objects, providing more detailed information about orders, products, shipments, order lines, invoice lines, shipment lines, stock mutations, and payment transactions.
{
"Events": [
{
"ID": "string",
"Type": "string",
"Order": {
"ID": "string",
"TotalAmount": 1.23,
"TotalAmountInTax": 1.23,
"SoldToOrganizationUnitID": "string"
},
"Amount": 1.23,
"Remark": "string",
"Status": "string",
"OrderID": "string",
"Product": {
"ID": "string",
"LedgerClassID": "string"
},
"SubType": "string",
"TaxCode": "string",
"TaxRate": 1.23,
"Shipment": {
"ID": "string",
"ShipmentDate": "string",
"TotalQuantityShipped": 123
},
"InvoiceID": "string",
"OrderLine": {
"ID": "string",
"Amount": 1.23,
"TaxRate": 1.23,
"AmountInTax": 1.23,
"QuantityOrdered": 123
},
"ProductID": "string",
"Reference": "string",
"CurrencyID": "string",
"DiscountID": "string",
"ShipmentID": "string",
"InvoiceLine": {
"ID": "string",
"UnitPrice": 1.23,
"UnitPriceInTax": 1.23,
"QuantityInvoiced": 123
},
"OrderLineID": "string",
"ShipmentLine": {
"ID": "string",
"QuantityShipped": 123
},
"CashJournalID": "string",
"InvoiceLineID": "string",
"LedgerClassID": "string",
"StockMutation": {
"ID": "string",
"Reason": "string",
"Remark": "string",
"UnitCost": 1.23
},
"ShipmentLineID": "string",
"ProcessingError": "string",
"StockMutationID": "string",
"TaxRateCategory": "string",
"InvoiceDisputeID": "string",
"OrganizationUnit": {
"ID": "string",
"Name": "string",
"BackendID": "string"
},
"FinancialPeriodID": "string",
"PaymentTransaction": {
"ID": "string",
"PaymentType": "string",
"PaymentTypeCode": "string"
},
"PaymentTransactionID": "string",
"InvoiceDisputeResolveActionID": "string"
}
],
"GenerationTime": "string"
}
Services
🆕 CheckScriptOnly property in ShippingRestriction CRUD services
The ShippingRestriction
CRUD services now feature a new property: CheckScriptOnly
By setting this property to false, the script will run second compared to the regular filters.
Details
The new boolean CheckScriptOnly defaults to true. By setting it explicitly to false in the ShippingRestriction
CRUD services, the script will not be leading for a shipping restriction. This means that the OU/Country/Product filter will be applied before running the script.
The following example shows a combination which should see that the product custom_product_789 cannot be shipped from OU123 to NL if the order address contains “PO box”.
{
Type: 1, // enum ShippingRestrictionType
OrganizationUnitID: 123,
CountryID: "NL",
ScriptID: 456,
CheckScriptOnly: false,
ProductPropertyTypeID: "custom_id",
ProductPropertyTypeValues: ["custom_product_789"]
}
extend ShippingRestriction
if ShippingAddress.Address1 contains 'PO box' then
output true
end
output false
✅ More efficient repair details
To make our front ends work more efficiently, we've made the following changes:
- The service
ListRepairs
now also returns assignee details for the active tasks. If there is no assignee, no user object will be returned either. - The service
GetRepair
now also returns SubType (for example Receive repair).
✅ Consistency between ListOrganizationUnitSummariesResponse and GetOrganizationUnitSummaryResponse
To make for a consistent response between ListOrganizationUnitSummariesResponse
and GetOrganizationUnitSummaryResponse
, the latter now includes the following properties:
- CountryID
- LanguageID
- CurrencyID
Settings
🆕 DataLake:ExportFinancialEventsBatchAsPeriodBlob
We are introducing a new setting called DataLake:ExportFinancialEventsBatchAsPeriodBlob
.
When this setting is set to true, a gzipped json file will be created automatically when a financial period is closed. This contains the same data structure as the Financial Events Data lake.
✅ Adresses:AutoGeocode
The setting Adresses:AutoGeocode
now defaults to false instead of true.
Details
This setting lets you indicate whether or not to automatically update geocoding on address changes.
To prevent processing a plethora of addresses for no reason, it now defaults to false instead. That means that if distance calculations in sheets and/or scripts are desired, this setting should be explicitly set to true.
✅ Repairs:SplitAllLines
The previously introduced Repairs:SplitAllLines
setting ensures unstacked order lines on a repair order. We've altered the way it functions by making any custom fields which are present on a split line to now be unset.
This means that the choice for a (required) line custom field is now to be made explicitly.
Other topics
✅ Set primary store as default OU at login
If an employee has a primary store configured in the EmployeeData, this store will take preference when logging in with SelectFirstOrganizationUnit set to true.
Do note that if your employee has a higher organization unit (parent) configured, you are logged into that store instead to accommodate management options.
✅ Removing SHIP_FROM_STORE_DELIVERY_CONFIRMATION
The ParseBarcode extension point no longer features the SHIP_FROM_STORE_DELIVERY_CONFIRMATION option.
As its name suggests, this option could be used for confirming the drop-off of a shipment, but has remained unused for a long time.
Fixes
- We fixed an issue with the Data lake Orders export which happened on Acceptance environments.
- Updating custom fields via
UpdateOrderLineCustomFields
will now properly trigger a recalculation of the discounts. - Deleted inquiries will now be properly detached from subscriptions, preventing "Inquiry not found" errors.
- An RTS cleanup task will be triggered again after partially shipping an RTS order.
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 Result.Page.Subject is deprecated and will be removed in 2.0.776: The Subject is now stored in Text.
- ListUserInteractionsResponse.Result.Page.Subject
- High Result.Page.Type is deprecated and will be removed in 2.0.776: Use InteractionType instead.
- ListUserInteractionsResponse.Result.Page.Type
- High Text is deprecated and will be removed in 2.0.776: This field is not used and will be deprecated..
- ResendUserInteractionCommunication.Text
- High Type is deprecated and will be removed in 2.0.776: Use InteractionType instead.
- GetUserInteractionByIDResponse.Type
⚡ 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.Core.Services.Invoices.GetInvoiceExportByID is deprecated and will be removed in 2.0.760: Use GetInvoiceExport instead.
- GetInvoiceExportByID
Medium
- Medium TopicID is deprecated and will be removed in 2.0.752: Use
CaseTopic
instead..- GetCaseByIDResponse.TopicID
- Medium TopicName is deprecated and will be removed in 2.0.752: Use
CaseTopic
instead..- GetCaseByIDResponse.TopicName
🚫 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
High
- High Result.ReturnWithoutRetakeAvailable is deprecated since 2.0.744: Use
ReturnWithoutProducts
.- GetReturnableStatusForOrderResponse.Result.ReturnWithoutRetakeAvailable
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.