I am doing a wholesale store which is used for order processing. No invoices are raised or required, it's a simple purchase order site, I'd like to skip invoices all together and have disabled the invoice emails, there will just be order copies, and when orders are shipped from the back end, they should be shown as complete. I'm a bit puzzled on how to achieve this, Magento's work flow puts payment and invoicing before shipment. I'm sure there must be a clean way to do this in the back end with a custom state? So for clarification, customer places an order, order may or may not be cancelled or edited by admin in the back end, but when it is logged as shipped it should be complete and no payments pending.
Ok I see there may not be an answer without digging into Magento's core workflow which is not a good idea, I'm not a fan of that. My solution was to create a new order status "Sent" as a default status assigned to the state "processing" so orders display as sent when sent. Once orders are completed, the order must be invoiced in Magento's back end but invoices emails are disabled. This invoicing must be done if you want Magento 2's back end to report lifetime sales and produce relevent figures in its reporting. The unused invoice part on the front end (link to invoices in account area), I removed using the theme's local.xml file following code:
<referenceBlock name="sales.order.info.links.invoice" remove="true" />
I hope this helps others. I just wanted Magento for a purchase order management store, not a payment and invoicing site.