You have some of your requirements listed here, but you do not have enough information to complete a design of an invoicing system, plus you have an unrealistic goal of a perfect inventory system - what is perfect for one person is imperfect for another; I'd settle for aiming for best of breed if I were you.
Do you have access to your customers? If you do, you need to sit down with them and find out what they want. A good way to do this is to model their working processes. Write down what steps they do from start to finish, and what influences their work (known as external actors or interfaces). This is a long process, but will end up with you being able to state exactly what is done, when, and in what order, plus the functional and non-functional constraints on the system.
Once you have this information, actually designing the physical system is relatively straightforward. Good luck.
[Big hint] The process I have described here makes heavy use of UML.[/Big hint]