If your store is using Manual Payment Capture, you may be seeing some in a partially paid status. This article will show you how to resolve this issue while retaining your Manual Payment Capture settings.
Why This Happens
If your store is using a fraud detection app (e.g. NoFraud or Riskified), the fraud detection app might not natively support post-purchase upsells.
In these cases it will often capture payment for the order too early, before the post-purchase upsell is added. The post-purchase upsell payment will be authorized, but only the initial payment would be captured. Such an order would be shown as Partially paid.
How to Fix It
First, you'll need to confirm that you're currently on Manual Payment Capture. If you aren't, then unfortunately the rest of this article won't apply to you.
Confirm Your Payment Capture Settings
Your store may have an automatic payment capture system set up, yet still have the Shopify Manual Payment Capture setting enabled. You can confirm your store’s payment capture settings:
Shopify Admin > Settings > Payments > Payment Capture (Manage)
If you're currently on Manual Payment Capture, continue reading!
Creating a Shopify Flow
The simplest solution to ensure that all payments for an order are captured is to use a Shopify Flow. Below is an image of a Shopify Flow that achieves this:
Explaining the Flow
This flow has 3 steps:
A Trigger is put in place to ensure you only start the flow when an order transaction has been created
The first transaction for an order is created when the customer places the order.
An additional transaction is created if the customer accepts the AfterSell post-purchase upsell
Our goal is to capture payment on the second transaction, so we will check some conditions in the next step
Conditions are put in place to ensure the flow only continues in certain scenarios
We only want this flow to continue if the transaction that was created is from a post-purchase upsell
We also don’t want to run this flow if payment for the original order hasn’t been captured yet. This flow is only supposed to capture additional payment that was missed
If there hasn’t been any payment captured yet, then we will do nothing in this flow and assume that the regular payment capturing system will capture the full amount
Capture payment once all of your checks have passed.
This will capture the payment only for the extra amount from the post-purchase upsell. Problem solved
After implementing the flow above, if you are using external fulfillment services please ensure that the payment capture Flow doesn't have unintended effects on your fulfillment.
For more details on fulfillment, please see our Fulfillment Documentation by clicking the button below: