This is for “free products”, where the user adds an invoice row, does not select a product from the search, and clicks the update button. Numerus should select “appropriate” values for those that are left unspecified. I also no longer require the product_id to be an integer; if it is empty, then it is assumed to be a “free product”.