Provisioning
PD -> I4/PC (checking if the order requires provisioning)
After the order payment successfully authorized, the order is automatically checked for the need of provisioning. The checking is performed by the handler "OF_IsProvisioningRequired". If the handler response is negative, the order is assigned with status PC (provisioning complete) and proceeds to order completion. Otherwise, it gets status I4 indicating that the provisioning is required.
I4 -> PR/PF (submitting order for provisioning in external system)
If the order requires provisioning, it is automatically submitted to external system. As in case with pre-authorization, the processing is asynchronous. The handler "OF_SubmitForProvisioning" raises an event and immediately returns. The order changes the status to PR (provisioning) and waits for provisioning results. In the meanwhile, the event handler submits order's provisioning items to the external servers and checks for their provisioning status.
PR -> PC/PF (checking external system response)
When the event handler receives the response from the external servers, it records it in the subscription service history and then triggers the next transition (PR -> PC/PF). The order flow handler "OF_IsProvisioningComplete" checks the received response and changes the order status accordingly. If the provisioning is successful, the order gets status PC (provisioning complete) and proceeds to order completion. Otherwise the order status is set to PF (provisioning failed) and the operator must decide what should be done with the order – it can be re-submitted for provisioning or cancelled.
PF -> PR/PF (resubmitting order for provisioning)
If the order provisioning fails, the operator can manually resubmit the order for provisioning. The transition processing is the same as in transition I4 -> PR except that it is initiated manually by the operator rather than automatically.
PF -> CL/PF (canceling order)
If the order provisioning fails, the operator can cancel the order. No further order processing shall be needed or possible after this.
PC -> CP/PC (completing order)
This is the final stage of common order provisioning. Once the order is paid in full and all the services are provisioned, an invoice is automatically generated for it by handler "OF_CreateAndReleaseInvoice" and the order status is changed to CP (complete).