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

Compare with Current View Page History

« Previous Version 258 Next »

Coming next release

Order Dispatch/POSAPI Paid lines deleted from Chain web are not refunded

(RTP-31954)

RemoveItemFromCart returns OperationNotAllowedInCurrentStateFault if paid or paidnow on the line is greater than 0.



Released 17.10.2024


Fix for success field in ResumeCart

(RTP-16190)

Response for success will return true if ResumeCart is succesfull, if ResumeCart fails it will return a fault or a exception. 


Released 03.10.2024

Lowest price last 30 days and calculated discount

(RTP-31666)

The LowestPrice and LowestPriceDiscount fields are added to the response under CartItem.

Adyen refunds

(RTP-28237)

When trying to refund an Adyen payment, it is possible to do it while setting the property WaitForResult=True on SetCartReadyForPaymentAction method. 


Released 26.09.2024

CouponCodeUsed in GetCart request

(RTP-30889

GetCart correctly returns CouponCodeUsed in DiscountDetails.

Unique Pick-up codes for Click and Collect Orders

(RTP-33208)

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

(RTP-31109)

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

(RTP-31190)

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

(RTP-18672)

Removing item which is previously/already removed will fail with an error

Coupon Type in SetLoyaltyIncart 

(RTP-29378)

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 

(RTP-33304)

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 

(RTP-32993)

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.

POS Configuration 

The following relevant parameters must be configured for this to take effect.

  • 'SaveExternalTransactionInfo' (default false) must be set to true.
  • 'ExternalTypeCodes' default value containing the default transaction types for the specific customer. 
  • 'ExternalLineTypeCodes' default default value containing the default line item types for the specific customer. 
  • 'TaxGroupIDs' default value containing the default tax group id's for the specific customer. 

Update in fault handling for invalid discounts

(RTC-41794)

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

(RTP-30989)

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 

(RTP-32350)

External Order Number can be set in ReserveCartInStore and is sent through POS Message.



Released 05.09.2024

Post-registration of members through NewCartForTransactions

(RTP-25537)

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

(RTP-26817)

ExtendedAmountRounded and ExtendedAmountOrderedRounded mismatch is fixed, which solves rounding issues in POS API. 

Fetching latest completed receipts

(RTP-26817)

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

(RTP-28666)

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

(RTP-32369)

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

(RTP-30400)

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

(RTP-29642)

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

(RTP-32043)

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

(RTP-27938)

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

(RTP-30760) 

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

(RTP-29904)

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

(RTP-31651)

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

(RTP-22425)

When customer Id and the default customer (ItemSaleServiceCustomerNumber) are same then customer information update will not happen.

Unit of measure for returns

(RTM-8262)

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 

(RTM-7977)

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

(RTP-30044)

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) 

(RTP-30620)

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

(RTP-30362) 

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

(RTP-17344)

The payment endpoint for POS API is now documented in Swagger. The added methods are:

  • /CancelBonusPayment
  • /CancelGiftCardPayment
  • /GetAvailableBonus
  • /GetCloudPaymentServiceConfiguration
  • /SetCartReadyForPaymentAction

Boarding pass count

(RTP-29731)

GetCart endpoint shows correct boarding pass count.

Delivered Cart ID in GetItemsAvailableForReturn

(RTP-28054)

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

(RTP-4100)

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

(RTP-28711)

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

(RTP-29750)

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

(RTC-40741)

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.

Required

POS Master 3.0.0.161 or higher
POS Import 4.0.68 or higher



Released 15.05.2024

New parameter skipAddingLinkedItems in NewcartWithItems and AddItem(s)ToCart

(RTP-23993)

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

(RTP-29427)

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

(RTP-29653

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

(RTP-28029)

Support for EANs with format defined in POS Configuration Parameter DiscountLabelRegEx is added to methods NewCartWithItems, AddItem(s)ToCart. 

POS Configuration 

New parameter: DiscountLabelRegEx

Configures a Regex for a new item price discount.

Example value:

Parameter is set to recognize 20 digit barcodes where digit 14 is zero. First 13 digits in the barcode is EAN. Last 6 digits in the barcode is the new price. Where enter for example 00000000060070008000, it sets a new price 80 for item with EAN 6007.

Override fixed price in cart

(RTP-28029)

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

(RTP-26364)

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

(RTP-28838)

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

(RTC-39594)

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

RTP-27152

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 

RTP-27674

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

(RTP-25090)

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

(RTP-24218)

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

(RTP-28258)

"couponCodeUsed" property on the discountDetails in cart shows the coupon used when it triggers a discount.

Improvements in price calculation performance

(RTP-27379)

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

(RTP-24568)

There is an ImageId field in addGiftCardToCart request. It allows specifying giftcard template used.

BatchToPosApi - Support for orders without payment

(RTP-28329)

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

(RTP-26466)

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 

(RTP-27657)

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

(RTC-37507)

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.

Required

POS Master 3.0.0.154




Released 26.03.2024

Voyado coupons only available in the assigned sales channel (POS, POS API or both)

(RTP-29204)

  • 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

(RTP-28407)

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

(RTP-27489)

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

(RTP-23640)

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

(RTP-26247)

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

(RTP-25060)

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

(RTP-28745)

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

(RTP-28670)

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 

(RTC-38280)

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

(RTC-35325)

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

(RTP-26686)

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"

(RTP-20726)

GetItem and SearchItem endpoints are returning the main EAN when local EAN sent in the request.

Change in GetCart Response (Error Handling)

(RTP-27053)

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

(RTP-21531)

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

(RTP-26285)

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

(RTP-27295)

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

(RTP-27933)

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

(RTP-26647)

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

(RTP-21277)

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

(RTP-27681)

Both external order number and internal order number are supported in order delivery and order payment BatchToPosApi jobs.

Coupon texts from Voyado

(RTP-25045)

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

(RTC-32140)

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.

Required

POS Import v. 4.0.64 or higher!

Capture and refund for Gift cards

(RTP-18210)

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

(RTP-24148)

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

(RTP-27867)

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

(RTP-25564)

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

(RTP-27296)

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

(RTP-25851)

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

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

Required

POS Import 4.0.63 or higher

See separate documentation for Jira story RTP-26535 for implementation details in POS

Improvement of mix calculation with effect items

(RTP-26464)

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

(RTP-25243)

Support for uploading JSON files that have multiple payment types is added to to BatchToPosApi. Orders with no payments can also be uploaded. 



Released 04.01.2024

VAT Rate in Price Export 

(RTP-22505)

VAT Rate is included in POS API Data Export (PriceExport job), which enables different VAT rates for different countries (multi-country support). Previously, this was only included in Item Export.

Required

POS Master 3.0.0.141

Decimal values in quantity for Item Transactions 

(RTP-27182)

It is possible to use decimal values when setting quantity on item transactions like breakage etc.

Changing cashier number in User Management

(RTP-26036)

Cashier number for a user can be changed in User Management. The user can successfully login to POS using the new cashier number.

Required

POS Master 3.0.0.141

BatchToPosApi - Support for importing through cloud POS API

(RTP-20252)

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

(RTP-26854)

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 

(RTP-25901)

New fields for alcohol percentage and amount in sales packages have been implemented. These will later be used related to calculation of Norwegian toll quotas.

(Changes in POS Import to read new fields from Item Management export will be released later when new fields are available.)

Maintaining cashiers in User Management - Manifest of cashier permissions in POS API

(RTP-21152)

A manifest of cashier permissions has been implemented in POS API. This manifest is used by User Management to know which permissions a cashier can have. (For example: Cancel receipt, Delete line etc)

Each time POS API is released, any new permissions will be added automatically to User Management so it can be used in user roles to give permissions to cashiers.

This initial release will add the following permissions to User Management:

Support for importing all of these new permissions has been added to POS Import and POS Master database.

The "old" POS permissions in User Management have been moved toa separate group "deprecated - do not use":

These should not be used and will be removed in the future when retailers using them have been migrated to using the new permissions.

Full text search fix for SQL 2008

(RTP-25778)

udf_SearchItemGenerateQuery function in POS Master database has been changed to ensure that full text item search would show accurate results based on typed in values for SQL 2008.

Fix for Promotions Mix type 10/13/39

(RTP-26470)

Mix 10/13/39 exported from Promotions Management are now imported and successfully triggered in POS.

Required

POS Master v. 3.0.0.138 or higher.



Released 29.11.2023

New Bonus flag when adding items to cart in POS API

(RTP-23096)

Added a new Bonus flag when adding items to cart in POS API, as well as a new field in the POSLog with the same name. Default value is false, but can be changed while sending the request. 

Support for bonus flag from Item Management

(RTP-24946)

Support for importing bonus flag from Item Management module has been added to POS Import.

Required

POS Import v. 4.0.59 or higher.

Support for import of assortment on profile

(RTP-25906)

Support for handling multiple assortments codes set on the item in the ItemManagement module has been added to POS Import. 

Note

Deletion of assortment codes exported per profile is not supported since we are not able to track the deletion. The event is not exported from ItemManagement module

Required

POS Import v. 4.0.59 or higher.



Released 22.11.2023

Improved error handling in POS API when adding coupons from Voyado 

(RTP-26395)

We have improved error handling in the POS API so that we don't experience calls to POS API failing if fetching coupons from Voyado fails.


Released 14.11.2023

Support UTC input in CalculateCart

(RTP-26025)

It is now possible to use UTC time for calculating future prices using CartCalculator/Calculate method.



Released 09.11.2023

ArticleDockingAreaDetails in methods to add item to cart

(RTP-24613)

It is now possible to add ArticleDockingAreaDetails using every method that adds items to cart. The result can be seen in the AddItemToCartExt response or by calling GetCartExt.

Zone redundant POS API

(RTP-25057)

POS API runs in Azure, and in each region (datacenter) there are 3 Zones available.

  • Each zone is completely separate from each other with their own power supply cables, cooling systems, network/internet connection and maintenance plan.
  • When Azure upgrades they will do it Zone by Zone. 

To avoid outages caused by hardware problems or caused by Azure upgrades in a zone, the POS API runs in a Zone Redundant group.

To be able to run in a zone redundant group, the POS API always runs with a default/minimum of 3 instances. (It can be scaled out to further instances if the load is high)

Microsoft guarantees that they won't do upgrades on multiple Zones at the same time, so if there are any issues with Zone 1, then Zones 2 and 3 will still operate as usual. 

Import Supplier Details Changes from Item Management

(RTP-24912)

Support for importing Suppliers/Manufacturers exported from Item Management module has been added to POS Import.

Required

POS Import v. 4.0.57 or higher.

Performance improvement for PosApiDataExport of item prices

(RTP-25812)

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

(RTP-24358)

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.

Support for Special Group of item from Item Management

(RTP-25547)

When importing items from Item Management, Special Group Text and Special Group Number are now also imported.

Required

POS Import v. 4.0.58 or higher

Svea as Payment Terminal Type

(RTP-25874)

POS API can now receive Svea as Payment Terminal type (paymentTerminalType) when adding payment information through addPaymentToCart2.

Support storing POS Configuration compressed in database

(RTP-23452)

To reduce the size of the staging.FlatJSON table, support for saving compressed POS configuration data in the database has been implemented in POS Import. The data is decompressed while entries are processed by the FlatJsonExecutor job from POS Import package.

Required

POS Master v. 3.0.0.134 or higher.
POS Import v. 4.0.58 or higher.

Add support for "Number of times the mix can trigger" for Mix 28 

(RTP-23095)

Support for "Number of times the mix can trigger" for Mix 28 has been added to POS Import, which sets the maximum number of time the offer can be used.

Required

POS Import v. 4.0.58 or higher.

Overriding of price to 0

(RTP-24031)

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

AlternativeOperatorId as OperatorId

(RTP-25814)

When no operator is set in NewCartWithitems and the configured ServiceOperator is not an integer, the AlternativeOperatorId parameter value will now be used in the receipt.

Import multi-country item group texts

(RTP-25618)

Support for importing country-specific item group text is added to POS. This will enable showing the item group text in the language of the country the cash register is in.

Required

POS Import v4.0.57 or higher

POS Master v3.0.0.132 or higher



Released 12.10.2023

New optional argument for datetime for price calculation

(RTP-23667)

Extended cart calculator with new optional argument for datetime for price calculation. It can be used to calculate what the prices are in the future, using a campaign that is set for a later date. 

Sending digital receipt by email after checkout

(RTP-23782)

A new method in POS API called SendDigitalReceipt is implemented. This method will allow clients to retroactively send digital receipt by email, after the receipt has been checked out/finalized.

Read-replica of POS database for improved performance

(RTP-25234)

In environments where premium elastic pool is available for databases, a read-replica of POS Master will be used by POS API to fetch data. (For example items, prices etc. used by cart operations in POS API)

Using the read-replica improves performance, and avoids performance degradation during import of new/changed data. 

Search for customers in a given store using full text search

(RTM-6466)

When searching for a customer using a full text search, store number is now taken in to account. This means that clients with common customers will be able to search for customers in a given store, instead of finding the same customer multiple times when searching.

Required

POS Master v. 3.0.0.130 or higher.



Released 05.10.2023

SearchCustomer returns only the entry of the customer for the specified store

(RTM-6180)

When searching for a customer wherein the store number (storeNumber) is defined, the response would only return the entry of the customer for the given store number.

Required

POS Master 3.0.0.128 or higher.



Released 03.10.2023

Improved performance of mix 24 and mix 28 in POS API

(RTP-23150

Improvements have been made to the performance of mix 24 and 28 for model mixes with large number of items. Performance is now significantly better in POS API.

AmountLimitPerReceipt now matches with the maximum purchases per receipt for the campaign

(RTP-23264)

When exporting campaign mixes from Chain Classic to POS API, the AmountLimitPerReceipt no longer changes value and it stays the same as the value provided in the maximum purchases per receipt for the campaign. 

Required

POS Master v. 3.0.0.127 or higher.

Import Cashiers from User Management

(RTP-18519)

Support for importing cashiers and hashed PINs from User Management module are added in POS Import.

Required

POS Import v. 4.0.55 or higher.
POS Master v. 3.0.0.125 or higher.

Show couponAmount for Voyado bonus checks 

(RTP-25126)

The couponAmount field will now show the correct amount when fetching Voyado bonus checks using the POS API. Previously the couponAmount would allways be '0.0'.

Import of item weighted cost price per store

(RTP-22482)

The weighted cost price of an item per store is imported to POS. The weighted cost price is now used regardless of the price is used in the sale (normal, campaign, member, mixmatch). If there is no weighed cost price, the normal net cost price is used.

Required

POS Master v. 3.0.0.127 or higher.
POS Import v. 4.0.55 or higher.

Improved performance of import of prices and discounts from Promotion

(RTP-22922)

To reduce delay from creating and approving a promotion in promotion module, and getting them available in POS, we've made procedural changes to how we import these updates, which will result in better performance between products.

Required

POS Master v. 3.0.0.127 or higher.


Released 28.09.2023

Removal of validation for payment in BatchToPosApi for orders already checked out 

(RTP-24697)

The validation for payment in BatchToPosApi for orders already checked out is removed. Orders with no payment will no longer cause an exception. 



Released 19.09.2023

Add link between PLU Board Page and Button in GetPluConfiguration

(RTP-22970)

Buttons are now linked to their respective PLU Board Pages in GetPluConfiguration method. This can be used to render the PLU Board Pages with the correct buttons.

Monitoring of data import in POS Master database

(RTP-23741)

A SQL stored procedure that will be used to monitor data import to POS Master database in cloud was created. This will be used in the upcoming release of the UI to monitor import of data in POS Management.



Released 14.09.2023

Support Customer groups on offers 

(RTP-22074)

If an offer is created for a specific customer group, the offer should only be applied in the POS when a customer belonging to that group is added to the receipt.

Required

POS Import v. 4.0.54 or higher.
POS Master v. 3.0.0.123 or higher.

Import of reason/actions codes from Inventory Service

(RTP-20702)

Support for importing reason and action codes from Inventory Service has been added to POS Import.

Required

POS Import v. 4.0.54

POS Master v. 3.0.122 or higher (to make this functionality to work in POS).

Please note that the 'Country' parameter from POS Config is used instead of the 'CountryCode' specified on the storeGroup when fetching reason codes.



Released 12.09.2023

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.

Performance improvement for cart with lots of bundles

(RTP-24120)

The performance of calculating a cart with lots of bundles added was significantly improved. The speed of adding new items as well as checking out the cart is now stable. 

Items in more than one bundle

(RTP-24512)

When adding bundles with the same EANs included in more than one bundle, the discounts no longer jump between them. Each bundle has its own matched discount that is uniquely assigned to them.



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.

Import of POS Management Reason Codes from POS management Cloud module

(RTP-22678)

Support for importing of reason codes exported from POS Management cloud module has been added to POS Import. 

Required

POS Import v. 4.0.52 or higher.
POS Master database v. 3.0.0.122 or higher.



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