Fulfillment

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

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

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

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:

  1. Query Shopify for the order and retrieve all fulfillments associated with it. (An order can have 1 or more fulfilments)
  2. 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.

ScenarioOrder fulfillment status at time of creationFulfillment hold release timelineNumber of transactions/paymentsOrder edited after creation?
Customer is not shown a post-purchase upsellUnfulfilledN/A1No
Customer sees a post-purchase upsell and declinesOn HoldHold is released as soon as customer declines the offer1No
Customer sees a post-purchase upsell and closes browser tabOn HoldHold is released after a fixed delay (since we can't tell they closed the tab)1No
Customer sees a post-purchase upsell and acceptsOn HoldHold is released as soon as customer accepts the offer2 (or 3 if 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.

ShipStation 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.

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.

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.