Global Settings Overview
BundlesIQ provides store-level settings that control how bundles are processed across your entire shop. Individual bundles can override some of these settings.
Accessing Settings
- Navigate to BundlesIQ > Settings in your Shopify Admin sidebar
- Review and configure each section below
- Click Save to apply your changes
Settings Reference
Default Handling Mode
| Setting |
Description |
Default |
default_handling_mode |
Controls how orders are visually transformed when a bundle is detected |
"hybrid" |
Options:
| Value |
Label |
Behavior |
"hybrid" |
Hybrid |
Bundle line stays at $0; components added with prices |
"reporting" |
Reporting |
Bundle line stays at full price; components added at $0 |
"operational" |
Operational |
Bundle line removed; only priced components remain |
"parent_only" |
Parent-Only (BOM) — Beta |
Bundle line stays at full price; no component lines added; component inventory is reserved behind the scenes |
Individual bundles can override this setting. See Handling Modes Explained for a detailed comparison.
Processing Scope
| Setting |
Description |
Default |
processing_scope.mode |
Whether to process all orders or only orders matching specific tags |
"all" |
processing_scope.include_tags |
Tags that qualify an order for processing (when mode is "tagged_only") |
Empty |
processing_scope.exclude_tags |
Tags that should always skip processing, regardless of mode |
Empty |
Processing scope mode options:
| Value |
Label |
Behavior |
"all" |
All |
Process every order |
"tagged_only" |
Tagged only |
Process only orders matching the include tags |
Use tagged-only processing if you want BundlesIQ to process only wholesale or B2B orders. Add a tag like wholesale to the include list, and only orders with that tag will be transformed.
Order Types
| Setting |
Description |
Default |
process_orders |
Process standard Shopify orders |
true |
process_draft_orders |
Process Shopify draft orders |
true |
Enable both if you handle B2B workflows through draft orders and standard DTC orders through the online store.
Sync Settings
| Setting |
Description |
Default |
sync_bundle_inventory |
Automatically update the ghost SKU's inventory based on component stock levels |
false |
sync_bundle_retail |
Automatically update the ghost SKU's retail price when component prices change (component-led pricing only) |
true |
These are store-level defaults. Each bundle can override these settings individually.
3PL Protection
| Setting |
Description |
Default |
tpl_protection.enabled |
Master toggle for 3PL protection features |
true |
tpl_protection.processing_tag |
Tag applied while BundlesIQ is processing an order |
"BIQ_PROCESSING" |
tpl_protection.ready_tag |
Tag applied after successful processing |
"BIQ_READY" |
tpl_protection.error_tag |
Tag applied when processing fails |
"BIQ_ERROR" |
tpl_protection.use_hold_alias |
Also apply a merchant-configurable hold alias tag |
false |
tpl_protection.hold_alias_tag |
Custom hold tag name for 3PL compatibility |
"ON-HOLD" |
tpl_protection.use_ready_alias |
Also apply a merchant-configurable ready alias tag |
false |
tpl_protection.ready_alias_tag |
Custom ready tag name for 3PL compatibility |
"READY_TO_SHIP" |
tpl_protection.use_fulfillment_holds |
Place Shopify-native fulfillment holds during processing |
true |
See 3PL Integration Guide for detailed setup instructions.
Writer Options
| Setting |
Description |
Default |
line_merge_mode |
How to handle duplicate component variants across multiple bundles on the same order |
"merge" |
group_bundle_lines |
Visually group component lines under their bundle |
false |
add_bundle_headers |
Add header lines to identify bundle groups on the order |
false |
bundle_header_template |
Template string for the header line (supports {bundle_title} placeholder) |
"Bundle: {bundle_title}" |
max_added_lines |
Safety limit on the maximum number of line items BundlesIQ can add to a single order |
499 |
enable_variance_absorber |
Automatically correct small rounding differences (a few cents) during price allocation |
true |
variance_absorber_max_cents |
Maximum total variance (in cents) the absorber will correct per order |
30 |
variance_absorber_max_cents_per_line |
Maximum variance (in cents) the absorber will apply to any single line item |
10 |
Line merge mode options:
| Value |
Label |
Behavior |
"merge" |
Merge (default) |
When multiple bundles on the same order share the same component variant, quantities and discounts are merged into a single line item. Uses a weighted average discount calculation |
"isolate" |
Isolate |
Each bundle's components stay as separate line items, even if they share variants. This keeps each bundle's components visually distinct on the order |
"duplicates" |
Duplicates |
Allows duplicate variant lines on the order (uses allowDuplicates: true in the Order Edit API). Use this when you need each bundle instance to have its own independent line items |
Retry Settings
| Setting |
Description |
Default |
retry_settings.enabled |
Automatically retry failed bundle processing |
true |
retry_settings.max_attempts |
Maximum number of retry attempts after initial failure |
1 |
retry_settings.cooldown_minutes |
Minimum time between retry attempts |
5 |
Error Handling
| Setting |
Description |
Default |
error_handling.append_to_notes |
Write error summaries to Shopify order note attributes |
false |
error_handling.include_warnings |
Include warnings (not just errors) in order notes |
false |
Default Pricing Configuration
| Setting |
Description |
Default |
default_pricing_config.mode |
Default pricing strategy for new bundles |
"bundle_led" |
default_pricing_config.bundle_led_strategy |
Default discount strategy for bundle-led pricing |
"uniform_percent" |
Pricing mode options:
| Value |
Label |
Behavior |
"bundle_led" |
Bundle-led |
The bundle's selling price drives the discount allocation across components |
"component_led" |
Component-led |
Component prices are summed to determine the bundle price |
Bundle-led strategy options:
| Value |
Label |
Behavior |
"uniform_percent" |
Uniform percent |
The same percentage discount is applied to every component |
"proportional" |
Proportional |
Discount is distributed proportionally based on each component's retail price |
This sets the initial pricing configuration when creating a new bundle. You can change it per bundle.
Parent-Only (BOM) Settings
These settings apply only when the handling mode is "parent_only":
| Setting |
Description |
Default |
parent_only_settings.reserve_timing |
When to reserve component inventory: on order creation or on order payment |
"orders/paid" |
parent_only_settings.location_strategy |
Which location to use for inventory reservations |
"fulfillment_order_location" |
parent_only_settings.single_location_id |
The specific location ID to use (only when location strategy is "single_location") |
None |
Reserve timing options:
| Value |
Label |
Behavior |
"orders/paid" |
orders/paid (recommended) |
Component inventory is reserved when the order is paid. Reduces the risk of reserving stock for orders that are never completed |
"orders/create" |
orders/create |
Component inventory is reserved immediately when the order is created. Use this if you need to lock stock as early as possible (e.g., limited-edition products) |
Location strategy options:
| Value |
Label |
Behavior |
"fulfillment_order_location" |
Fulfillment order location (recommended) |
Uses the location assigned to the order's fulfillment order. Works well for multi-location setups |
"single_location" |
Single location |
Always reserves from a specific location. Useful if all assembly happens at one warehouse |
Bundle-Level Overrides
The following settings can be overridden on individual bundles:
- Handling mode — Set to a specific mode or leave as "Use store default"
- Inventory sync — Enable or disable per bundle
- Retail sync — Enable or disable per bundle
- Pricing configuration — Fully customizable per bundle
Related Pages