How Simple Bundles handles orders with post-purchase products
This guide explains how Simple Bundles processes bundles when they're added to an order after the original purchase, such as through post-purchase upsell/fulfillment apps like Redo, ReConvert, Zipify OCU, or similar tools, and what merchants should know if they run into missing option selections or unexpected behavior.
The two ways Simple Bundles processes bundles
Simple Bundles 2.0 uses two different methods to break a bundle down into its components, depending on when the bundle is added to the order.
1. Cart Transform API (used in Simple Bundles 2.0 by default)
When a customer adds a bundle to their cart and checks out normally, Simple Bundles uses Shopify's Cart Transform API to break the bundle down before the order is created. This means:
- The parent bundle product is never added to the order as a line item.
- Only the individual component products appear on the order.
- This also applies to draft orders created directly with the bundle already included.
2. Order Editing (fallback if the Cart Transform didn't function)
Once an order has already been placed, the Cart Transform API can no longer be used to modify that order. If a bundle is added to an existing order (for example, through a post-purchase upsell app or by manually editing the order in Shopify), Simple Bundles falls back to the Order Editing method instead. This means:
- The parent bundle line stays on the order, alongside its components.
- The components are added to the order as a follow-up edit, shortly after the bundle is added.
This is expected behavior and is a result of how Shopify's Cart Transform API works; it simply cannot be triggered on an order that already exists.
Why does the parent bundle show up for fulfillment
Since the parent bundle remains on the order when added via Order Editing, merchants who fulfill orders manually may accidentally fulfill or ship the parent bundle in addition to its components, resulting in duplicate or extra products being sent.
Recommended fix: Enable automatic fulfillment of the bundle SKU in Simple Bundles settings. This does not remove the parent bundle line from the order; it will still appear, but it will be automatically marked as fulfilled so it does not require action from your fulfillment team and won't be shipped separately.
How does this differ by bundle type
The behavior above plays out differently depending on which bundle type was added post-purchase:
- Simple Bundle: Since Simple Bundle uses native Shopify variants, a specific variant combination is already tied to the product itself (e.g., the exact size/color combo is part of the variant, not a separate selection step). So when a Simple Bundle variant is added to an existing order, Simple Bundles can still identify which variant was added and will break it down into its components using the Order Editing method. The parent bundle stays on the order, but the correct components based on that variant are still added.
- Infinite Options (and BYOB): These bundle types don't use Shopify variants; options are selected through the Simple Bundles widget on the product page before the bundle is added to the cart. If a post-purchase app adds the bundle product directly to an order without the customer going through that widget, no option selection exists to reference. Since there's nothing for the app to break down, the bundle will not be broken down into components at all, it will simply sit on the order as the parent bundle with no components added.
This is why post-purchase apps tend to work more reliably with Simple Bundle setups than with Infinite Options or BYOB, since the variant itself carries the necessary information, while Infinite Options/BYOB rely entirely on the widget-based selection step to know what to include.
Why option selections may not carry over
This is especially important for merchants using Infinite Options or BYOB bundle types, where customers choose options (like size, color, or flavor) through the Simple Bundles widget before adding the bundle to their cart, rather than through native Shopify variants.
If a post-purchase app adds the bundle product directly to an order without routing the customer through the bundle's option-selection widget, no option data is captured for that instance of the bundle. This can result in:
- The bundle showing on the order with no selected options
- Missing or incomplete information for fulfillment (e.g., no size or flavor specified)
This is a limitation of how the post-purchase app is adding the product to the order, not something Simple Bundles can control directly, since Infinite Options and BYOB rely on the widget itself to capture selections.
Recommended steps for merchants
- Enable Cart Validation in Simple Bundles. This helps ensure that bundle option selections are required before checkout, so incomplete selections can be flagged or prevented from proceeding.
- Go to Simple Bundles → Settings → Advanced Settings → Cart Transform and Order Editing Fallbacks → Cart Validation
- Enable automatic fulfillment of the bundle SKU to prevent the parent bundle line from being fulfilled or shipped separately when Order Editing is used.
- Manually trigger a bundle breakdown, if needed, by opening the order in Shopify Admin, clicking More actions, and selecting Break down bundles in order. Note:
- It may take a few seconds after a bundle is added to an order before this action will work, allow a brief moment before trying.
- Bundles will not be broken down multiple times using this action, so there's no risk of duplicate processing or double inventory adjustments.
- This only applies to the Simple bundle type
How Buy Again button works with and BYOB/Infinite Options bundles
If your store uses Shopify's new customer accounts, be aware that the "Buy Again" button generates a bare cart permalink (e.g., /cart/{variant_id}:1?attributes[from]=new-customer-accounts... ) that only carries the variant ID from the original order. It does not carry forward the line item properties that store a customer's original BYOB or Infinite Options selections.
This means that even with Cart Validation enabled, a customer using Buy Again on a past bundle order will have the reorder correctly blocked from checkout (since no valid selection exists to validate), but they'll be redirected to the storefront homepage with an empty cart, with no visible message explaining why.
Why this happens
The redirect is Shopify's native behavior, not something Simple Bundles controls. Our validation function only has one job: return a block plus an error message when required selections are missing. What happens with that block, where the message is displayed, and where the customer lands afterward, is handled entirely by Shopify. In a normal cart/checkout flow, Shopify has a page available to render our validation message on, so the customer sees it. The Buy Again permalink flow, however, doesn't create a cart/checkout page before validation runs, so there's nothing for Shopify to display the message on; it falls back to redirecting to the homepage instead. There is currently no hook exposed by Shopify that lets an app change this redirect target or surface a message within that specific flow.
Redirecting Buy Again to the product page (like our quick add-to-cart buttons do) isn't possible today. Quick add-to-cart buttons work because the app renders them directly within the merchant's theme, giving us control over exactly where that link points. Buy Again is different: the button lives inside Shopify's hosted New Customer Accounts experience, a surface apps cannot modify or inject components into. On top of that, the permalink Buy Again generates only carries the variant ID, it drops the line item properties entirely, which is exactly where a customer's original BYOB/Infinite Options selections are stored. Even if redirecting were possible, the selection data needed to pre-fill anything isn't present in the permalink to begin with. This data loss is the root cause of the issue, and it sits on Shopify's platform side, not within Simple Bundles' logic.
What this means for merchants
Cart Validation is still doing its job correctly in this scenario; it prevents the damaging outcome (a bundle order silently shipping incomplete or empty). What remains is a UX gap specific to Shopify's own hosted reorder flow.
Recommended next steps
- Report this directly to Shopify support as feedback on New Customer Accounts, specifically requesting that Buy Again either preserve line item properties through the permalink, or display a validation message when a permalink-based checkout is blocked. Direct merchant reports carry weight in how Shopify prioritizes fixing platform gaps like this.
- This has been logged internally as a potential future improvement (exploring a bundle-aware reorder experience via a Customer Account UI Extension), but it is not an active roadmap commitment at this time.
Quick reference
| Scenario | Method used | Parent bundle on order? | Options captured? | Components broken down? |
|---|---|---|---|---|
| Customer checks out normally (storefront) | Cart Transform API | No | Yes (selected via widget pre-checkout) | Yes |
| Bundle added to a draft order before it's created | Cart Transform API | No | Depends on setup | Yes |
| Simple Bundle variant added to an existing/placed order (e.g., post-purchase app) | Order Editing | Yes | Yes (variant carries the selection) | Yes |
| Infinite Options / BYOB added to an existing/placed order (e.g., post-purchase app) | Order Editing | Yes | No (no widget selection made) | No - sits as parent only |
Need help?
If you still have questions, feel free to reach out to our support team at hello@simplebundles.io.