You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 94 Next »

Coming next release

Support scale-out for ItemSale operations

(RTP-23643)

The following methods in ItemSale now support scale-out:

  • SetCustomerInfoInCart
  • SetCartDeliveryInfo
  • DeleteCartOrder
  • SetCartItemNotes 

Overriding of prices for online return

(RTP-24030)

It is now possible to override or change the prices of items returned through online return. The new price can be set through itemPrice in NewCartWithItemReturn method.


VAT rates for multi-country scenarios

(RTP-24583)

POS API now uses the correct VAT rates for multi-country scenarios, wherein prices from stores in different countries can have different VAT rates.

14 digit GTINs for promotions

(RTP-24391)

14 digit GTINs are supported for Promotions now.

Support for country-specific texts 

(RTP-20388)

Support for country-specific item texts from Item Management has been added to POS Import. Changes are also required in POS Master database to be able to use the new data.

Required

POS Master v. 3.0.0.119 or higher.

POS Import v. 4.0.53 or higher




Released 29.08.2023

Customer age verification when POS API is scaled out

(RTP-23534)

Improvements has been made to make sure SetCustomerAgeVerificationResult method works correctly when POS API is scaled out across multiple instances.

Error response for BundleId that doesn't exist in AddItemToCart

(RTP-23629)

Adding an item via the AddItemToCart method to a non-existent BundleId is no longer allowed. Instead, an error informing about a wrong ID is displayed. 

SuspendCart/BeginCartEditing

(RTP-24013)

When the cart is put on hold and later resumed, the method BeginCartEditing no longer fails. It is possible to start editing such a cart without issues even after the previous records were cleaned up from the database.

Voyado Integration

(RTP-24281)

When adding a member to cart, the assigned Voyado voucher no longer activates automatically. Instead, there is an option to select it at will.



Released 21.08.2023

Coupons for promotions

(RTP-23035)

Coupons are identified as optional or automatically applied through isSelectable flag. This flag is now by default set to true, making it possible to activate the coupon even before a relevant item for the coupon is added to cart.



Released 17.08.2023

Bundle mix information in POS API data export

(RTP-20056)

Information about bundle mixes (mix type 100 from Promotion module) is included in the POS API data export. For this mix, IdentifierType is Group and EANInBundle and SubConditionItems are used to support group mixes.



Released 11.08.2023

Handling of country and time zone

(RTP-22364)

To be able to use POS API in a multi-country setup, a store's country/time zone must be used. This must be configured on the store's profile in Store Management. The country will be imported to POS Master and mapped to the correct time zone.

POS API will (only when running in Azure, not on-prem) use the current time based on the time zone of the store.

The Item Management and Promotion modules export local time on prices and campaigns. (The store's time zone is not used when prices are imported to POS Master.)

Alpha numeric customer number

((RTP-23281)

To allow for integration with customer solutions that uses alpha numerical customer numbers, these are now supported in both EG POS and in POS API. 

SetCartItemDiscount, SetCartItemPrice, NewCartWithItem, NewCartWithItemReturn error handling

(RTP-23642)

Mentioned methods no longer throw exceptions when having InvalidDiscountFault, CartItemNoDiscountFault and InvalidAmountFault - they only log a warning. This was done to avoid an overwhelming amount of not useful exceptions. 

Logging for unknown receipts 

(RTP-23701)

When using the GetOnHoldReceipt method to search for a receipt that does not exist, it logs a warning instead of an error. This reduces the number of falsely reported 5xx error messages in Appinsights logging.

Logging when selling linked items without a price

(RTP-22739)

When trying to sell an item, that has a linked item with no price, more descriptive error message is returned in a response and logged in a logfile.

Adding payment while editing order 

(RTP-23603)

When adding payment to cart during the edit order process (between beginCartEditing and EndCartEditing), the item number no longer disappears in the POSLog XML.



Released 25.07.2023

Improved logging for CartNotReadyForCompletionFault 

(RTP-19727)

We've improved logging regarding CartNotReadyForCompletionFault to include the reason why the cart is not ready. This is to make it more possible for clients to resolve the situation based on the provided information.



Released 11.07.2023

Ignore cached warmup result in health check

(RTP-23453)

When running regular availability tests we now check on current health check status, instead of a cached result from the startup procedure.



Released 06.07.2023

New method to get customer credit information

(RTP-22223)

A new method on /Customer/GetCustomerCreditInformation was introduced. It allows the user to fetch the current balance and credit limit of a given member.

The method requires relay to POS Services on-prem.

POS Services on-prem:
Add CreditInfoService to AzureRelayEnabledServices.
POS Configuration
CustomerCreditInformationProvider should be set to POS Services.

Discounts on promotion bundles

(RTP-22462)

When adding items from promotion campaign groups to cart, the prices no longer jump between items after they are refreshed. The discount remains on the same item.

Customer search method

(RTP-22221)

A new method on /Customer/SearchCustomer was introduced. It allows the user to fetch the customer information based on the available terms: All, CustomerID, MemberID, Name, Address, PhoneNumber and Email.

Resuming suspended carts

(RTP-23373)

Using GetCart request on a cartId that has previously been suspended, then resumed, and fully finalized, will now return the correct cart information. Previously it would attempt to fetch only the suspended cart id.



Release 03.07.2023

SetCartItemNote when scaled out to multiple instances

(RTP-22849)

We've added validation on cached revision on SetCartItemNote when using multiple instances of POSAPI/POS WCF. You will now get the correct cart contents in response, also when running SetCartItemNote request on a revision that was previously not cached in your current instance. This means that the method will properly when POS API is scaled out across multiple instances.

BeginCartEditing for editing orders

(RTP-23239)

When editing an order by calling the method BeginCartEditing on a started cart, it no longer creates a new receipt Id in the database. Instead, it uses the already existing started cart number.

This prevents clients from creating problems by starting multiple parallell carts to edit the same order.

Improved logging

(RTP-22811)

We've changed logging to make sure every exception now gets sent to AppInsights. 

(Previously we would only send samples of exceptions to telemetry client, meaning some exceptions might not show up in logs.)



Release 27.06.2023

Support for Read Replica feature in Premium Azure SQL

(RTP-22599)

POS API supports using the Read Replica feature of Azure SQL Premium which allows us to connect to a copy of the POS Master database and run queries there without affecting the performance of other databases. 

This will allow us to:  

  1. Stop using Azure SQL DataSync which is causing heavy load on the SQL Server.
    • Only applies for customers not using POS API DataExport.
  2. Update Item and Prices faster in POS API (0.5-1 second latency vs 15minutes using DataSync. 
  3. Faster deploy of POS databases when releasing new versions. 

Note that this release only allows support of Read Replica in POS API and not the Integration Packages that is using Azure DataSync replicated POS Master. 

Digital receipt

(RTP-21994)

When member did not agree to the digital receipt subscription, and AlwaysSendDigitalReceipt = True, the digital receipt is no longer sent to that member.



Released 23.06.2023

Create cart even when member does not exist in Voyado

(RTP-23055)

When 'CreateCartWithItems' is called with a member that doers not exist in Voyado, the cart will still be created and the member will be added in the cart. This ensures that the member will receive member prices. Previously we would get an exception in POS API and 'CreateCartwithItems' would fail if the member did not exist in Voyado.



Released 22.06.2023

Registering payment when POS API is scaled out

(RTP-23228)

Improvements has been made to make sure method SetCartReadyForPaymentAction works correctly when POS API is scaled out across multiple instances.

Exception for unknown receipts in ReceiptOnHold service

(RTP-23244)

Incorrect exception for unknown receipts was thrown from ReceiptOnHold service after changing POS API to run as 64 bit. This has been fixed.



Released 21.06.2023

Run as 64 bit process to improve performance 

(RTP-23146)

We've updated POS API to run as a 64 bit process. This allows us better resource utilization, improving performance and increasing amount of available memory.

Improved warmup and health check

(RTP-22784)

The warmup procedure during startup of POS API has been improved. This will lead to a quicker warmup, it will solve issues with timeout during warmup, and will improve the reliability of the health check / availability test.

Shorter timeout against Voyado

(RTP-23111)

Improvements to timeout handling in the integration with Voyado has been implemented. If Voyado does not respond in 7 seconds on one of the following lookups, GetPromotionsByContactId / GetMemberByIdentifier / GetMemberLevelForContactId, POS will cancel the lookup by passing a cancellation token. 



Released 15.06.2023

SetCartOrderReferenceExt does not work when scaled out

(RTP-23075)

Method that allows adding order reference to the cart has been improved to support scale out. Customer orders without a customers are now handled properly by SetCartOrderReferenceExt method.

CheckPrice does not handle start/stop time correctly

(RTP-22801)

Using CheckPrice on an EAN that is part of a campaign with dateTimeStart/Stop set to NULL in the condition table no longer fails.



Released 14.06.2023

GetCart does not work on resumed carts

(RTP-22793)

We've implemented functionality for POS API to return the correct cart when running GetCart request on a previously suspended and resumed cart, when using the original cartId from the initial NewCart request.

Show in Cart which coupon discount that triggered

(RTP-22807)

CouponCodes on selectable coupons from Voyado.

We've changed the couponCode to show the offer ID instead of using the membernumber / voyado customernumber as couponCode.

We've also implemented a field in discountDetails in cart, that shows which couponCode was used to trigger the relevant discount.

GetCart returns 0 quantity on Click&Collect carts

(RTP-22797)

When calling the method GetCart on a reserved cart, it now displays the correct quantity for each EAN added to the cart also for click and correct orders.

Config is read from wrong store when starting cart editing

(RTP-21705)

Incorrect configuration used when editing cart.

An issue that could cause incorrect configuration to be used when editing a cart has been fixed. The problem happened when editing the cart from a different POS API instance. (using multiple instances in cloud or multiple installed instances of POS WCF on-prem)

SetDigitalReceipt request fails on uncached receipt

(RTP-22840)

SetDigitalReceipt can fail running on multiple instances.

A problem that could cause SetDigitalReceipt to fail when POS API is running on multiple instances has been fixed.



Released 01.06.2023

NewCartWithItemReturn requests are missing OperatorID on the response

(RTP-19790)

Using the method NewCartWithItemReturn it is now possible to change the Operator of the cart. 

Improve performance of loading group mixes from database

(RTC-32068)

Performance of loading mix information from the database was improved when an item is contained in a lot of different mix definitions.



Released 30.05.2023

Parallel calls to BeginCartEditing

(RTC-31880)

Indexing was changed to improved performance of parallel calls to the method BeginCartEditing.

ArticleDetails is missing on link items

(RTP-22681)

When adding an item with a linked item, the linked item's details will also be added in the POSLog XML, provided that the parameter IncludeArticleDetails is set to tTue.



Released 10.05.2023

Reduce amount of SaveReceipt on DeliverCartItem

(RTP-21679)

The amount of SaveReceipt instances was significantly reduced when calling DeliverCartItem method on a given cart. It results in less time spent on processing for every cart. 

Discount description element does not match with swagger

(RTP-22574)

Swagger documentation of attribute Description for itemSale.CartItemDiscountDetail was updated to be nullable.

Fetch PLU board configuration

(RTP-22008)

Added new method GetPluConfiguration. Request has to contain APIKey and optional StoreIdentifier.

The method can be used by clients to fetch items in a structure like: Top menu → Sub Menu(s) → Item (s) and show a PLU list to allow the user to select and sell items.
Parameter PluBoardsDefinition has to be configured in POS config for a given cash register.



Released 08.05.2023

Set ExternalLoyaltyNumber in Cart

(RTP-22431)

ExternalLoyaltyNumber is now displayed in the cart response



Released 02.05.2023

Create bundle

(RTP-19519)

It is now possible to create, remove and alter ad hoc bundle packages directly in POS and POSAPI. Price calculation for bundles was also altered to work together with other promotions, choosing based on the best price. 

Create method for removing entire bundle

(RTP-21383)

Added a new method RemoveBundleFromCart. It is now possible to remove an entire bundle at once from any given cart.

Not possible to use default customer in ReserveCartInStore

(RTP-22377)

We've implemented support for using ReserveCartInStore method in Cloud POS API. The method will now properly create a click & collect order to the store specified in your ReserveCartInStore request.

New method to add coupon discount to a Cart 

(RTP-21987)

We've created a new method in POS API to allow adding manual coupons to cart. AddCouponDiscountToCart - Function documented in swagger https://posapi.egretail-test.cloud/swagger/index.html



Released 12.04.2023

GetItems fails when requesting 2 EAN's for one EAN20

(RTP-19450)

When calling GetItems with 2 or more EAN-20 codes corresponding to the same main EAN, it now returns the item correctly. 



Released 04.04.2023

Receipt printing w/ EPOS Format ignores PrinterConfig

(RTP-21372)

When printing a receipt in EPOS format with GetPrintableReceiptExt method, the method no longer ignores the PrinterConfig parameter and follows the changes done there.



Released 30.03.2023

Convert remaining methods used for XXL

(RTP-21173)

The following methods are compatible with scaling out and being used across different instances of POS API:

  • GetCartIdByOrderNumber
  • EndCartEditing
  • SetCartItemPrice
  • AddCouponByDiscountCode



Released 07.03.2023

Cart calculator and first item of NewCartWithItems does not get any discounts

(RTP-21376)

The first item in a cart created by NewCartWithItems request will find its correct discounts/campaigns. This fix is done for both ItemSale and CartCalculator.

Correct discounts should now be shown in cart for all items.

Change pos api release pipeline stages

(RTP-19843)

Database upgrade stages are now merged to one stage, so that we can disable sync group and upgrade each tenant separately instead of disabling for every tenant, and only enabling once all tenants are updated fully.

This will significantly reduce the time lost in the process, if the upgrade fails.

Cart calculator and first item of NewCartWithItems does not get any discounts

(RTP-21376)

Price calculation of first item in receipt

FIX: The first item in a cart created by NewCartWithItems request will find its correct discounts/campaigns. This fix is done for both ItemSale and CartCalculator.

Correct discounts should now be shown in cart for all items.

Make ReloadConfiguration work without related stores exported

(RTP-17181)

The configuration is now reloaded without exporting related stores. It now selects store from the store table.

EndCartEditing fails validation when editing cart with negative subtotal

(RTP-21439)

We've fixed an issue where validation of cart failed on EndCartEditing requests. This validation has now been improved so that ending editing on carts with a negative subtotal (returns, for instance) now succeeds.



Released 21.02.2023

Return stop reason in ItemRequirementsNotMetFault

(RTP-19251)

Error message improvement

A new property - 'MessageToCashier', that shows a stop reason, has been added to 'ItemRequirementsNotMetFault' response.

New endpoint to fetch receipt in epos format

(RTP-21169)

Added a new endpoint that fetches the order receipt in the epos format.

Cached prices are filtered based on a single cart's timestamp

(RTP-20849)

When caching the price of an item, inactive prices are included so that if they activate within the cached duration, they will be available to be added to cart.

Revert breaking change in SetCartItemNote_Request

(RTP-20270)

The NoteKey field when adding Notes to items is no longer required and is now set as optional.



Released 08.02.2023

Revert breaking change in SetCartItemNote_Request

(RTP-20270)

The NoteKey field when adding Notes to items is no longer required and is now set as optional.

Add ShipmentProvider to DeliverCartItem

(RTC-20366)

Added ShipmentProvider field to DeliverCartItem method. Now the carrier name can be added to the delivery information.



Released 24.01.2023

Not possible to cancel order in Chain Web due to missing member.

(RTP-19511)

Customer orders are cancelled through POS API without showing error message in Chain Web.

POS / POS API performance issue with voided articles

(RTP-20286)

The request time does not increase rapidly when there are many voided/added items to cart.

Cloud POS API: spikes in SQL procedure duration

(RTP-20714)

We've made improvements to database executions that improves POS API performance, and alleviates an issue where some database queries sporadically spiked in duration.



Released 19.01.2023

Performance in cloud POS API

(RTP-19880)

POS API supports scale out to multiple instances of the same application service. This allows us greater performance during high load. This release also includes multiple performance improvements.
This change allows us to support auto scaling and requires no configuration. Scaling is handled by DevOps POSAPI team, in Azure portal.



Released 12.01.2023

Documentation for SetCartReadyForPaymentAction

(RTP-20191)

Documentation for SetCartReadyForPaymentAction was missing, and this is now published to swagger.
Link to documentation: https://posapi.egretail.cloud/swagger/index.html

Send order to Kitchen screen on-premise

(RTP-19641)

Enabled POS API to send kitchen order to on-premises POS Services via POS WCF relay.
Enabled POS API to assign numbers to kitchen orders that auto-reset daily.
KitchenOrderNumber value increases every time kitchen order is created. 



Released 04.01.2023

APIKey on method GetPLUConfiguration

(RTP-20266)

GetPluConfiguration was changed to not require cash register number as input.
New property APIKey was created and now it is used to find specify the store/cash register.

Member validation

(RTP-16640)

Customers get an error message regarding member card when arriving to the cash register to pay, and it may lead to re-scanning all items.
When adding member by scanning a QR code, member with deactivated card is no longer added to the transaction.



Released 15.12.2022

Fallback for electronic receipt E-commerce

(RTP-19306)

If sending mail with digital receipt fails due to e.g. downtime on services, the mail details will be saved in a new table in POS Local database and a job will retry sending the mail until it succeeds.
When the sending is successful, the row will be deleted from the table. When the job tries to send unsent mails, it will write the number of unsent rows/mails to the POS logfile.

POS Configuration

MailBackupSenderJobCronSchedule - set how often job should run.
Default value is every 30 minutes (0 0/30 * * * ?)



Released 06.12.2022

Improvement of POS API swagger documentation

(RTP-19839)

Swagger documentation of the following 3 methods has been improved: NewCartWithItems, AddItemsToCart, GetCart

  • A red star marks required fields.
  • Which fields are rounded in the response is specified.

Return PaymentTerminalType in Cart

(RTP-19696)

Added PaymentTerminalType to Cart. This method is needed for detecting what kind of payment provider is used to start refund in Mobile POS.
It is set in AddPaymentToCart2 and stored in POSLog. 

Option for not expanding bundles when added to item transaction

(RTP-18843)

Added a new parameter that gives the option to treat bundles as normal items in the POSLog, with less information shown.

Improvement of calculation rounding amount on customer orders

(RTP-16898)

An improvement is done so it's not possible to complete a receipt if the paid amount doesn't match the sale total on customer orders.
Previous there has been issues with some amounts of both positive and negative rounding on receipts from customer orders, and this potentially caused trouble for stores when doing balance registration.

POS Configuration

POSWCF Parameter 'AllowedDifferenceDuringSubtotalValidation'  (default '0') 

If activated; you can define a tolerance for this difference. If parameter is set to e.g. 0.5, the paid amount within +/- 0.5 of the sale total will be accepted.

POS API Data Export - Export of prices from EG Item/Promotion management

(RTP-15975)

A new job to export price data has been added to the POSApiDataExport package. This job includes the unique price identifier from EG Item Management.

  • The new ExportPrice job should be used when data is updated in POS Master from EG Cloud Item/Promotion Management
  • The existing ExportPriceItem job should be used when data is updated in POS Master from Chain Classic

The jobs used different procedures to fetch data in POS Master and will not affect each other.



Released 24.11.2022

Added DispatchServiceRule to DeliveryDetails

(RTP-18872)

Added a new DispatchRuleId field that is given in methods that return a cart. It can be set with CheckoutCart or SetCartDeliveryInfo methods.

Improvement of recalculation after completed checkout

(RTP-16799)

Methods EndKlarnaPayment and UpdateKlarnaPayment no longer recalculate the total amount in the created cart.



Released 16.11.2023

Introduced a new method called SetCartItemNotes

(RTP-18934)

A new method called SetCartItemNotes is added, which lets the user add/change item notes already added to a cart.
Notes can also be added now while using methods like AddItemToCart, NewCartWithItems and AddItemsToCart.

Added Backoffice as CustomerOrderProvider

(RTP-18621)

CustomerOrderProvider can now be set to Backoffice in Chainweb without causing problems for method BeginCartEditing. 
Backoffice was not supported as provider, and that made BeginCartEditing fail wen calling Pos Services CustomerOrderService to get information about supported providers. 

Capture and refund supporting Klarna.

(RTP-386)

There is now added functionality for performing capture and refund with Klarna in POS API.
Orders can be now paid and refunded with Klarna through POSAPI.



Released 20.10.2023

Improvement of logic of storing sequence number in database

(RTP-19051)

Sequence number is used twice due to missing logic in cache when an exception occur.
The receipts are no longer missing and there is no more duplicate sequence numbers for them.

Improvement of selling items with time restrictions

(RTP-17539)

When selling items with time restrictions, the time zone is now set correctly when trying to validate cart for purchase. 

Return Vensafe TicketId in Cart

(RTP-19074)

When Vensafe items in sold in PosApi there is now Barcode in Cart that should be used to get items from the vending machine.

Including color and size in ReturnItem response

(RTP-18823)

Two new attributes, Color & Size are added to "GetItemsAvailableForReturn" in ItemSale endpoint.
They are now included in the response.



Released 05.09.2023

Improvement of procedure of importing prices from Item Management

(RTP-17559)

Prices are now imported correctly from Item Management.
Additionally, when one item has duplicate prices it will no longer stop import, instead it will be handled without errors.

Improvement to loyalty number distribution

(RTP-18260)

CoopID is now only added to the ExternalLoyaltyNumber, while the member number is set to the LoyaltyNumber.

Improvement of linked item not being removed from POSLog

(RTP-18133)

When deleting an item from an order, linked item is removed as well. If linked item is removed instead of a main one, behavior is the same and both items are removed.



Released 24.08.2023

Vensafe integration in POS API

(RTP-15338)

Added support to reserve Vensafe articles from POS API. There is also a new method GetVensafeProducts that returns all available articles.

Improvement to GetCoopaySalesSummary

(RTP-18256)

When calling GetCoopaySalesSummary after GetCart, error is no longer thrown. Storenum and cashregister are now always set when fetching finished receipts.

Improvement of Click & Collect order

(RTP-14999)

When a Click & Collect order is picked, CustomerOrderVariant field is set to WebReservedStorePickup.



Released 08.08.2022

Improvement to loyalty number distribution

(RTP-17722)

CoopID is now only added to the ExternalLoyaltyNumber, while the member number is set to the LoyaltyNumber.




  • No labels