Fixed invoice generation + uppsell migration

I've fixed a bug in Invoice model. The field 'products' was written 'proudcts', hence the migration.
Also I've corrected some other issues like wrong var names like 'user_full_name' to 'user_fullname', and changed Model.object.get(id=id) with Model.object.filter(id=id) to generate an iterable list, even if the list is empty. Lastly, generate_invoice method now creates the object and saves it to the database and returns the id of the newly created object.

That's it!
Thanks.