This development is a POS terminal extension that allows prepayments in WebPOS. A prepayment is the partial payment of a ticket. Once a draft ticket or a layaway is prepaid, it is converted into a standard ticket with a certain amount paid on credit.
The prepayment is a single amount, calculated before the ticket is paid. In the payment window the user will see the minimum amount that it is necessary to pay in order for the ticket to be deliverable. Also (and as usual) the user will be informed of the total amount outstanding to be paid.
Once configured, there will be two different buttons in the WebPOS payment window instead of the classic "tick" button. The first button relates to the prepayment. When clicked, it will add the exact amount necessary for the delivery of the products (which is called the "prepayment amount"). The second button will add the amount to fully pay the order.
Similar to the prepayment amount, there is another concept that is invisible for the WebPOS user which is the prepayment limit. The prepayment limit is an amount lower than the prepayment amount and it represents the minimum amount that needs to be paid in order for a ticket to be converted into an order.
There are two settings to be configured in the backend:
- Allow prepayments and partial payment (starting from 19Q1): Flag that needs to be checked in the POS Terminal Type. If selected, the system will calculate and display the prepayment amount for a specific order and it will be possible to partially pay a ticket.
- Prepayment algorithm: This is a combo in the "Organization" window that allows the user to choose a specific algorithm for the selected organization. By default, the module provides an algorithm that sets the prepayment amount to be equal to the product delivered amount. For example, if the order total is 50€ and products delivered amount is 25€, the prepayment amount will be 25€.
In order for the prepayment to work correctly in WebPOS, it is necessary to configure the below preferences in the "Preferences" window of the backend:
- Allow prepayments lower than the limit: set with value = "Y" or "N", this preference enables/disable the possibility of having a prepayment lower than the limit. This means that if set as "Y", the user will be allowed to pay even 0.
- Allow prepayments lower than the limit for layaways: set with value = "Y" or "N", this preference works in the same way as the previous preference but for tickets that are layaways.
- Web POS Prepayment Under Limit Approval: set with value = "Y" or "N", this preference is an approval that can overcome the preference “Allow prepayments lower than the limit”. This means that it is possible to pay a ticket with an amount lower than the prepayment limit but a supervisor has to authorize this operation. The pop up for approval can appear both during the order payment or during the order preparation process (in case the ticket was paid under the limit this approval will appear again).
- Web POS Prepayment Under Limit Layaway Approval: set with value = "Y" or "N", this preference works in the same way as the previous preference but for tickets that are layaways.
- Web POS Approval to Deliver Lines (starting from 19Q1): set with value = "Y", this preference defines the user that can approve the action of setting a product as deliverable or undeliverable through the new button added to WebPOS (more details about this in the next section).
In WebPOS, apart from the buttons mentioned in the Introduction section, there is another new button. This button appears in the EDIT section when clicking on a product and it's called “Set as deliverable / Set as undeliverable”. It acts like it comes from the Prepayment Algorithm to calculate prepayments amount however, it serves to determine which lines will be delivered and which lines won't.
After the backend configuration the flows in WebPOS remain the same, except that the prepayment amount will reflect the configurations set in the new algorithm: