Order processing flow with AfterSell
Post-purchase fulfillment holds
When a customer pays for their order in checkout, the order is created in Shopify. If the customer is shown a post-purchase upsell, the order will be created with a fulfillment status of On Hold.
The order is placed On Hold because the customer might accept a post-purchase upsell which would add an item to the order. The On Hold status is an indication that the order should not be fulfilled yet because additional item(s) may be added.
An order in the Shopify admin orders table with a post-purchase fulfillment hold
Detailed view of an order with a post-purchase fulfillment hold
Releasing post-purchase fulfillment holds
Once the fulfillment hold is released, the order fulfillment status will change to Unfulfilled.
An order after the post-purchase fulfillment hold has been released
The order hold will automatically release in the following scenarios:
If the customer clicks Accept or Decline on all post-purchase offers.
If 60 minutes has passed since the order's creation.
NOTE: If you have the "Automatically release 1-click fulfillment holds when offer timer ends" setting enabled in AfterSell > Settings > Storefront Translations & Offer Settings then the release time will be different.
πDEV Note: How the "Automatically release 1-click fulfilment holds when to offer timer ends" works behind the scenes
When the setting above is enabled and AfterSell determines the order hold should be released, the following is executed:
Query Shopify for the order and retrieve all fulfillments associated with it. (An order can have 1 or more fulfilments)
Tell Shopify to release the order hold for each separate fulfilment.
AfterSell will add an event to the order for each fulfilment hold released with the text "AfterSell Post Purchase Upsell released fulfilment for X items". AfterSell DOES NOT edit the number of fulfilments.
The following table describes the timeline of when the post-purchase fulfillment hold is released for various customer scenarios.
Scenario | Order fulfillment status at time of creation | Fulfillment hold release timeline | Number of transactions/ payments | Order edited after creation? |
Customer is not shown a post-purchase upsell | Unfulfilled | N/A | 1 | No |
Customer sees a post-purchase upsell and declines | On Hold | Hold is released as soon as customer declines the offer | 1 | No |
Customer sees a post-purchase upsell and closes browser tab | On Hold | Hold is released after a fixed delay (since we can't really tell if they closed the tab) | 1 | No |
Customer sees a post-purchase upsell and accepts | On Hold | Hold is released as soon as customer accepts the offer | 2 (or 3 of the customer accepted two upsells) | Yes |
Integrating with external fulfillment services (3PL)
πMost fulfillment services work automatically
The following documentation is present in case your fulfillment service does not natively support post-purchase upsells, or if you are unsure and want to check. Most fulfillment services work automatically and do not require any changes.
We recommend placing test orders to make sure everything flows properly through your systems.
Some fulfillment services or custom workflows are not set up to deal with the On Hold order fulfillment status. If your fulfillment process does not correctly handle post-purchase fulfillment holds, you are at risk of partially fulfilling orders or creating unnecessary extra fulfillments for a single order.
Fulfillment workflows vary from store to store, and so does the solution for ensuring that your store is set up to handle fulfilling orders with post-purchase upsells. Below is a framework for understanding the changes that are required (if any) to make your fulfillment process work smoothly with post-purchase upsells.
Fulfillment readiness framework
β Question 1: When an order is created with a fulfillment status of On Hold, is the order sent to your fulfillment service while still On Hold?
π Answer 1A: Yes, the order appears in my fulfillment service even when the order is On Hold.
β Question 2: Is the order marked as On Hold in your fulfillment service or otherwise indicated that it should not be fulfilled yet?
π Answer 2A: Yes, the order appears differently than other orders in my fulfillment service. It will not be fulfilled until the hold is released.
βQuestion 3: When the post-purchase fulfillment hold is released, and the order changes from On Hold to Unfulfilled in Shopify, does the order update in your fulfillment service?
π Answer 3A: Yes, the order is updated in my fulfillment service after the fulfillment hold has been released and the order status has changed to Unfulfilled.
βQuestion 4: Does the order in your fulfillment service have all of the initial order item(s) and post-purchase upsell item(s)? Are the prices and weights of all items correct?
π Answer 4A: Yes, the order in my fulfillment service has all of the items, including the post-purchase upsell(s), and all of the prices and weights of items are correct.
π Solution: Your fulfillment process is already set up to work with post-purchase upsells! π
π Answer 4B: No, the order in my fulfillment service is missing item(s) or the order has incorrect/missing weights or prices for items.
π Solution: Your fulfillment process will require a custom solution to work with post-purchase upsells. Please contact AfterSell Support.
π Answer 3B: No, the order stays On Hold in my fulfillment service, even after the fulfillment hold has been released. The order is showing Unfulfilled in Shopify, but the order is still On Hold in my fulfillment service.
π Solution: Your fulfillment process will require a custom solution to work with post-purchase upsells. Please contact AfterSell Support.
π Answer 2B: No, the order looks the same as all the other orders in my fulfillment service. The order might be fulfilled, even while the Shopify status is still On Hold.
π Solution: Your fulfillment process will require a custom solution to work with post-purchase upsells. Please contact AfterSell Support.
π Answer 1B: No, the order does not appear in my fulfillment service when the order is On Hold.
βQuestion 2: When the post-purchase fulfillment hold is released, and the order changes from On Hold to Unfulfilled in Shopify, does the order now appear in your fulfillment service?
π Answer 2A: Yes, the order appears in my fulfillment service after the fulfillment hold has been released and the order status has changed to Unfulfilled.
βQuestion 3: Does the order in your fulfillment service have all of the initial order item(s) and post-purchase upsell item(s)? Are the prices and weights of all items correct?
π Answer 3A: Yes, the order in my fulfillment service has all of the items, including the post-purchase upsell(s), and all of the prices and weights of items are correct.
π Solution: Your fulfillment process is already set up to work with post-purchase upsells! π
π Answer 3B: No, the order in my fulfillment service is missing item(s) or the order has incorrect/missing weights or prices for items.
π Solution: Your fulfillment process will require a custom solution to work with post-purchase upsells. Please contact AfterSell Support.
π Answer 2B: No, the order still doesn't appear in my fulfillment service even after the fulfillment hold has been released. The order is showing Unfulfilled in Shopify, but I cannot see the order in my fulfillment service.
π Solution: Your fulfillment process will require a custom solution to work with post-purchase upsells. Please contact AfterSell Support.
Ship Station Integration
If you are using ShipStation directly connected to Shopify, then your fulfillment should work with post-purchase upsells automatically.
If you have a connecting service between Shopify and ShipStation (e.g. NetSuite), then you may need a custom solution. Please see the following section for what orders are supposed to look like in ShipStation to check if it is functioning properly.
How On Hold Orders Look in ShipStation
Orders that are On Hold in Shopify will show up in the On Hold section in ShipStation. These orders will show that they have 0 quantity. The quantity that ShipStation shows is the fulfillable quantity. It shows as 0 quantity while On Hold because none of the items in the order should be fulfilled yet (since the order may still be modified by adding post-purchase upsell item[s]).
An On Hold order in ShipStation showing 0 quantity.
Once the order fulfillment hold has been released, the order will move to the Awaiting Shipment tab in ShipStation. The quantity will be updated to reflect the true quantity of the order, including any post-purchase upsell item(s).
An order in ShipStation after the fulfillment hold has been released.
These orders will show that the quantity was updated by the selling channel (which is Shopify in this case).
Testing Notes
If you are testing your ShipStation integration and are not seeing orders come through right away, you can manually refresh orders for your store.
β