Use soft deletes that way you will not need to change so much, just a scope on the products page so they don't show up, and the user can still see it from the invoice/order and go to the deleted product.
Another way would be to use a trigger to move the product to a discontinued products table and then have a union of those for the invoices/orders.
I would go with the first, unless we are talking millions of records of both active and discontinued products.