Post purchase offers video example: https://www.youtube.com/watch?v=zOdOW8wKHuI


Post purchase have some limitations applied by Shopify that you should be aware of:


Post-purchase upsell offers will only be shown to customers who pay using a "direct" Credit Card processor available for Shopify Checkout in your region or via the Shop Pay or PayPal Express digital wallet payment methods.


Braintree, PayPal Payments Pro, and PayPal Payflow Pro are now supported on Shopify Checkout and for one click post-purchase offers, with a few exceptions:


Braintree will only work if the settings are configured to not require a CVV when entering credit card information. If this setting is enabled within your Braintree account, the customer will see an error when trying to accept the offer.


*** If you're using Shipping Easy or Ship Station - make sure your fulfilement service is able to update the order as changes happen. If your fulfilement service is fetching the order at the very moment it's created, you might end up with missing products in your orders.


  • Alternative payment methods: The post-purchase page won't be surfaced in the following scenarios:
    • The customer chooses to check out with an installment service or a wallet service (such as Klarna, Affirm, AfterPay, Apple Pay, Amazon Pay, or Google Pay).
    • The initial purchase was made with a gift card or any payment method other than a credit card.
  • Subscriptions: We don't currently support subscription products in post-purchase upsells.
  • Purchase events: Third-party analytic services that use the Shopify Pixel API (such as Google Analytics, Facebook, Pinterest and Snap) report only the purchase event and value for the initial purchase.
  • Analytics: Third-party analytics services that use theScriptTagREST Admin API or GraphQL Admin API resource, or Additional Scriptshave incomplete conversion data, because they're only triggered on the thank you page.
  • Duties and support for multiple currencies: Post-purchase upsell offers won’t be surfaced on orders with duties and multiple currencies.
  • Order creation delays: In scenarios such as flash sales where the Shopify Platform is under extreme load, our system might optimize to capture orders but briefly delay the order creation step for a fast and seamless buyer experience. In these scenarios, post-purchase pages won't be surfaced, even if the request for the post-purchase page was properly made.
  • Multiple apps: Merchants with multiple apps that have the post-purchase checkout extension need to select which app appears on the post-purchase page. You'll need to select Honeycomb as the default post-purchase app in the Shopify admin checkout settingsMore details are found here: https://help.shopify.com/en/manual/checkout-settings?shpxid=15c24769-05FC-462C-503E-22FEB78C19A4
  • Fulfillment holds: Shopify places a hold on fulfillment for all orders undergoing a post purchase cross-sell flow. Holds are released either when the customer visits the thank you page, or after a set amount of time, if the customer doesn't complete the post-purchase flow. If the customer doesn't complete the flow (for example, the customer closes the browser before actioning the post-purchase upsell offer), then the fulfillment hold is lifted one hour after submission of the initial checkout. Fulfillment holds are only supported using the FulfillmentOrder resource.
  • Interaction with the thank you page. The post-purchase page shouldn't be used as a replacement for the thank you page. For more information, refer to the customer flow.
  • Tracking and status functionality. You can't add any order tracking or status functionality on the post-purchase page.
  • Checkout button text: The default text is Buy Now. Shopify does not allow merchants to change this text.


Here are a few more details about the "On_hold" status:


https://community.shopify.com/c/shopify-apis-and-sdks/retrieve-quot-on-hold-quot-fulfillment-status-from-orders/m-p/1171146


A few things to note about orders with post-purchase offers:


When a customer places an order that qualifies for a post-purchase offer, any line items on an order will have a fulfillable_quantity of 0 while Shopify waits to see if there will be more items added to the order. The order fulfillment_status will be on_hold.


When a customer accepts a post-purchase offer or does not return to the post-purchase page for (60 minutes), the fulfillable_quantity will update to reflect the number of items that should be shipped. It is also possible that additional line items will appear on the order at this time. The order fulfillment_status will change to null.



Your offer is not showing when using PayPal Express?


You might be missing Reference Transactions approval, which is what allows you to charge customers automatically for the post-purchase offer. Shopify will automatically ask PayPal for Reference Transaction approval. PayPal Express will work with Post Purchase Offers after this setting has been approved. You can check on your approval status for these automatic payments on your Payments page in your Shopify admin. 




These are Shopify rules, so technically, there's nothing we can do to prevent them from our end.


You can follow up here:

https://shopify.dev/apps/checkout/post-purchase/ux-guidelines-post-purchase-offers