Coming next release
...
POS Maintenance - Improvement for handling retries for OrderPaymentJob
(RTP-32647)
A status code has been introduced to handle scenarios where an invalid member is scanned. This ensures that the system provides a clear and standardized response when an unrecognized or incorrect member identifier is detected.
Payment for delivered articles
Changes made to payment job to capture payment only for the delivered articles.
VAT Calculation when OverrideDiscounts is used
The VAT amount is calculated correctly when the OverrideDiscounts parameter is used in cart.
Handle delayed refund transaction status
Created new table and methods along with updated services to update the transaction status incase for a delayed refund transaction.
Support Alternative VAT Rate
A new parameter, AlternativeVat, has been introduced to be able to support alternative VAT rates (for example for takeaway). If set to True, it will fetch the alternative VAT from the POS configuration. If value is not set in configuration, it will default to 14%, or otherwise apply the regular VAT. This only applies to items with alternativevat possible set to True.
POS Maintenance - Improvement for handling retries for OrderPaymentJob
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.
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.
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.
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.
Updated error codes for customer
The error messages and the codes provided by POS API have their prefixes updated specifically for the customer.
Fix for values going missing after BeginCartEditing
Values for ** discountEffectTypeAmount, scanCode, productInformation and shoppingChannel do not change after BeginCartEditing.
Open price flag on item
Open price flag is added to ItemExt/GetItem response.
Error handling if PriceStore does not exist
New and specific error message "The given store number XXXX was not found" is shown in response if NewCartWithItems with price store identifier set to a store that doesn't exist.
Disabled customer order reservation in BeginCartEditing
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.
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.
Link for FAQ added in the swagger index page
FAQ link for POS API was created and added in the swagger index page.
Search optimization
Item search has been improved by adding a non-clustered index for model column in in the Azure DB dbo.ItemFTView.
Updated error codes for customer
The error messages and the codes provided by POS API have their prefixes updated specifically for the customer.When BeginCartEditing is called, reservation of customer order is disabled if the provider is set to Axapta
...
Released 18.02.2025
VAT Calculation when OverrideDiscounts is used
The VAT amount is calculated correctly when the OverrideDiscounts parameter is used in cart.
In eCom Coupon discount interfering with edited CartItem UnitPrice
If DisableAllDiscounts is set to true, then subtotal discount should not be applied to the item used in the SetcartItemPrice else Subtotal discount will be applied.
Error message when an invalid member is added
A status code has been introduced to handle scenarios where an invalid member is scanned. This ensures that the system provides a clear and standardized response when an unrecognized or incorrect member identifier is detected
...
Released 05.02.2025
Cloud POS API - Update export documentation to make POSItem obsolete
POS API Data Export>Item endpoint is made obsolete
Support Alternative VAT Rate
A new parameter, AlternativeVat, has been introduced to be able to support alternative VAT rates (for example for takeaway). If set to True, it will fetch the alternative VAT from the POS configuration. If value is not set in configuration, it will default to 14%, or otherwise apply the regular VAT. This only applies to items with alternativevat possible set to True.
...
Property FulfillmentStore is added to the contract of the SetStoreForCartOrderPickingExt & SetPickingStatusForCartOrderExt. POSLog contains changes in Delivery_Article element
Disabled customer order reservation in BeginCartEditing
When BeginCartEditing is called, reservation of customer order is disabled if the provider is set to Axapta.
...
Released 22.1.2025
Fix for values going missing after BeginCartEditing
Values for ** discountEffectTypeAmount, scanCode, productInformation and shoppingChannel do not change after BeginCartEditing.
Error handling if PriceStore does not exist
New and specific error message "The given store number XXXX was not found" is shown in response if NewCartWithItems with price store identifier set to a store that doesn't exist.
Handle delayed refund transaction status
Created new table and methods along with updated services to update the transaction status incase for a delayed refund transaction.
Payment for delivered articles
Changes made to payment job to capture payment only for the delivered articles.
Open price flag on item
Open price flag is added to ItemExt/GetItem response.
...
Support for importing line and subtotal discounts through BatchToPosApi SaleFromStagingToPosApi job is implemented.
...
Released 18.12.2024
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.
...
Digital receipt is send with account id based on new DigitalReceiptMdsAccountId parameter value.
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.
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.
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.
Allow adding payments with amount 0
Payment with amount 0 is allowed in AddPaymentToCart2 and CheckoutCart for all payment types.
Improve the performance of ItemExt/SearchItem endpoint to get faster result when called
Updated the ItemExt/SearchItem endpoint to ignore the single character search.
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.
...