Coming next release
...
Lowest price last 30 days and calculated discount
(RTP-26090)
A Cashier Card can be linked to a cashiers in User Management. This cashier card ID is updated into POS database by POS Import and can be used to log in to EG POS.
Info | ||
---|---|---|
| ||
POS Import 4.0.63 or higher |
Info |
---|
See separate documentation for Jira story RTP-26535 for implementation details in POS |
Improved error messages
The LowestPrice and LowestPriceDiscount fields are added to the response under CartItem.
Adyen refunds
When trying to refund an Adyen payment, it is possible to do it while setting the property WaitForResult=True on SetCartReadyForPaymentAction method.
The line note is added to all selected items for the return
If the parameter 'AddLineNoteToComplaint' is active, a line note is added to all items selected for return during the online return process.
Order Dispatch/POSAPI Paid lines deleted from Chain web are not refunded
RemoveItemFromCart returns OperationNotAllowedInCurrentStateFault if paid or paidnow on the line is greater than 0.
...
Released 26.09.2024
CouponCodeUsed in GetCart request
GetCart correctly returns CouponCodeUsed in DiscountDetails.
Unique Pick-up codes for Click and Collect Orders
Due to concurrency, duplicate pickup codes were used for different orders for the same store. After fix, all Click and Collect orders will get unique pick-up codes.
Improved error handling for import of orders/sales
When the order/sale received by the BatchToPosApi package fails with an InvalidQuantityFault, CartItemNotFoundFault or CartIsCancelledFault - it no longer retries after the initial fail.
BatchToPosApi - Fix for rounding in fuel sales
When creating a receipt in POS API based on a fuel sale receipt, the rounded total amount is the same as the amount stated in the initially received file.
RemoveItemFromCart should fail if the item is already removed
Removing item which is previously/already removed will fail with an error
Coupon Type in SetLoyaltyIncart
SetLoyaltyIncart returns the coupon information for the cart with in the new field "Type" to indicate what type of coupon it is. Possible returned values are: Unknown, CouponId, CustomerId, Bonus, BonusReward, BonusAmount, BonusCheck, StampCard, TenderCoupon.
BatchToPosApi - Delivery address not required for click and collect
(RTP-4516)
When the delivery method is set to "LRS.RIS" (click and collect), the delivery address is not be required.
BatchToPosApi - Adjust ordered quantity in deliveryOrder
It is possible to adjust ordered quantity using the deliveryOrder file type through BatchToPosApi. The items must not have been already delivered.
...
Released 19.09.2024
Customer-specific transaction details in POS API
Structured notes for 'ExternalTypeCode', 'CountryCode', 'ExternalLineTypeCode', and 'TaxGroupID' are included in all EG POSLogs from the POS API. Even if a receipt is converted to a lower POSLog version that doesn't support these fields, the information is retained in the POSlog as long as the version supports structured notes. The structured notes correctly translate to ARTS extensions during conversion in ReceiptService, ensuring consistent handling of transaction data across different versions and sources.
Expand | ||
---|---|---|
| ||
|
Update in fault handling for invalid discounts
GeneralFault is returned for scenarios wherein an invalid discount is added to cart (ItemSale/SetCartItemDiscount endpoint). This replaces InvalidDiscountFault since it is not in the list of possible faults in the contract.
InvalidCastException in POSAPI resulting in 500 error code
We're encountering an Invalid Cast Exception on certain endpoints related to POSLog, which is causing the POS API to return a 500 error. This issue has been resolved by updating the error code to 400 and providing a valid failure message.
External Order Number
External Order Number can be set in ReserveCartInStore and is sent through POS Message.
...
Released 05.09.2024
Post-registration of members through NewCartForTransactions
Adding a member to a finished receipt can be done by passing the value "PostRegisterCustomer" for transactionMode in NewCartForTransactions method, including a reference to the finished cart in cartReference. The loyalty number of the member can be added by using SetLoyaltyInCart method using the cart ID in the response from NewCartForTransactions.
Fix for rounding issues
ExtendedAmountRounded and ExtendedAmountOrderedRounded mismatch is fixed, which solves rounding issues in POS API.
Fetching latest completed receipts
The latest completed receipts can be fetched by using GetLatestCompletedCarts. By default, the end point returns the last 50 receipts, but it can be configured to retrieve between 1 and 200 receipts.
...
Released 28.08.2024
Update Klarna after capture
When updating an order in POS API, by reducing the quantity of an item or deleting an undelivered item, the Klarna payment is updated. After the change in quantity and capturing the transaction, the remaining amount is released in Klarna and no longer requires settling.
Fix for missing operator in POSLog conversion
Missing operator that caused POSLog processing to fail for those converted to a lower version is fixed. OnPremiseSupportedPOSLogVersion must be specified.
Error improvement for bundle sales
400 bad request is returned with "InvalidPrice fault" when attempting to sell a bundle with price higher than individual items.
Error message regarding coupons improvement
When an invalid or expired coupon is added or used, proper error message is displayed.
...
Released 08.08.2024
Improved error handling in SetStoresForCartOrderPicking method
When using the SetStoresForCartOrderPicking endpoint with a non-existing item identifier, the response is more descriptive. It gives information about the cart id and the wrong cart item identifier.
Removal of picking order when using DeleteCartOrder
Deleting an order from cart in POS API also deletes it in Backoffice, as well as makes it unavailable for picking in InStore App.
...
Released 23.07.2024
CouponValidationType in CartCalculator
CouponValidationType parameter is added to CartCalculator method, wherein value can be set to either "None" or "Online". When value is set to "Online", CartCalculator contacts coupon provider and fetches all the available coupons, and if there are coupons added in the request, they are ignored. When value is set to "None", no online validation is done and only the coupons added in the request are added. If parameter is left out in the request, the default value is "Online".
Sending SMS for cancelled click and collect orders
Method SendCartOrderConfirmationNotification can be used on already finished/cancelled receipts to send SMS with information to the customer.
SKU (Stock Keeping Unit) in POSLog XML and ARTS POSLog XML
Extended POSLog with string field called "SKU" in element "ArticleDetails".
The new field is also included in the transformation to ARTS POSLog XML v2/v6.
...
Released 11.07.2024
Restrict update of default customer information
When customer Id and the default customer (ItemSaleServiceCustomerNumber) are same then customer information update will not happen.
Unit of measure for returns
Calling GetItemsAvailableForReturn returns the unitOfMeasure property in the response, set to one of the following: Kilogram, Meter, Liter, Gram, Piece, Meter, Hour.
Items that are set to be not sold
When searching for items in POS API using the SearchItem methods, items with the flag IsDeleted = True don't show up in the results.
...
Released 01.07.2024
Conditional Setting of 'CustomerId' During Member Fetch
When fetching a member from PosCustomerService to POS API, the customer ID is included if the response contains any 'CustomerId'. This ensures that discounts can be applied based on the customer, not just the member information fetched
...
Released 27.06.2024
Support for EAN14 (D-PAK/DUN)
When adding an item to cart, it is now possible to add it by using an EAN14 (D-PAK/DUN) number. If the item has the property quantityInSmallPackage set, the quantity specified in the request will be multiplied by the amount set as the value for quantityInSmallPackage.
PosApiDataExport changes in POSPriceItem and POSPrice
We've added the value offerId to POSPriceItem and POSPrice export formats, to easily identify which promotion each promotion price belongs to in the export.
Documentation for payment methods
The payment endpoint for POS API is now documented in Swagger. The added methods are:
- /CancelBonusPayment
- /CancelGiftCardPayment
- /GetAvailableBonus
- /GetCloudPaymentServiceConfiguration
- /SetCartReadyForPaymentAction
Boarding pass count
GetCart endpoint shows correct boarding pass count.
Delivered Cart ID in GetItemsAvailableForReturn
Delivered Cart ID is added to each line item for end point GetItemsAvailableForReturn. This makes it possible to return items from different paid receipts in the same return.
...
Released 07.06.2024
Returns through BatchToPosApi
Support for sending return order JSON files to BatchToPosApi is supported, while providing the orderNumber for the cart we want to return from. The files can be sent as either CompletePosApiOrder or BasicPosApiOrder.
AgeVerificationResult retained from previous receipt when resuming a cart
When BeginCartEditing is called on a cart with age restricted items and RequestAgeVerification = FALSE, AgeVerificationResult is retained from previous receipt.
...
Released 23.05.2024
Fix for exceptions generated when searching for receipts on hold
Calling SearchReceiptOnHold no longer causes exceptions when ShopAndGoReceiptOnHoldServiceURL parameter is configured and IsShopAndGoCheckoutRegister is set to true.
Import of item attributes related to duty-free and grocery
Attributes 'Duty free', 'Sealing bag', 'Restricted', 'Origin' and 'Weight control' are visible in item details, and are exported and imported by both JSON and Excel files. Origin and weight control can be defined as store local values.
Info | ||
---|---|---|
| ||
POS Master 3.0.0.161 or higher |
...
Released 15.05.2024
New parameter skipAddingLinkedItems in NewcartWithItems and AddItem(s)ToCart
A new optional parameter, skipAddingLinkedItems, is added to NewcartWithItems and AddItem(s)ToCart. This parameter is used to either add or skip the linked item. If this is true, any linked item will not be added to the cart. If this is false, any linked item will be added to the cart if it exists. This would work with items that have overriden VAT in the cart. In BatchToPosApi, skipAddingLinkedItems is set to true for complete order import, which results in skipping of linked item on the cart.
BatchToPosApi cardIssuerIdentifier mapping settings
Mapping settings are added for cardIssuerIdentifier to the BatchToPosApi LIP package. When configured with given values, it will use those values as cardIssuerIdentifier when creating the POSLog.
BatchToPosApi - Fix for Subtotal Rounding value
The remaining amount to pay is no longer stored in the SubtotalRounding element in the POSLog. The field only stores the rounded amount.
...
Released 07.05.2024
Support EANs that allows to add price discount to the specific item
Support for EANs with format defined in POS Configuration Parameter DiscountLabelRegEx is added to methods NewCartWithItems, AddItem(s)ToCart.
Expand | ||
---|---|---|
| ||
|
Override fixed price in cart
When AllowLineDiscountOnFixedPricedItems POS parameter is set to true, it is possible to change price if an item with fixed price.
...
Released 02.05.2024
Group links for linked items
When a cart contains linked items, the group links for those items are no longer duplicated when BeginCartEditing is used. The duplication previously caused an exception.
...
Released 25.04.2024
BatchToPosApi - ShippingProgress in Order Delivery
ShippingProgress can be sent as part of the JSON body in the order delivery file through BatchToPosApi. The chosen value will be then used in the DeliverCartItem request and saved in the POSLog XML as ShipmentProgress.
POS Maintenance - SendEobdJob exception handling when a cash register has missing number series
If a cash register has a number series missing, it doesn't fail the SendEobdJob. Instead, it logs a warning and proceeds with the rest of the cash registers that have the proper configuration. The EOBD receipt is created at a previously specified time.
...
Released 18.04.2024
FaultCode added to GeneralFault response
New parameter FaultCode, which is a string property on the PosApiBadRequestResponse, is returned for bad requests in POS API.
PosApiDataExport - Id and VatRate in PriceItem export
The following are added in PriceItem export:
- Id is included for normal price and campaign price in the exported blobs
- VAT rate is included for normal price in the exported blobs
New cart properties for delivery/payment state
Properties added for carts:
- OrderedTotal on cart item:
- OrderedTotal - The original ordered total price of the cart item. 0 for carts created with cartType "Sale".
- On cart item quantities:
- Delivered - Quantity delivered in previous edits of the cart. 0 for carts created with cartType "Sale". Not rounded.
- PaidNow - Quantity paid in current edit or when cartType is "Sale".
- Paid - Quantity paid in previous edits of the cart. 0 for carts created with cartType "Sale". Not rounded.
...
Released 11.04.2024
Extended response in Cartcalculator for campaign/offer
Three new parameters are included in the response of cart created with promotion item
- externalOfferNumber: This is the Offer Code in Promotions user interface.
- externalPromotionNumber: This is the Promotion Code in Promotions user interface.
- offerNumber: This is the Offer ID in Promotions user interface.
Changes in CartResponse when coupon is used
"couponCodeUsed" property on the discountDetails in cart shows the coupon used when it triggers a discount.
Improvements in price calculation performance
Generic improvements has been made to performance of price calculations in POS. Some mixtypes will be significantly faster than before with many items in the mix/receipt.
ItemSale/AddGiftCardToCart
There is an ImageId field in addGiftCardToCart request. It allows specifying giftcard template used.
BatchToPosApi - Support for orders without payment
Orders with no payment lines included are properly processed and merged in the BatchToPosApi database.
BatchToPosApi - Fusion Fuel Integration - Import of fuel transactions from outdoor payment terminals
Fuel sale orders are imported by the new FuelSaleImport job in BatchToPosApi. Afterwards, the SaleFromStagingToPosApi job is triggered on schedule. The job calls POS API endpoints based on the JSON content that was derived from the fuel sale POSLog. In this way, a new cart and POSLog are created in POS API for the sale receipt that was received.
Improved logging for BatchToPosApi - Reference Number
Improved logging for batchToPosApi LIP package by adding reference number to the logged information. This lets the user easily track which cart failed and at what point in time it happened.
...
Released 02.04.2024
Pickup codes for Click and Collect Orders
CheckOutCart and ReserveCartInStore endpoint contract has been updated with option to generate Pickup code.
- If generatePickupCode value is set to True (Default value is false) in the request, then response contains the newly generated PickupCode
- If generatePickupCode is set to false in the request, PickupCodecode will not be generated.
Info | ||
---|---|---|
| ||
POS Master 3.0.0.154 |
...
Released 26.03.2024
Voyado coupons only available in the assigned sales channel (POS, POS API or both)
Voyado coupons that is marked in Voyado as only available in web shop will be visible only in web shop (through the POS API). Similarly, coupons marked available in store (in Voyado) will only be available in POS in physical stores. Lastly, if a coupon is marked in Voyado as available both in store and in web shop it will be visible both in POS and in the web shop (through the POS API).
Support for item number in GetItem, GetItems and ParseScanCode methods
When searching for items via the GetItem, GetItems or ParseScanCode methods in POS API, item number can be used as the input to get the item details.
Online return fails if item is paid before delivery
When returning an item, which was bought with a discount, via the NewCartWithItemReturn method, it no longer fails when the IncludeDiscountsInOnlinereturn=true.
Move empty cart validation from RemoveCartItem to CheckoutCart
Previously, it was not allowed to delete all items in the cart using RemoveItemFromCart. This is changed and validation for empty cart is moved to CheckoutCart.
Product series in GetItem response
ItemExt/GetItem response is extended to include item product series (productSeriesName). This can be used in ItemExt/SearchItem to be able search for other items with the same product series.
...
Released 08.03.2024
Pre-validated gift cards for sale and payment
When paying for an order, it is possible to make the transaction with a pre-validated gift card using the AddGiftcardPayment method. Pre-validated gift cards can also be purchased like other items by adding them with AddGiftcardToCart method.
BatchToPosApi - Support for line discounts when using SKU/Item Number to identify order lines
When POS API is configured to lookup items on item numbers, BatchToPosApi supports assigning line discount when SKU/Item Number is used instead of EAN to identify items on order lines.
...
Released 28.02.2024
BatchToPosApi - Support for item number in adding to cart
Procedures used by BatchToPosApi are changed to support using an article's item number for adding it to cart.
Dispatch Orders - Fix for error in swapping item and cancelling
It is possible to swap items or cancel an order in Dispatch Order Chain Web without any server side errors.
Changes in DeliverCartItem when splitting a line item
When splitting a line while delivering items (using DeliverCartItem), item and price information is no longer taken from the database but from cache instead.
...
Released 22.02.2024
PreferredDeliveryDateTime in ReserveCartInStore
ReserveCartInStore is updated to send/receive preferred date time of a delivery (PreferredDeliveryDateTime) of a click and collect order.
Changes in functions "SearchItem" and "GetItem"
GetItem and SearchItem endpoints are returning the main EAN when local EAN sent in the request.
Change in GetCart Response (Error Handling)
When calling getCart while the usp.getReceiptBy procedure is not working or the database is unavailable, the returned error is GeneralFault type, thus differentiating it from the previous CartNotFoundFault.
BatchToPosApi Cleanup Job
Added StagingCleanUp Job to clean the records from FlatBatch and FlatBatchJson Table to delete old processed rows and free up disk space.
Customer order variant in POS Message
Customer order variant is part of POS message that is sent to POS. It is then used by POS to differentiate orders in order to display them in different tabs of user interface.
Extend GetCart or GetCartExt with flight information
When fetching carts via GetCart or GetCartExt, we've added the flight information from POSLog to the cart response. This is to allow clients to display such information in their applications when showing the receipt.
Support unique order numbers in GetCartIdByOrderNumber and BatchToPosApi
A new field called 'isUniqueOrderNumber' was added to the GetCartIdByOrderNumber endpoint. When set to True, the set store number will be ignored and set to 0, which results in the method searching for the CartId in all stores on a given tenant.
For BatchToPosApi, a new parameter called 'useUniqueOrderNumber' was added to the DeliveryFromStagingToPosApi and PaymentFromStagingToPosApi jobs. When set to True, the job will call the GetCartIdByOrderNumber endpoint with isUniqueOrderNumber=True.
...
Released 07.02.2024
Adyen Checkout
Adyen is available as a payment terminal in POSAPI. It is possible to pay for an order with an authorized Adyen payment. After the transaction, the payment can be captured by using PaymentService to contact Adyen itself.
Exception when main currency is a supported currency
Fixed exception thrown by EndCart and CheckOutCart endpoints when Main currency is not a part of supported currency.
...
Released 01.02.2024
Support for InternalOrderNumber
Both external order number and internal order number are supported in order delivery and order payment BatchToPosApi jobs.
Coupon texts from Voyado
Coupon response contains title and description from the Voyado portal instead of the offer name from Promotions.
Improvement in handling VPI files in the error directory
Error handling in POS Import has been improved. The VPI error .txt files are removed from the Error folder after the insert to the database is successful.
Info | ||
---|---|---|
| ||
POS Import v. 4.0.64 or higher! |
Capture and refund for Gift cards
Support generic capture and refund with gift cards in POS API cloud is added. Orders can be paid and refunded with gift cards through POSAPI.
Handling of returns for orders with multiple deliveries/payments
When getting items available for return on a receipt, you can use the original cart ID when requesting, and the response will not include items that have previously been returned.
Handle security setting in communication with on-premise server
Improvements has been made to make sure method communication with on-premise servers works correctly regardless of security settings on the server.
...
Released 25.01.2024
Voyado coupon support in ValidateCartForCheckout
Voyado coupon support was added to ValidateCartForCheckout. It allows to validate correction of coupons in the cart. If there is an expired coupon, it is removed and prices are recalculated.
...
Released 22.01.2024
Cashier permission for quantity check
The cashier permission to retry quantity check can be added to a role in User Management. This makes it possible to have supervisors with extended permissions in POS that has to approve going to payment after a failed quantity check.
Improved error messages
Error Error messages that are returned for POS API and POS WCF have been improved.
- For missing price:
FaultType: NotPriceFound
Message:
- No price of type (Normal) rows found
- No price found for Article
- For missing EAN:
FaultType: ItemWithThisEanNotFound
Messages: Vary based on scenarios - For Cart cannot be completed in the current state:
FaultType: Vary based on the scenario.
Message: Depends on the situation, messages and fault type may vary
Here is the list of possible messages we can get
...
- :
...
- Receipt has uncommitted coupons
- Receipt has subtotal of XXXX. Tender back is required.
- Receipt has unpaid amount of XXXX. Tender amount is too low to proceed.
- There is no tender in the receipt.
- Receipt has pending background operation.
- Receipt has invalid coupons.
- Receipt does not have articles or payment terminal tenders.
- Receipt contains uncommitted giftcards.
- Receipt contains uncommitted credit notes.
- Gift card cancelled. New tender is required to complete the receipt.
- Credit note cancelled. New tender required to
...
For Timeout error:
FaultType: GeneralFault
Message: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Operation cancelled by user.
BatchToPosApi - Support for importing through cloud POS API
...
- complete the receipt.
- complete the receipt.
- For Timeout error:
FaultType: GeneralFault
Message: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Operation cancelled by user.
Import of cashier cards from User Management
A Cashier Card can be linked to a cashiers in User Management. This cashier card ID is updated into POS database by POS Import and can be used to log in to EG POS.
Info | ||
---|---|---|
| ||
POS Import 4.0.63 or higher |
Info |
---|
See separate documentation for Jira story RTP-26535 for implementation details in POS |
Improvement of mix calculation with effect items
When calculating price for promotions, EG POS will only fetch the items that is relevant for the calculation in the current receipt. This will improve the calculation time because there is less data to process. The improvement works particularly well for promotions with a large number of items.
BatchToPosApi - Support multiple tender types
...
Support for uploading JSON files that have multiple payment types is added to to BatchToPosApi. Orders with no payments can also be uploaded.
BatchToPosApi - Capture payment for web orders
When sending a JSON file to BatchToPosApi from 3rd party, it can now contain the CaptureDeliveredUnPaidItems flag. If the flag is set to True, BatchToPosApi will call SetCartReadyForPayementAction endpoint in POSAPI to finish the payment process. If set to False, the method is not calledcan also be uploaded.
...
Released 04.01.2024
VAT Rate in Price Export
...
It is possible to use decimal values when setting quantity on item transactions like breakage etc.
Changing cashier number in User Management
Cashier number for a user can be changed in User Management. The user can successfully login to POS using the new cashier number.
...
title | Required |
---|
...
item transactions like breakage etc.
Changing cashier number in User Management
Cashier number for a user can be changed in User Management. The user can successfully login to POS using the new cashier number.
Info | ||
---|---|---|
| ||
POS Master 3.0.0.141 |
BatchToPosApi - Support for importing through cloud POS API
Support for importing batch files received regarding orders, payments and deliveries through cloud POS API using the BatchToPosApi integration package is added.
BatchToPosApi - Capture payment for web orders
When sending a JSON file to BatchToPosApi from 3rd party, it can now contain the CaptureDeliveredUnPaidItems flag. If the flag is set to True, BatchToPosApi will call SetCartReadyForPayementAction endpoint in POSAPI to finish the payment process. If set to False, the method is not called.
...
Released 07.12.2023
Fields for alcohol percentage and amount in sales packages
...
Greatly improved the speed of exporting item prices in PosApiDataExport ExportPrice job. Previously a batch size of 100 took 2 minutes to complete with the old procedure. Now, a batch size of 1000 takes 2 seconds with the new procedure.
Group links for linked items
When a cart contains linked items, the group links for those items are no longer duplicated when BeginCartEditing is used. The duplication previously caused an exception.
...