How to split a product into the next pass
Move part of a product line quantity into the next service pass on the same TPV ticket. The original line keeps the remaining quantity, a new line is created in the following pass, and ticket totals are recalculated.
In this article
Use this guide when a shared starter, main or other product quantity needs to be paced across two service passes without re-entering the item from the catalogue.
In the GB documentation runtime, the flow starts from an editable Harbor Soho TPV ticket opened by Olivia Hart. The split is saved through two ticket item operations, so the operator should review the refreshed ticket after confirming it.
Before you start
- You can access the TPV for Harbor Soho with `tpv:use` and an editable ticket is already open, for example the ticket referenced by `TPV_TICKET_ID`.
- The ticket is not void or closed in the TPV.
- KDS is enabled for the location. If KDS is disabled, the split action is hidden in the product editor.
- The selected product line has a quantity greater than 1.
- With KDS enabled, the product line is still editable and is not in sent, preparing or ready state.
- If the line has a discount, the operator has permission to work with discounted ticket items through `tickets:manage` or `tpv:discount`.
- Run captures against a disposable or reset documentation runtime because confirming the split changes the ticket items.
Instructions
- 1.
Open the active TPV ticket
Open the ticket detail from the floor or account list. In the GB demo context, use the TPV ticket route with `TPV_TICKET_ID`, `TPV_TERMINAL_ID` and `TPV_STAFF_ID` for Harbor Soho.
- 2.
Open the product editor
Select the product line that should be separated. Choose a line with more than one unit and make sure it is still editable under the current KDS state.
- 3.
Choose Split into two passes
In the product editor, choose the split action. Antylogic opens a quantity modal and pre-fills the value with half of the current quantity, rounded down.
- 4.
Enter the quantity to move
Enter a whole number from 1 up to one less than the current line quantity. For a line quantity of 4, the operator can move 1, 2 or 3 units to the next pass.
- 5.
Confirm the split
Confirm the modal. The TPV first saves the original line with the remaining quantity, then creates a second line with the moved quantity in the next service pass. If the source line has a discount, the discount is distributed proportionally.
- 6.
Review the refreshed ticket
After the ticket refreshes, check that the original line is reduced, the new line appears after it in the next pass, and subtotal, tax, total and payment state have been recalculated.
Validations and limits
- The action is available only when KDS is enabled, the item is editable and the quantity is greater than 1.
- The quantity field accepts digits only; empty, zero, too-high and busy states keep the Split button disabled.
- The confirmed quantity must be greater than 0 and lower than the current item quantity.
- The new item is created in the next `service_pass`; the action does not split the quantity inside the same pass.
- The original item keeps its current pass and receives the remaining quantity; the new item is inserted after it with the moved quantity.
- The new item copies the relevant product, price, tax, notes, seat or guest label, production status, payment status and discount label from the source line.
- If the original item update fails, the new item is not created.
- If the new item creation fails after the original line was updated, the split is not automatically rolled back. Refresh and review the ticket before continuing service.
- Backend item endpoints reject void tickets and validate product, tax category, quantity, price, discount, production status and payment status.
- The UI blocks closed tickets. The reviewed item endpoints explicitly rejected void tickets and did not show the same explicit closed-ticket check.
Expected result
The ticket shows the original product line with the remaining quantity and a second line in the next service pass, with ticket totals and payment state refreshed. If pass labels are visible, the new line can show a label such as Pass 2.