As Sham said, the best way would be via a SuiteScript on creation of the Sales Order. If field is checked "Create Invoice" then it creates the Invoice (and possibly the Item Fulfilment if you use stock). You could also have custom fields on the SO if there are unique values (e.g. if the Invoice/IF date is different from the SO date, etc.). If you accept payments against Invoices, you could in theory create a SuiteScript on the Invoice record on create to generate these too.
Yes, it involves some extra work to begin with but it could be pretty slick and you only need to import a CSV with the SO/Inv/IF/Payment data.