Implement robust order capture

If robust order capture is enabled on your Oracle CX Commerce instance, orders are placed in the PENDING_PAYMENT state prior to initiating payment. This ensures that orders are captured, and problems can be resolved, if there is an error during the payment or order submission process.

The robust order capture feature is enabled by default for new customers and disabled by default for customers upgrading from earlier versions. You can enable or disable the feature using the Setup tab in the Payment Processing settings in the administration interface. This tab has a Payment Options drop-down with two options:

  • Allow Partial Payment/Early Persist -- Commerce saves the orders in the PENDING_PAYMENT state at the start of checkout.
  • Full Payment Required -- Commerce saves the order only after the shopper has successfully provided full payment.

If robust order capture is enabled, you must ensure that your order history and checkout widgets can handle the PENDING_PAYMENT state, and that your storefront allows the shopper to see order issues and take corrective action. For example, the storefront could enable the shopper to see order status, update payment information, and resubmit an order that has not been successfully submitted.

Use robust order capture

When a shopper submits an order, it is placed in the PENDING_PAYMENT state. If a payment fails but Commerce does not receive an error, the order remains in this state. During the Price Hold period, the shopper can change the payment method or retry the payment, but cannot make other changes to the order or delete the order. A record of the order is visible in the Agent Console, so an agent can also attempt to resolve the issue. At the end of the Price Hold period, if the order is still in the PENDING_PAYMENT state, it is marked for cancellation.

For example, the order processing might proceed as follows:

  1. A shopper begins the checkout process using a web checkout system.
  2. The shopper enters payment information and submits the order. The payment is authorized.
  3. An issue occurs that results in payment not being sent to the merchant (for example, the response from the payment provider is not received by the client).
  4. The order remains in the PENDING_PAYMENT state, and the shopper does not receive an order confirmation.
  5. The shopper can see the order in the PENDING_PAYMENT state and resubmit the order with payment. The merchant can also see the order and take steps to resolve the issue.