Custom Post Type as invoice or order template

1) To hide it from front, use following configuration in your register_post_type args

'exclude_from_search' => false,
'publicly_queryable' => false,
'show_in_nav_menus' => false,

2) If you look for a smoother approach, i would recommend using Advanced Custom Fields plugin

3) You can set up custom form and use wp_insert_post()