If you want to keep it simple, and don't want to keep the books on the accrual basis, then just send a regular invoice (that uses an item linked to an income account), for the 50% with a note that this is the 50% deposit, and send another invoice on completion for the balance
If you want to to keep the books on the accrual basis:
To request payment either send an email requesting the payment not from QBO, or request it in a sent estimate, or if you must send an invoice (to use QBO Payments for example), send one which uses a non-inventory item where the "income" box is linked to an AR clearing account. This has no effect on the books. It increases AR and decreases AR Clearing.
When the customer pays (not with QBO payments), record a Receive Payment as usual. This correctly leaves a credit on the customer's account in AR. The advantage of this is that you can easily see the remaining balance at any time.
If you use QBO payments the Receive Payment will be recorded automatically. So you need to void the payment request invoice, to zero out AR Clearing, and leave a credit on the customer's account in AR.
When you deliver the products, create the normal invoice, (that uses an item linked to an income account). You can use the Estimate to create the invoice, if you used one. The previous credit will be automatically applied, if you left the default setting, showing the balance remaining, at the bottom of the invoice, if any.
A credit in AR shows as a negative asset on a balance sheet, which is not technically correct, so if you publish a balance sheet while open credits are in place, create a Journal Entry on b/sheet date, to move the total open credits amount from AR to a current liability, and reverse it the next day.
There is another option to record the payment with a Sales Receipt using a service item where the income account is linked to a current liability account, and use that item as a negative in another Sales Receipt, upon service delivery.
The problem with this method is that a) you don't see a balance on the customer's ledger page, and b) it bypasses cash vs accrual reporting in QBO.