How to set the placeholder to default in "Please select an option" for your Infinite Options bundle

This guide will walk you through updating your Infinite options bundle dropdowns to default to a "Please select an option" placeholder, rather than pre-selecting the first item. This setup helps improve customer experience and can reduce incorrect orders.


  1. Open Your Online Store
    • Go to your Shopify Admin > Online Store > Themes.
    • Click "Customize" on your current theme.
Online Store in Shopify
  1. Navigate to the Specific Bundle Page
    • Use the page selector to locate and open the product page for the bundle you'd like to update.
Shopify Theme
  1. Disable App Embed (if enabled)
    • In the theme editor, click on "App embeds" in the left-hand panel.
    • Locate the Simple Bundles embed and toggle it off.
Shopify Theme
  1. Enable App Block for Infinite Options
Adding App Block in your Shopify Theme
  1. Paste Custom JavaScript
    • In the App Block settings, locate the "Custom JavaScript" section.
    • Paste the following code:
(function () {
// Text to match for the placeholder option
var PLACEHOLDER_TEXT = 'Please select an option';

function setPlaceholderAsDefault(root) {
// Limit to selects in the bundle area if you have a wrapper.
// If needed, narrow this selector later (for example, to a specific container).
var selects = (root || document).querySelectorAll('select');

selects.forEach(function (select) {
  // Skip if we already processed this select
  if (select.dataset.sbPlaceholderApplied === 'true') return;

  // Find the "Please select an option" option by text
  var options = Array.prototype.slice.call(select.options || []);
  var placeholderOption = options.find(function (opt) {
    if (!opt || typeof opt.text !== 'string') return false;
    return opt.text.trim().toLowerCase() === PLACEHOLDER_TEXT.toLowerCase();
  });

  if (!placeholderOption) return;

  // Make sure it is selectable
  placeholderOption.disabled = false;

  // Set as selected
  select.value = placeholderOption.value;

  // Mark as processed so we do not keep resetting the select
  select.dataset.sbPlaceholderApplied = 'true';

  // Trigger change event so Infinite Options / theme JS reacts correctly
  var evt = new Event('change', { bubbles: true });
  select.dispatchEvent(evt);
});
}

// Run once on initial load
function init() {
setPlaceholderAsDefault(document);

// Watch for new dropdowns injected by Infinite Options / bundles
var observer = new MutationObserver(function (mutations) {
  mutations.forEach(function (mutation) {
    if (!mutation.addedNodes || mutation.addedNodes.length === 0) return;

    mutation.addedNodes.forEach(function (node) {
      if (node.nodeType !== 1) return; // element only
      // If a select or a container with selects is added, process it
      if (node.tagName === 'SELECT') {
        setPlaceholderAsDefault(node);
      } else {
        setPlaceholderAsDefault(node);
      }
    });
  });
});

observer.observe(document.body, {
  childList: true,
  subtree: true
});
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
})();
Pasting the code in the Custom Javascript
  1. Save the Changes
    • Click "Save" in the theme editor.
Shopify Theme

The dropdown options should now default to “Please select an option” when customers visit your product detail page, instead of automatically selecting the first variant. This gives customers a clear indication that a selection is required.

Product detail page

Important Notes:

If "Please select an option" is set as the default value, customers may still be able to add a bundle to their cart without making any selections. This can result in incomplete or incorrect orders.

To help prevent this, you can disable the Add to Cart button until all dropdown options are selected. This ensures that customers cannot proceed without choosing all required options before checkout.

Please note that this setup may depend on your theme’s structure, so the exact implementation might vary. If you’d like to explore this further, we’re happy to walk you through it and see what’s possible based on your theme.

Additionally, make sure that cart validation is enabled for Infinite Options in your store settings. This will help ensure that all required fields are filled out before the product is added to the cart.

Still need help? Contact Us Contact Us