an extremely easy to program/implement feature would be allowing a price override on each Inventory Item at time of invoice for a specific client, then subsequent recall of price on new invoices.
itemname/client, price
therefore a widget for company a and company b can be different.
these can just be built up dynamically during invoicing.
when you select an item, system reads client item index, if nothing found then reverts to default.
option to view and delete codes by account when in inventory management.
cheers