Usually I would suggest to log the purchase in a separate table and use a query to subtract the amount sold since the inventory was last recorded from the original amount without actually updating the inventory in the product database itself. It is a cleaner way to handle returns and doesn't have you constantly updating the product database.
This is what we do in Powerstore, and in general what I have found to be the cleanest method to do inventory control.