Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.717

December 5, 2023

Released on all test and acceptance environments on December 5, 2023

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

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


release notes image

Word in advance‍

πŸ”‘ Core drop notes structure
  • 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.

Specific topic‍

βœ… Data lake exports​

We've made several improvements to specific Data lake exports.

Details
  • We've included return reasons in the Order data lake exports;
  • We've included stock mutation timestamps in the Stock mutation data lake exports;
  • We standardised the rounding between GetOrder and the Order data lake exports;
  • We've expanded the available data in the UserSubscriptions object in the Users data lake exports.
Subscription sample
{
"SubscriptionID": "string",
"Status": "string",
"IsBlocked": false,
"OriginatingOrganizationUnit": {
"ID": "string",
"Name": "string",
"BackendID": "string"
},
"Subscription": {
"ID": "euw123",
"LoyaltyProgramID": "euw123",
"BackendID": "MY_FIRST_SUBSCRIPTION",
"Name": "My first subscription"
}
}
Addition to Data lake entry 13-12-23

Custom fields on payment transactions were added to the exports as well.

βœ… Converting custom field values to number​

We've introduced a new statement you can use in your extension point scripts. This ToNumber statement can convert the value of a custom field (which might be string value) into a number.

For a sample, see: ToNumber.

πŸ†• Mailing a thermal invoice​

While it's already possible to send invoice PDFs via email, we wanted to expand this to include the mailing of (thermal) receipts.

Once the front ends are updated to include the option, this will work out of the box. You can however customize its template ElectronicReceipt to your liking. Additionally, you can optionally set a preference for electronic receipts by setting Auditing:PreferElectronicReceipt to true.

Details

To accomplish all this, we've created the service called EmailThermalInvoice. This service is designed to receive an InvoiceID and EmailAddress as input.

This service will send out the email based on the ElectronicReceipt template and include either the certified invoice stencil of type Thermal (if auditing is enabled for the country) or the standard invoice/receipt. It will be sent to the specified email address.

{
"InvoiceID": "12345",
"EmailAddress": "Pedropascal@docs-inc.org",
}
Template sample

To make things just a tad easier, here's a sample of a template you could use for the ElectronicReceipt template, which requires Destination Mail.

    {#subject}New Black - Electronic Receipt{#/subject}
<div style="font-family: 'Helvetica', Arial, sans-serif;font-size: 16px;color: #82786f;">
Invoice #{{>InvoiceNumber}}
<br />&nbsp;
</div>

<div style="border-top: 1px solid #dad6d2; height:20px;">&nbsp;</div>

<p style="font-family: 'Helvetica', Arial, sans-serif;font-size: 12px;line-height: 16px;text-align: left;color: #525252; padding-bottom: 10px;">
{{if Customer}}
Dear {{>Customer}},
<br />
<br />
{{/if}}

Please find your electronic receipt attached to this e-mail. This is also your guarantee certificate, so be sure to save this e-mail.
<br />
<br />
Any further questions? Please get in touch with our customer service department via the online contact form: <a href="https://newblack.io" title="FAQ and customer service" target="_blank">https://newblack.io</a>.
<br />
<br />
Important!<br />
We recommend that you open the product's original packaging carefully and
save the packaging it was shipped in, in case you decide you want to return your order.
For more information about returning or exchanging articles, please see our FAQ for the returns policy</a>.
<br />
<br />
We hope you enjoy your purchase!
<br />
<br />
Kind regards,<br />
{{>OrganizationUnit}}
<br />
<br />
This is an automatically generated e-mail. Please do not reply to this message.<br />
Our <a href="https://newblack.io" title="General terms and conditions" target="_blank">general terms and conditions</a> apply.
</p>

Addition to Mailing a thermal invoice

We've added the above sample which you can use for configuring your ElectronicReceipt template differently - that is, if you want to offer more information than the existing basic message we've added as a fallback. We'd like to remind you however, that this feature is currently waiting for front end work to be completed.

Template for settlements monitor​

In last week's core drop 2.0.716 we introduced a new payment settlements monitor. We're now introducing its required template called PaymentSettlementFileMonitorNotificationor to allow you to customize the corresponding email.

Properties‍

πŸ†• TaxRateInfoID​

We added TaxRateInfoID to the CreateManualInvoice service.

Sample
{
"Series":"FTM",
"Number":2,
"OrganizationUnitID":9,
"InvoiceDate":"2023-12-05",
"Lines":
[{
"Description":"TEST",
"Quantity":1,
"TotalAmountInTax":5,
"TaxRateInfoID":6
}]
}

Product filter in ListRevisions​

To be able to check all revisions connected to a product, we've extended the ListRevisions service with a product filter by means of the following property: ProductID.

Name filter in ListSharedWorkspaces​

Small addition of a Name property to the ListSharedWorkspaces service to increase filtering options in the front end.

Filtering out uncompleted return orders​

To enable the filtering of orders which were abandoned halfway through the return flow in Return portal, we've added the IsPlaced property** on the GetReturnOrdersForOrder service.

Warranty information storage​

  • Warranty information is now stored as a snapshot when creating the case and won't change anymore during the repair process.
  • Openinghours are now available in the repair templates on the Repair.OrganizationUnit.

Services‍

βœ… Performance​

For every GetShoppingCart or GetOrder we would fetch the user who created the order separately, because there are some cases where the App would like to display this information. We're cutting these down to a single CreatedByFullName property on orders, which translates to a subtle performance improvement.

βœ… ProductRequirements in ImportProducts​

You can now manage your product requirements via the ImportProducts call, whether it's a new product or updating existing ones.

Details
Updating product
{
"SystemID": "insomnia",
"Products": [
{
"ID": "1167621711",
"Name": "EVA Product",
"CustomID": null,
"Brand": "Mybrand",
"LedgerClassID": null,
"TaxCode": "Electronics",
"Barcodes": [
""
],
"UnitBarcodes": null,
"Type": null,
"Status": null,
"Variations": null,
"Content": null,
"VariationValues": null,
"IsDeleted": false,
"GiftCardConfigurationID": null,
"GiftCardType": null,
"GiftCardIsDigital": null,
"GiftCardData": null,
"Assortments": null,
"CommodityCode": null,
"CountryOfOriginID": null,
"ManufacturerID": null,
"RequireSerialNumberForSale": null,
"SerialNumberConfigurationID": null,
"ProductRequirements": [
{
"Name": "Required text",
"DataType": 0,
"OrderType": 0,
"IsArray": false,
"IsRequired": true,
"EnumValues": null,
"BackendID": null,
"Handler": null
}
]
}
]
}
New product
{
"SystemID": "insomnia",
"Products": [
{
"ID": "110234321719",
"IsDeleted": false,
"Name": "EVA Product",
"Brand": "Mybrand",
"Barcodes": [
"12913740321719"
],
"TaxCode": "Electronics",
"ProductRequirements": [
{
"Name": "Required text",
"DataType": 0,
"OrderType": 0,
"IsArray": false,
"IsRequired": true,
"EnumValues": null,
"BackendID": null,
"Handler": null
}
]
"Content": [
{
"Name": "EVA Name",
"ShortDescription": "Enjoy this short description.",
"Images": [
{
"ImageUrl": "https://--.png",
"MimeType": "image/png",
"Name": "ImageName.png"
}
],
"CustomContent": {
}
}
]
},
]
}

πŸ†• DataLakeBackfill invoice document​

A new Data Lake document has been added to the DataLakeBackfill service. The new type is: Invoices (3).

More on this service can be found here.

Force CancelOrder​

We've done the back-end work for making it possible to force an order cancellation.

Details

To accomplish this, we've added the Force parameter to the CancelOrder service.

It should go without saying that, once this is available in the front end, it should be used with extreme caution. If used improperly, customers can be refunded for orders while still being delivered their orders.

GetUserRequirementByID​

Instead of relying on an expansive ListUserRequirements, we've created a more dedicated service for user requirements called GetUserRequirementByID.

Details

The following properties are included in the new service:

  • ID
  • UserType
  • RequiredFor
  • Preferred
  • Display
  • UserRequirementSetID
  • UserRequirementName
  • Property
  • CustomValidators

Fixes‍

  • When the setting EnablePriceViewingFunctionalities was configured, anonymous users (without authorization header) couldn't see the display_price anymore in SearchProducts responses.
  • To fix an issue where custom OUs were not displayed in the promotion engine, we've added OrganizationUnitSetName and OrganizationUnitSetType to the GetDiscountByID service.
  • RMAs are now excluded from terminal totals, preventing them from being included in general counts.
  • We fixed an issue where the order amount condition did not respect excluded products in the prefigure.
  • Handle null values in settings.
  • When subscription values are modified, EVA will now properly raise a Subscription_changed event instead of Customer_updated.

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Β Lines is deprecated and will be removed in 2.0.749: This is no longer supported.
    • CreateManualTaxExemptionReason.Lines
  • HighΒ Result.Page.ScriptID is deprecated and will be removed in 2.0.749: This is no longer supported.
    • ListUserRequirementsResponse.Result.Page.ScriptID
  • HighΒ Result.Page.ShippingMethodID is deprecated and will be removed in 2.0.749: This is no longer supported.
    • ListUserRequirementsResponse.Result.Page.ShippingMethodID
  • HighΒ Result.Page.SubscriptionID is deprecated and will be removed in 2.0.749: This is no longer supported.
    • ListUserRequirementsResponse.Result.Page.SubscriptionID
  • HighΒ Result.Page.UserRequirementSetID is deprecated and will be removed in 2.0.749: This is no longer supported.
    • ListUserRequirementsResponse.Result.Page.UserRequirementSetID
  • HighΒ Result.Page.UserRequirementSetName is deprecated and will be removed in 2.0.749: This is no longer supported.
    • ListUserRequirementsResponse.Result.Page.UserRequirementSetName

🚫 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.

  • Object Lines in the CreateManualTaxExemptionReason service has been deprecated due to being unused.
  • ListUserRequirements will no longer return the following properties due to being replaced with a dedicated service (see GetUserRequirement above):
    • ScriptID
    • SubscriptionID
    • ShippingMethodID
    • UserRequirementSetID
    • UserRequirementSetName




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.