There are several configuration properties available for order fulfillment flows, which control:
Automatically moving to the next step in fulfillment
Introducing or removing intermediate processing steps
Enables automatic reverse authorizing / refunding of payment on a fulfillment after it’s been cancelled.
Note that the reverse authorize transaction for the payment is not executed until the entire order has been fully captured and/or cancelled. By waiting to reverse all of the related authorizations, we can simply reverse authorize all the unused authorized amount.
Important
|
Partial reverse authorization may not be supported by your payment gateway. If it’s not, then partially cancelled fulfillment will not trigger reverse authorize transactions. Instead, the authorization will be left to naturally expire according to how the associated gateway/bank handles the transaction’s life span. For more details on payment gateway features and partial reverse authorization transactions, please see the Payment Gateway Key Components Docs and Payment Summary Docs |
Property: broadleaf.orderoperation.fulfillment-cancelled.auto-reverse-refund.enabled
Registers the PaymentReversalFulfillmentCancelledListener
Enabled by default.
Enables automatic reverse authorizing of any remaining authorized but non-captured payments on an order whenever the last fulfillment is fulfilled.
Property: broadleaf.orderoperation.fulfillment-fulfilled.auto-reverse-unused-payments.enabled
Registers the PaymentReversalFulfillmentFulfilledListener
Enabled by default.
When a CSR hits "Capture Payment and Fulfill Items" for a fulfillment in the admin, this property ensures that the corresponding fulfillment is automatically be shifted into the FULFILLING
or FULFILLED
status (depending on other configuration).
Note: when this action is engaged, we start by changing the status of the fulfillment to CAPTURING_PAYMENT
, see Capturing Payment Status to trigger the payment capturing portion of the process.
Important
|
Capturing payment for the fulfillment potentially involves claiming amounts that were previously captured during the checkout process. See the Capturing Payment Status for more details. |
Important
|
This should have the same value as broadleaf.order.metadata.indicate-auto-fulfill-after-payment-captured in OrderServices . (see Order Services Configuration)
|
Property: broadleaf.orderoperation.fulfillment-processing.auto-fulfill.after-payment-captured
Registers the AutoFulfillPaymentCapturedListener
Enabled by default.
Enables automatic fulfillment of VIRTUAL goods following a successful checkout.
This will automatically capture payment for the fulfillment as a prerequisite, and immediately moves the fulfillment into the FULFILLING
or FULFILLED
status (depending on other configuration) after.
Important
|
Capturing payment for the fulfillment potentially involves claiming amounts that were previously captured during the checkout process. See the Capturing Payment Status for more details. |
Property: broadleaf.orderoperation.fulfillment-processing.auto-fulfill-virtual.after-order-created
Registers the AutoFulfillVirtualOrderCreatedListener
Disabled by default.
If true, during auto-fulfill, VIRTUAL fulfillments will go through the FULFILLING
status before they can be marked as FULFILLED
.This will allow external systems to perform virtual fulfillment processes.
That system must be responsible for notifying this service to change the status to FULFILLED
once fulfillment is complete.
This should have the same value as broadleaf.order.metadata.enable-fulfilling-step
in OrderServices
. (see Order Services Configuration)
Property: broadleaf.orderoperation.fulfillment-processing.enable-fulfilling-step
Disabled by default.
Declares if components required to handle asynchronous capture and refund payment transactions are enabled.
This should only be enabled if your project includes a payment gateway that only returns capture and refund transaction results asynchronously.
Related components: FulfillmentCaptureWebhookListener
and ReturnConfirmationRefundWebhookListener
Property: broadleaf.orderoperation.async-payment-transaction-support.enabled
Disabled by default.
Declares whether or not to distribute a payment transaction amount across the Order’s payments proportionally.
Note
|
To enable the display of payment distribution ratios in the admin, please enable the Payment Distribution Metadata property |
Property: broadleaf.orderoperation.service.distribute-payment-transaction-amount-across-payments
Disabled by default
Enables automatic payment capture for VIRTUAL
goods following order creation. Immediately moves the fulfillment into the CAPTURING_PAYMENT
status, which will trigger payment capture.
Property: broadleaf.orderoperation.fulfillment-processing.auto-capture.after-order-created
Registers the AutoCaptureVirtualOrderCreatedListener
Disabled by default.
Important
|
This property is deprecated since 1.7.6-GA |
Similarly to the Intermediate Fulfilling Step above, the intermediate capturing step is also optional, and can be skipped. To skip this step, the Fulfillment Status Change API in this service should be used to move into FULFILLED
or FULFILLING
instead of CAPTURING_PAYMENT
, which means that such configuration resides in the caller of that API rather than within this service. See the Payment Capture Step in Order Services Configuration for how to configure this for the Broadleaf Admin.