Rebuy's Post-Purchase offers allow customers to add products to their order immediately after checkout — before they reach the Thank You page. Because these offers run within Shopify's checkout extension framework, there are several platform-level considerations and limitations that affect when offers display, how fulfillment is handled, and how payments are processed.
This article covers the key limitations and considerations for setting up Post-Purchase offers with Rebuy. For a full list of Shopify's Post-Purchase limitations, visit Shopify's developer documentation.
Unsupported Data Source Rules for Post-Purchase
Post-Purchase offers in Rebuy do not support all Data Source rule types. Because Post-Purchase offers run within Shopify's checkout extension environment, the following rule types are not compatible with Post-Purchase Data Sources:
URL-based rules
Order tag rules
Recently Viewed endpoint
Buy It Again endpoint
Products Search endpoint
Geolocation rules
If you configure a Post-Purchase Data Source using any of these rule types, the offer may not display or may return no results. Use cart-based and product-based rules for the most reliable Post-Purchase targeting.
When a Post-Purchase Offer Will and Will Not Display
In some situations, a Post-Purchase offer will not be shown to the customer. If an offer does not display, the customer's original order is maintained and processed as normal. Shopify maintains a full list of limitations in their documentation.
Payment Method Limitations
The Post-Purchase offer page will not be shown in the following payment scenarios:
The customer checks out using an installment service or 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.
Note: Post-Purchase offers will display for customers who check out using Shop Pay, as long as no other limitations apply.
Other Display Limitations
The following conditions will also prevent a Post-Purchase offer from appearing:
Multiple currencies: If the customer checks out in a currency different from your store's default currency, Shopify will not surface the Post-Purchase offer.
Orders with duties: Post-Purchase upsell offers will not display on orders that include duties.
Orders for local delivery: Post-Purchase offers are not shown on orders placed for local delivery.
Minimum order price: The customer's order must total at least $0.50 to qualify for a Post-Purchase offer.
Order creation delays: During high-traffic events such as flash sales, Shopify may briefly delay order creation to maintain a smooth checkout experience. In these cases, Post-Purchase offers may not display even if the offer request was properly made.
Fulfillment Holds and Order Status
When a customer reaches the Post-Purchase page, Shopify places their order in an "On hold" status (which may appear as "Pending upsell offer" in some interfaces). This hold prevents the order from being fulfilled while the customer is still interacting with the Post-Purchase offer.
The hold is released when one of the following occurs:
The customer completes the Post-Purchase flow and reaches the Thank You page, or
The order hold timer expires.
Once the hold is released, the fulfillable_quantity is updated to reflect the full order quantity, the fulfillment_status is set to open, and the order can be fulfilled. Orders with an "On hold" status cannot be fulfilled because their fulfillable_quantity is 0 at that time.
Configuring the Order Hold Timer
By default, Shopify holds a Post-Purchase order for up to 60 minutes. Rebuy gives you the option to configure a shorter hold time — between 1 and 60 minutes — through your Post-Purchase Flow settings. This is useful if you want orders to move to fulfillment faster when customers abandon the Post-Purchase page without completing the flow.
To configure the order hold timer:
Navigate to Post-Purchase Flows in your Rebuy dashboard.
Select the flow you want to edit.
In the flow settings, open the Maximum Order Hold Time dropdown.
Toggle the timer on if it is not already enabled.
Set your desired hold time between 1 and 60 minutes.
Save your changes.
What happens when the timer expires: When the hold timer reaches 0, the order moves from "On Hold" to "Unfulfilled" status in Shopify. At that point, the customer can no longer add to the order or accept new Post-Purchase offers — even if the widget's own offer timer is still counting down. If the customer clicks "Pay Now" or "Decline Offer" after the hold expires, they will see an "Offer Period Over" banner and be redirected to the Thank You page.
Note: If you do not enable the order hold timer in Rebuy, the system defaults to Shopify's 60-minute hold. During times of high order volume, there may be minor delays in the timer's exact transition. If an error occurs when Rebuy sends the release request to Shopify, the order will fall back to Shopify's default 60-minute hold automatically.
The difference between the order hold timer and the widget timer: The order hold timer controls how long the order stays in "On hold" status in Shopify before moving to "Unfulfilled." The widget timer is a visual countdown shown to the customer within the Post-Purchase offer page to encourage them to accept the offer. These two timers operate independently.
For full instructions on configuring your Post-Purchase flow, see Creating Post-Purchase Flows.
3rd Party Fulfillment Compatibility
With the Fulfillment Holds update applied by Shopify on May 3rd, 2021, Rebuy works smoothly with 3rd party fulfillment (3PL) apps and services when those apps use the fulfillable_quantity field as documented by Shopify. More details can be found in Shopify's documentation here.
3PL apps using the Shopify Order Fulfillment API should not be affected by the fulfillment hold and will process orders correctly once the hold is released.
3PL apps using other APIs (such as the Order API) will not be able to fulfill an order while it has "On hold" status and may encounter issues with orders where a Post-Purchase offer was shown or accepted. Using the Shopify Order Fulfillment API is strongly recommended. If your fulfillment provider cannot use the Order Fulfillment API, the recommended workaround is to retry fulfillment after the hold has been released (within 60 minutes or sooner if the order hold timer is configured).
For more details on Shopify's fulfillment hold behavior, see Shopify's post-purchase fulfillment holds changelog.
Payment Capture and Partially Paid Orders
When a customer accepts a Post-Purchase offer, there are two possible payment outcomes depending on whether the transaction is approved.
If the transaction is successful: An additional transaction is recorded on the order, and the order is marked as Paid.
If the transaction fails: The upsell product is still added to the order, but no additional transaction is recorded. The order is marked as Partially paid.
Payment declines can occur for two main reasons:
Decline from the bank — the customer's bank rejected the transaction.
Decline from the payment processor — the payment processor rejected the transaction on its end.
When a Post-Purchase transaction is declined, Shopify automatically sends the customer an email explaining that an item was added to their order but payment was not completed. The email includes a link for the customer to complete payment.
As the merchant, a partially paid order can be handled in the following ways:
Collect payment manually — contact the customer directly and use the payment link from the order.
Remove the unpaid item — use Order Editing in Shopify to remove the item from the order.
Let Rebuy remove the item automatically — if the Enable Updating Partial Order setting is enabled in your Post-Purchase widget, Rebuy will automatically remove the unpaid item from the order after 60 minutes if payment is not received. Learn more about the partially paid order feature.
Important: If the unpaid Post-Purchase item included additional shipping charges, removing the item will not remove the unpaid shipping amount. The order will remain in "Partially paid" status until the shipping charge is resolved. When an unpaid item is removed via Order Editing, it is tracked in the Returns column in your Shopify analytics.
Additional considerations:
If the customer checks out using only a phone number (no email address), Shopify will not send the payment link email. Copy the Checkout link for payment collection from the order and send it to the customer via SMS instead.
Make sure the customer has completed payment before fulfilling the order.
Another reason Partially paid can show for an order that includes Post-Purchase upsells is if your store uses the Manual payment capture method. In this case, payment must be manually captured for the original order and any Post-Purchase upsells before the order status updates to Paid.
Supported Payment Processors
Post-Purchase offers require that payment information is vaulted by Shopify during checkout, which means the customer's payment must be completed directly on the Shopify Checkout without being redirected to an external payment provider.
Shopify Payments is fully supported. For a complete list of supported third-party credit card processors for your store and region, go to Settings > Payments > Third-party providers in your Shopify admin and click Choose third-party provider. Any "direct" payment provider listed there will work with Post-Purchase offers.
Unsupported payment types:
External/offsite payment providers (such as Mollie) are not supported. These redirect customers away from Shopify Checkout to complete payment, so their card information cannot be vaulted by Shopify for one-click Post-Purchase use.
Payment gateways that require a CVV for every transaction (such as Bambora/Beanstream) are not supported by default. Customers will see an error when trying to accept the offer. It is recommended to disable the per-transaction CVV requirement within your gateway settings if possible.
Braintree, PayPal Payments Pro, Authorize.net, and PayPal Payflow Pro are supported with the following conditions:
Braintree: Must be configured to not require a CVV when entering credit card information. If CVV is required in your Braintree account settings, customers will see an error. See Braintree's CVV rules for details.
PayPal Payments Pro / Payflow: Works only when the customer pays with a credit card for their initial order. Configure your PayPal settings to not require a CVV for each credit card transaction. The express/wallet option is not supported.
Selling Subscriptions Post-Purchase
A Post-Purchase offer can sell a subscription product right after checkout, and every accepted Post-Purchase offer is added to the customer's original order as a new item. The products the customer bought at checkout are never changed, replaced, upgraded, or removed by a Post-Purchase offer, whether they were bought as one-time purchases or as subscriptions.
What a Post-Purchase offer can add depends on whether the customer's original order already contains a subscription, since Shopify does not allow a subscription to be added to an order that already has one. The following table shows which products a Post-Purchase offer can add, based on what the customer bought at checkout.
What the customer bought at checkout | What a Post-Purchase offer can add to the order |
Only one-time products | One-time products and subscription product offers |
At least one subscription product | One-time product offers only |
Whatever the customer bought at checkout, a Post-Purchase offer cannot upgrade a one-time item to a subscription, and it cannot change an existing subscription's delivery frequency, product, or quantity.
Can a Post-Purchase offer upgrade a one-time purchase to a subscription?
No, a Post-Purchase offer cannot upgrade or convert a one-time item the customer already bought into a subscription, because an accepted Post-Purchase offer only adds new items to the original order and never changes the items bought at checkout.
If your Post-Purchase offer shows the subscription version of a product the customer just bought as a one-time purchase, and the customer accepts it, the order keeps the original one-time item and gains the subscription as a second, separate item. The customer pays for the original item and the new subscription, and nothing from the original one-time purchase is refunded.
To give shoppers the option to turn a one-time item into a subscription, offer the switch before checkout, while the item is still in the cart, with Switch to Subscription in Smart Cart or the Switch to Subscription Pop-up.
How does a subscription upsell work in a Post-Purchase offer?
A subscription upsell in a Post-Purchase offer adds a new subscription product to the customer's original order, and it works only when that order contains only one-time items. The products the customer bought at checkout stay exactly as they were bought, so a subscription upsell never upgrades a one-time item to a subscription and never changes an existing subscription.
When the customer accepts a subscription upsell, the subscription product joins the order as its own line item, next to the items from checkout.
To offer product subscriptions Post-Purchase, set up the following:
Give the offered product a subscription plan (selling plan) from a subscription app connected to Rebuy. See Enabling Subscription Integrations.
In the Post-Purchase widget, open Product Display and set Product Type to Subscription Only or Both (One-Time & Subscription).
What can a Post-Purchase offer sell when the original order already contains a subscription?
When the customer's original order already contains a subscription, a Post-Purchase offer can add only one-time products to that order, since Shopify does not allow a subscription to be added to an order that already has one. If a Post-Purchase offer with a subscription option reaches that order, the customer cannot add the subscription, and the offer shows Shopify's message 'No more subscription change allowed for this checkout'.
To keep subscription offers for the orders that can accept them, keep in mind the following:
In the data source of a widget set to Subscription Only or Both (One-Time & Subscription), a data source rule of IF Input Product Does Not Contain Subscription returns that widget's products only when the original order has no subscription in it.
For customers who checked out with a subscription, use a widget with Product Type set to One-Time Only, offering products such as accessories, refills, or add-ons.
A store that sells only subscriptions can still run Post-Purchase offers, since every order there contains a subscription and one-time offers work on those orders.
Can a Post-Purchase offer change an existing subscription, such as its delivery frequency?
No, a Post-Purchase offer cannot change a subscription the customer already bought, including a subscription-to-subscription upgrade such as moving from a monthly to a quarterly plan, because Shopify does not allow a Post-Purchase offer to modify a subscription. The subscription's delivery frequency, product, variant, and quantity all stay as the customer chose them at checkout.
Partially Paid Subscriptions
If Enable Updating Partial Order is turned on in your Post-Purchase widget settings, be aware that this automatic removal does not apply to subscription items. If a customer accepts a subscription offer post-purchase but their payment fails, Rebuy will not automatically remove the subscription from the order. You will need to remove it manually from the Shopify order. Learn more about updating partially paid orders.
More on post-purchase subscription limitations can be found in Shopify's documentation.
Frequently Asked Questions
Why does my customer get a second order email after accepting a Post-Purchase offer?
A customer who accepts a Post-Purchase offer gets a second email from Shopify, its Order edited notification, because the accepted item is added to the order they just placed. Customers often read it as an order updated email. This is standard Shopify behavior on every store that uses Post-Purchase offers, and it does not point to a problem with your store's setup.
The emails arrive in this order:
Order confirmation, sent by Shopify as soon as checkout completes. The order is already confirmed when the Post-Purchase page appears, so this email lists only the items from checkout.
Order edited, sent by Shopify after the customer accepts a Post-Purchase offer, letting the customer know the order changed.
What to keep in mind:
The accepted item joins the customer's original order. No second order is created.
Rebuy does not send, delay, or change either email, and the Post-Purchase offer has no setting that affects them.
If the payment for the accepted item is declined, Shopify sends a different email with a link to complete payment. That case is covered under Payment Capture and Partially Paid Orders in Shopify's Post-Purchase Offer Considerations & Limitations.
How do I change or turn off the email Shopify sends after a Post-Purchase offer is accepted?
The email Shopify sends after a customer accepts a Post-Purchase offer is Shopify's Order edited notification, and you manage it in your Shopify admin. Shopify sends it as part of adding the accepted item to the order, so its wording and whether it sends are both Shopify notification settings.
To make changes to the Shopify Order edited email:
In your Shopify admin, go to Settings > Notifications > Customer notifications.
Select Order edited.
Edit the email subject and body.
Save your changes.
For questions about turning off the Order edited email or how Shopify sends it, check Shopify's customer notifications documentation or reach out to Shopify Support.
What to keep in mind:
The Order confirmation goes out before the customer sees the offer, so the Order edited email is the Shopify email that tells the customer about the item they added.
Changes to the template's code are made by you or your store's developer. Rebuy Support does not build or troubleshoot Shopify notification templates.




