A proforma order can be used to assign stock to an order prior to payment, while preventing it being released until it has been paid.
A customer can be set to be a proforma customer from the options area of their company screen:
This means all their orders will default to being proforma orders.
For non proforma customers a proforma order can can still be created by creating a sales order and changing the type to proforma:
Once created a proforma will sit in manual hold.
To release a proforma order you will need to convert it to a sales order.
You can do this by changing the type from the order screen.
For pre payment customers you'll also need to add a payment in the payment tab of the order.
You can then release it from manual hold and process as normal.