Date:
NewCartWithItemReturn requests are missing OperatorID on the response
Using the method NewCartWithItemReturn it is now possible to change the Operator of the cart.
Improve performance of loading group mixes from database
Date:
Parallel calls to BeginCartEditing makes it slow
ArticleDetails is missing on link items
Linked items
When adding an item with a linked item, the linked item's details can also be displayed in the POSLog, provided that the parameter IncludeArticleDetails is set to true.
Date:
Reduce amount of SaveReceipt on DeliverCartItem
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
Swagger documentation of attribute Description for itemSale.CartItemDiscountDetail was updated to be nullable.
Fetch PLU board configuration
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.
Date:
Set ExternalLoyaltyNumber in Cart
ExternalLoyaltyNumber is now displayed in the cart response
Date:
Create bundle
Bundles
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
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
Date:
GetItems fails when requesting 2 eans for one EAN20
Item with 2 or more EAN-20 codes
When calling GetItems with 2 or more EAN-20 codes corresponding to the same main EAN, it now returns the item correctly.
Date:
Receipt printing w/ EPOS Format ignores PrinterConfig
When printing a receipt in EPOS format with GetPrintableReceiptExt method, the method no longer ignores the PrinterConfig parameter and follows the changes done there.
Date:
Convert remaining methods used for XXL
The following methods are compatible with scaling out and being used across different instances of POS API:
- GetCartIdByOrderNumber
- EndCartEditing
- SetCartItemPrice
- AddCouponByDiscountCode
Date:
Cart calculator and first item of NewCartWithItems does not get any discounts
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
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
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
The configuration is now reloaded without exporting related stores. It now selects store from the store table.
Set nullable property correctly in the swagger contract
SetCartReadyForPaymentAction throws exception
EndCartEditing fails validation when editing cart with negative subtotal
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.
Date:
Return stop reason in ItemRequirementsNotMetFault
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
Added a new endpoint that fetches the order receipt in the epos format.
Define provided permissions
Cached prices are filtered based on a single cart's timestamp
Caching of prices
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.
Date:
Revert breaking change in SetCartItemNote_Request
Revert breaking change in SetCartItemNote_Request
The NoteKey field when adding Notes to items is no longer required and is now set as optional.
Add ShipmentProvider to DeliverCartItem
Added ShipmentProvider field to DeliverCartItem method. Now the carrier name can be added to the delivery information.
Date:
Cloud POS API: Reduce the number of database calls
Not possible to cancel order in CW due to missing member.
Customer order
Fix: Cancel customer order
Customer orders are cancelled through POS API wihtout showing error message in Chain Web.
POS / POS API performance issue with voided articles
Performance in carts with many voided items
The request time does not increase rapidly when there are many voided/added items to cart.
Cloud POS API: spikes in SQL procedure duration
We've made improvements to database executions that improves PosApi performance, and alleviates an issue where some database queries sporadically spiked in duration.
Date:
Performance in cloud POS API
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.
Date:
Documentation for SetCartReadyForPaymentAction
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
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 everytime kitchen order is created.
Date:
APIKey on method GetPLUConfiguration
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
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.
Date:
Fallback for electronic receipt E-commerce
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 * * * ?)
Date:
Improvement of POS API swagger documentation
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
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
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
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 eg. 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
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 eachother.
Date:
Added DispatchServiceRule to DeliveryDetails
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
Methods EndKlarnaPayment and UpdateKlarnaPayment no longer recalculate the total amount in the created cart.
Date:
Introduced a new method called SetCartItemNotes
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
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.
Date:
Improvement of logic of storing seequence number in database.
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.
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
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.
Two new attributes, Color & Size are added to "GetItemsAvailableForReturn" in ItemSale endpoint.
They are now included in the response.
Date:
Improvement of procedure of importing prices from Item Management.
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.
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.
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.
Date:
Vensafe integration in POS API
Added support to reserve vensafe articles from POS API. There is also a new method GetVensafeProducts that returns all available articles.
Improvement to GetCoopaySalesSummary.
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
When a Click & Collect order is picked, CustomerOrderVariant field is set to WebReservedStorePickup.
Date:
Improvement to loyalty number distribution
CoopID is now only added to the ExternalLoyaltyNumber, while the member number is set to the LoyaltyNumber.