Customizing BigCommerce Checkout: Changing 'Free' Shipping to 'Pickup' for In-Store Orders

In the dynamic world of e-commerce, clarity and precision in customer communication are paramount. For BigCommerce stores offering local pickup options, a common challenge arises when the system defaults to displaying "Free" for in-store pickup methods on the checkout page. While technically accurate (no shipping cost), this can be confusing for customers expecting a clear "Pickup" label. This community insight explores a practical solution to this specific UI/UX hurdle, leveraging custom scripting within BigCommerce.

The Challenge: Misleading "Free" Label for In-Store Pickup

A BigCommerce merchant, Darren White, highlighted a frequent pain point in the BigCommerce community forum. When customers select an "In-Store Pickup" option, the checkout page often displays the shipping cost as "Free." While functionally correct, this terminology can be ambiguous. Customers might interpret "Free" as free delivery rather than a zero-cost pickup. Darren's goal was simple yet impactful: change the "Free" shipping label to "Pickup" specifically for these scenarios, enhancing clarity and improving the customer experience.

The core problem stems from BigCommerce's default shipping configuration, where a zero-cost shipping method is inherently labeled as "Free." There isn't an out-of-the-box setting to rename this specific label for local pickup options without affecting other genuinely free shipping methods.

The Community's Solution: A JavaScript Workaround

The BigCommerce community quickly rallied to provide a robust solution. As initially noted by Avinash Jeswal, a direct configuration option doesn't exist, necessitating a custom script. WebDesk Solution then provided a comprehensive JavaScript snippet designed to dynamically alter the text on the checkout page.

Implementing the JavaScript Customization

The recommended approach involves adding the provided JavaScript code to BigCommerce's Scripts Manager. This tool allows merchants to inject custom scripts across their storefront without directly modifying theme files, making it a safer and more maintainable method for such customizations.

Steps for Implementation:

  1. Navigate to your BigCommerce Admin Panel.
  2. Go to Storefront > Script Manager (or Settings > Data Solutions > Visual Website Optimizer, as suggested in the forum, which is an older path to a script injection point). For modern BigCommerce, Script Manager is the primary tool.
  3. Create a new script.
  4. Set its location to "Footer" or "Head" (Footer is generally preferred for UI manipulations to ensure elements are loaded).
  5. Set the script type to "Script."
  6. Paste the following JavaScript code into the script content area:


How the Script Works:

  • The script targets the specific HTML element on the checkout page that displays the shipping price using a data-test attribute ([data-test="cart-shipping"] [data-test="cart-price-value"]). This makes it robust against minor theme updates.
  • It checks if the text content of this element is exactly "Free" (case-insensitive, after trimming whitespace).
  • If it matches "Free," it programmatically changes the text content to "Pickup."
  • A MutationObserver is employed to continuously monitor the DOM for changes. This is crucial because BigCommerce's checkout page is highly dynamic, and elements might load or update asynchronously. The observer ensures the script runs whenever relevant parts of the page change.
  • Additional calls to replaceFreeWithPickup on DOMContentLoaded and after a setTimeout provide fallback mechanisms, ensuring the change is applied even if the observer isn't immediately triggered or if the element loads at different stages.

Successful Implementation and Key Takeaways

Darren White confirmed that the provided script worked "perfectly," solving his immediate UI challenge. This thread serves as an excellent example of how targeted custom development can bridge gaps in platform functionality, especially for specific UI/UX requirements.

For BigCommerce merchants and developers, this highlights:

  • The power of the BigCommerce Scripts Manager for injecting custom JavaScript.
  • The necessity of dynamic DOM manipulation (like MutationObserver) when dealing with single-page application (SPA) style checkouts.
  • The importance of a clear and intuitive checkout experience for reducing cart abandonment.

At Big Migration, we understand that such granular customizations are often critical for replicating specific functionalities during a platform migration. While BigCommerce offers extensive features, unique UI labels or conditional text changes often require custom code, a common consideration when moving from other platforms like Magento or Shopify Plus where similar custom logic might exist.

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools