Puoi provare ad usare una tabella del DB di appoggio, dove mettere le transsazioni in attesa di pagamento.

Mi spiego.
Quando arriva il cliente, non va a vedere quanta giacenza c'è nel magazzino, ma prende il dato da una tabella in cui legge le giacenza di magazzino meno le richieste in attesa di pagamento.

Che te ne sembra come idea?