Extension points - External Invoicing Methods
Whenever a sale occurs, an invoice must be generated. That is usually done by the enfore platform itself by creating an invoice for the sales order (or order split or settlement). There are cases though, where a sale made via an enforePOS register shall not be invoiced by the enfore platform but shall be invoiced by an external system. For example a hotel restaurant may used enforePOS but still want to all customers to have their meals "billed to my room" via the hotel's PMS.
For such cases, the enfore platform supports "external invoicing". That is, the enforePOS system can be used to take and process an order (incl. productions and goods outs) and that order can then be marked as "invoiced externally". The order can then be considered "complete" from the point of view of the enfore platform as the actual creation of the invoice and collection of payment happens "outside".
Checkout
The usual sequence of actions for checking out an order in enforePOS is:
Instead of selecting a payment method, the user shall be able to select an "external invoicing method" which will invoke an InvoiceSalesOrder
CUWO. If that CUWO returns with success, the order is marked as (externally) invoiced and the payment UI is done.
If the CUWO returns with a failure or cancelation, the order is not marked as invoiced and the payment UI allows selection of another external invoicing method or selection of a payment method.
Sales History
For an order that has been "externally invoiced", no invoice object exists in the enfore system. For the "Sales History" UI, such orders are shown together with the invoices created by regular invoicing via the enfore platform.
When the user activates such an order in the "Sales History" UI, the enfore platform will present a view similar to the regular "Invoice Details" but lacking all information that is not available (such as payments or the invoice documents). Instead, the enfore platform will provide an action that can invoke the ViewExternalInvoice
CUWO to present invoicing information form the external system.