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.

Enaling automatic fulfillment of bundle SKUs under Simple Bundles>Settings>Advanced Settings>Cart transform and Order editing fallbaks

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.

  1. 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
Turn on the Cart Validation to ensure that all required selections are entered.
  1. Enable automatic fulfillment of the bundle SKU to prevent the parent bundle line from being fulfilled or shipped separately when Order Editing is used.
Enable automatic fulfillment of bundle SKUs for Simple bundle type going through order editing method if there is a duplicate fulfillment due to the parent bundle being present
  1. 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
Manual breakdown bundles in order if the order has passed more than 1 hour after the order is created

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.

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

Still need help? Contact Us Contact Us