Solutions to fulfillment problems
To solve fulfillment problems, we must prevent orders from being fulfilled until we are certain that the customer is no longer on the post-purchase page. This ensures that the order is in it’s final state and will not have extra items added.
There are two common solutions to fulfillment problems:
(Preferred) Look for a setting in the fulfillment service to handle On hold orders. If the fulfillment services can natively handle On hold orders then enabling the setting should resolve any issues. Many older systems do not have this setting though, in which case:
Use the payment status of the order as a makeshift fulfillment hold. Almost all fulfillment systems have an option to not fulfill orders that are not marked as Paid. This solution is described in detail below as it is non-intuitive and is generally more involved.
Using payment status as a makeshift fulfillment hold
The core principle of this solution is that we only want to mark an order as Paid when it can be fulfilled (i.e., there is no fulfillment hold).
By default, Shopify captures payment immediately when an order is placed. This means that orders will be marked as Paid. To change this behaviour, you can go to Shopify > Settings > Payments > Payment capture method > Manage and change the payment capture method to “Manually”.
With the payment capture set to manual, we get to control when the payment is captured and thus when the order is imported into the fulfillment service. To do this, we can set up a Shopify Flow to capture the payment when and order is no longer On hold. When the payment is captured, the order will be marked as Paid and the fulfillment system can then import the final order which would include the post-purchase upsell item.
Note that “fulfillable” is used to check whether or not an order is On hold. This is the easiest way to check for holds in a Flow.
For more details on the implementation, there is a video explanation using this makeshift payment status fulfillment hold with the app ShippingEasy. The same principles apply to other fulfillment services: