How have you set up your tables and relationships for this "preset" data? You might have a set of invoice records already in place but with data in a field that identifies them as "template" invoices. In which case, a script can duplicate the invoice and the line items records followed by updating the newly created invoice record with any customer info already specified at the time the script is performed (or the script just updates the new invoice an line item record "Status" fields to mark them as not being "template" records and then the user fills in the rest of the needed data.)
Or you might have a table just of your line items data, one record for each line product ID's plus the two fields for level and type. In which case, your script can find these records and loop through them using set variable, set field to copy these ID's into new line items records for your current invoice.
The option you choose to implement will determine the specific script you'd use to set up your invoice with these predetermined line items.