Coming next release
...
POS Maintenance - Improvement for handling retries for OrderPaymentJob
(RTP-22425)
When customer Id and the default customer (ItemSaleServiceCustomerNumber) are same then customer information update will not happen.
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.
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.
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.
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.
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.
An improvement on how faulted OrderPaymentJob executions are handled is implemented. If there is a transient error causing the job to fail, the system now has a new retry strategy, where there is an increasing delay of 10 minutes for each retry. This increases until the configured maximum amount of retries have been attempted, or processing of the order is finished.
This means there's a greater chance that an order failing from a transient error will be fixed by automatic retries.
New retry strategy:
- First retry - no timeout.
- Second retry - 10 minutes after previous.
- Third retry - 20 minutes after previous (so 30 after first in total).
- And so on until maximum number of retries is reached (default 5) or processing is successful.
Order Dispatch/POSAPI Paid lines deleted from Chain web are not refunded
RemoveItemFromCart returns OperationNotAllowedInCurrentStateFault if paid or paid now on the line is greater than 0.
Change in offline exception when searching for on-hold receipt
When searching for a non-existent on-hold receipt in POS and ReceiptOnHoldServiceUrl is configured, this is no longer considered as an "offline" exception. The "offline" exception will still occur and will be logged if the URL configured is indeed offline.
Split Delivery in BatchToPosApi
Support for splitting delivery for a line item is added to BatchToPosApi. This means that if partial quantity of an ordered item is delivered to the customer, the remaining quantity will be added as a new line item.
Multiple active discounts
When there are multiple discounts available for items in the cart, they are properly selected, so the best price is picked.
BatchToPosApi - Filtering entries to fetch the details from the last 48hrs from the database
Filter FlatBatchJsons entries based on their Created timestamps, ensuring only entries from the last 48 hours are selected in the database.
POS Maintenance - Updated transformation code for versioning POSLogs from Cloud to On-Prem
Updated the transformation code used to transform the POSLog version of cloud to On-Prem to make it more efficient.
Support for limited use coupons from Coupon Service
AddCouponByDiscountCode is extended to support limited use coupons from Coupon Service. When a coupon code is added in discountCode field, first it is checked if it matches a coupon from Promotions Management. If it does not match with any coupon from Promotions Management, the coupon is checked in Coupon Service. The discountCode can only used based on the allowed number of times defined for it in Coupon Service, and if it is redeemed more than the allowed number of times there will be an error encountered during CheckOutCart. When an invalid discountCode is added, meaning it does not exist in both Promotions Management and Coupon Service, then an error is returned.
Prevent deletion of newly created cart and added a message to cancel the cart instead of delete
To prevent deletion of newly created cart, checks and tests were added to ensure that newly created carts are cancelled and the same is asked via message to the user.
DigitalReceiptMdsAccountId POS parameter
Digital receipt is send with account id based on new DigitalReceiptMdsAccountId parameter value.
Error message includes EAN of the item
To make it easier to identify which item is causing a problem, when you get ItemSaleNotStarted error, or ItemSaleEnded, the error message will now include the EAN of the item.
Link for FAQ added in the swagger index page
FAQ link for POS API was created and added in the swagger index page.
Refund of order paid with Klarna
Service agent for Klarna library has been updated. It is possible to do a Klarna refund.
Allow adding payments with amount 0
Payment with amount 0 is allowed in AddPaymentToCart2 and CheckoutCart for all payment types.
Improved cart performance in begin cart editing
The begin cart editing endpoint now uses the short text value instead of the full text value. This prevents cart timeouts and ensures the cart works smoothly when editing begins.
Automatic reload of POS Configuration
The POS configuration for all cash registers are automatically reloaded from the database every time there is a configuration change, ensuring the latest settings are applied without any manual intervention.
Search optimization
Item search has been improved by adding a non-clustered index for model column in in the Azure DB dbo.ItemFTView.
Improve the performance of ItemExt/SearchItem endpoint to get faster result when called
Updated the ItemExt/SearchItem endpoint to ignore the single character search.
...
Released 17.10.2024
Fix for "success" field in ResumeCart
Response for success will return true if ResumeCart is successful, if ResumeCart fails it will return a fault or a exception.
...
Released 03.10.2024
Lowest price last 30 days and calculated discount
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.
...
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
...
(RTP-29492)
Support for importing store opening hours from Store management module has been added to POS Import
Info | ||
---|---|---|
| ||
POS Master 3.0.0.158 or higher. |
Fix for missing operator in POSLog conversion
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. Missing operator that caused POSLog processing to fail for those converted to a lower version is fixed. OnPremiseSupportedPOSLogVersion must be specified.
...
Released 01.07.2024
Conditional Setting of 'CustomerId' During Member Fetch
...
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.
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.
...
Released 07.06.2024
Returns through BatchToPosApi
...