Refunds and Returns
This guide explains how refunds and returns work for orders that have been processed by BundlesIQ, and what to expect in each handling mode.
What You Will Accomplish
You will understand how to handle refunds and returns for bundle orders, including partial refunds, and what each handling mode means for the refund workflow.
How Refunds Work After Bundle Processing
After BundlesIQ transforms an order, the order contains component line items (and possibly the bundle line, depending on your handling mode). Refunds are processed through Shopify's standard refund workflow, but the line items you refund depend on your handling mode.
Refund Behavior by Handling Mode
Parent-Only (BOM) Mode
In Parent-Only mode, only the bundle line item exists on the order — there are no component line items.
To refund the full bundle:
- Open the order in Shopify Admin
- Click Refund
- Select the bundle line item and its full quantity
- Process the refund
Inventory impact: BundlesIQ automatically releases the reserved component inventory back to available when a Parent-Only order is refunded or cancelled. If the order was already fulfilled (reserved stock was consumed), BundlesIQ restocks the component quantities.
To refund a partial bundle (one component):
Partial component-level refunds are not directly supported in Parent-Only mode because components do not appear on the order. You can:
- Option A: Refund a custom dollar amount from the bundle line using Shopify's manual refund feature
- Option B: Refund the full bundle and re-create a new order with the adjusted items
Because Parent-Only mode does not add component line items to the order, inventory restocking for components is handled by BundlesIQ (not Shopify's built-in restock). Ensure BundlesIQ is active when processing refunds.
Hybrid Mode
In Hybrid mode, the bundle line is at $0 and components carry the prices.
To refund the full bundle:
- Open the order in Shopify Admin
- Click Refund
- Select all component line items and their full quantities
- Confirm the refund amount matches the original bundle price
- Process the refund
To refund a partial bundle (one component):
- Select only the specific component line item(s) to refund
- The refund amount reflects the component's allocated price (not the full bundle price)
The $0 bundle label line does not need to be refunded since it has no value.
Operational Mode
In Operational mode, only priced component line items exist on the order.
To refund the full bundle:
- Open the order in Shopify Admin
- Click Refund
- Select all component line items that were part of the bundle
- Confirm the total refund matches the original bundle price
- Process the refund
To refund a partial bundle (one component):
- Select the specific component line item(s)
- The refund amount reflects the component's allocated price
In Operational mode, there is no bundle line on the order. To identify which components belong to a bundle, check the order metafield
bundles_iq.transformation_auditor the BundlesIQ Health dashboard.
Reporting Mode
In Reporting mode, the bundle line carries the full price and components are at $0.
To refund the full bundle:
- Open the order in Shopify Admin
- Click Refund
- Select the bundle line item and its full quantity
- The refund amount is the bundle price
- Process the refund
To refund a partial bundle (one component):
This is more complex in Reporting mode because components are at $0. You have two options:
- Option A: Refund a custom amount by clicking Refund and manually entering the dollar amount for the component (based on its allocated value from the bundle)
- Option B: Refund the full bundle and re-create a new order/draft with the remaining items
Partial refunds in Reporting mode require manual calculation because Shopify does not know the individual component values (they are all $0 on the order).
Refund Summary by Mode
| Action | Hybrid | Operational | Reporting | Parent-Only (BOM) |
|---|---|---|---|---|
| Full bundle refund | Refund all component lines | Refund all component lines | Refund the bundle line | Refund the bundle line |
| Single component refund | Refund the component at its allocated price | Refund the component at its allocated price | Manual amount entry required | Manual amount entry required |
| Inventory restock | Shopify restocks the component variants | Shopify restocks the component variants | Shopify restocks the component variants + the bundle (ghost SKU) variant | BundlesIQ releases reserved or restocks consumed component inventory |
| Complexity | Straightforward | Straightforward | More complex for partial refunds | Straightforward for full; manual for partial |
Inventory Impact of Refunds
When you process a refund in Shopify with the "Restock items" option:
- Component inventory is restocked by Shopify based on the refunded component line items
- Bundle inventory is recalculated by BundlesIQ when the component inventory webhook fires (if inventory sync is enabled)
In Reporting mode, if you refund the bundle line item, Shopify restocks the ghost SKU variant. BundlesIQ's inventory sync will then set it back to the calculated availability on the next sync cycle.
Returns Workflow
For stores using Shopify's returns workflow:
- Create a return from the order in Shopify Admin
- Select the line items being returned (components in Hybrid/Operational, bundle line in Reporting)
- Process the return and restock as appropriate
- Issue a refund for the returned items
The same mode-specific guidance applies: in Hybrid and Operational modes, you work with component line items. In Reporting and Parent-Only modes, you work with the bundle line item.
Exchanges
If a customer wants to exchange a bundle for a different bundle:
- Process a return/refund for the original bundle order (following the mode-specific steps above)
- Create a new order (or draft order) with the replacement bundle
- BundlesIQ will process the new order automatically
What to Expect After a Refund
| After refund | Expected behavior |
|---|---|
| Component inventory | Restocked to the relevant location (if "Restock items" was selected) |
| Bundle availability | Recalculated by BundlesIQ based on updated component stock |
| Order status | Shows as "Partially refunded" or "Refunded" in Shopify Admin |
| BundlesIQ processing | No re-processing occurs — the original transformation is preserved |
Common Mistakes
- Refunding the $0 bundle line in Hybrid mode — This has no financial effect since it is $0. Refund the component lines instead
- Not restocking components in Reporting mode — When you refund the bundle line, make sure to also restock the component variants (which are listed at $0 but still represent physical inventory)
- Assuming BundlesIQ re-processes after a refund — BundlesIQ does not modify orders during refunds. Refunds follow Shopify's standard flow on the already-transformed order
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Refund amount does not match expected bundle price | Rounding in price allocation caused small differences | The total refund of all components should be within a few cents of the bundle price. Adjust manually if needed |
| Cannot refund individual component in Reporting mode | Components are at $0 | Use Shopify's manual refund amount feature to enter the component's value |
| Bundle inventory did not update after refund | Inventory sync is disabled, or the component restock did not trigger a webhook | Manually check component inventory levels. Enable inventory sync if it is disabled |