Feature
Stock that matches the shelf
Stock leaves when you confirm an invoice, not when you start typing one, and comes back if you cancel. Overselling is refused rather than recorded.
Drafts leave your stock alone
A draft invoice is a working document. Nothing moves until you confirm it, so quotes and half-finished bills do not distort what you think you hold. Confirming issues the invoice and takes the stock out in the same step.
Oldest batch first
When an item has several batches, billkraft consumes the one closest to expiry first, unless you pick a specific batch on the line. That is what you want for anything perishable, and harmless for anything that is not.
It refuses to oversell
Confirming an invoice for more than you hold is rejected, and the message names the item and the shortfall. Cancelling a confirmed invoice returns the stock to the batch it came from.
Reorder levels and expiry
Set a reorder level per item and the dashboard shows what has fallen below it. Batches nearing expiry within thirty days are listed separately, so slow-moving stock is noticed while it can still be sold.
Try it on your own numbers
Free to start, no card required. Raise your first invoice in a few minutes.