It's possible to set up a "repeat customer" widget. When you ring up your sale, you ask the customer "have you shopped here before?". If So, using this widget, you can type in a few letters of the customer's last name to quickly narrow a very long customer list down to just a few possibilities. Click on off them and you get all needed customer info looked up into your invoice record.
If the customer says no, you just type in the information you need directly into these same "looked up value" customer fields on the invoices. A script triggered later when a button is clicked to finalize the sale and print an invoice also checks to see if the customer ID field is empty. If so, it uses the info to generate a new customer record in the customer table and updates the invoice record with the customer ID number from this new record.
Let me know if you are interested in a more detailed description of the repeat customer tool.