Skip to content
FacebookYouTubeX (Twitter)

How to Install the Pingstreams Live Chat Widget on a BigCommerce Website

Learn how to integrate the powerful Pingstreams live chat widget into your BigCommerce store to provide exceptional customer support, increase sales, and improve the overall shopping experience for your customers.

Why Add Pingstreams to Your BigCommerce Store?

Section titled “Why Add Pingstreams to Your BigCommerce Store?”

Integrating Pingstreams with your BigCommerce store provides numerous e-commerce specific benefits:

  • 24/7 Customer Support - AI-powered assistance for product inquiries and order issues
  • Increased Sales Conversions - Real-time help during the purchasing process
  • Reduced Cart Abandonment - Proactive engagement to address customer concerns
  • Order Management - Automated order tracking and status updates
  • Product Recommendations - AI-driven suggestions based on customer preferences
  • International Support - Multi-language capabilities for global customers
  • Seamless Integration - Works perfectly with BigCommerce’s existing features

Before starting the installation:

  • BigCommerce store admin access with script management permissions
  • Active Pingstreams account with valid Project ID
  • Basic understanding of BigCommerce administration
  • Store backup (recommended for safety)

Step 1: Access Your BigCommerce Admin Panel

Section titled “Step 1: Access Your BigCommerce Admin Panel”

Log in to your BigCommerce admin panel using your administrator credentials.

In the BigCommerce admin panel, navigate to the “Storefront” section. This is where you can manage various aspects of your website’s appearance and functionality, including:

  • Theme management
  • Design customization
  • Script and code management
  • Widget installations

Within the “Storefront” section, find and select “Script Manager.”

Script Manager is BigCommerce’s built-in tool that allows you to:

  • Add custom scripts to your website
  • Manage third-party integrations
  • Control where and when scripts load
  • Monitor script performance

In the Script Manager, click on the “Create a Script” button to begin adding the Pingstreams live chat widget.

Fill in the script parameters with the following recommended settings:

  • Choose “Footer” to place the script at the bottom of your web pages
  • This ensures optimal page loading performance
  • Prevents interference with above-the-fold content

Select pages where script will be added: Store pages

Section titled “Select pages where script will be added: Store pages”
  • Select “Store pages” to add the widget to all store-related pages
  • This provides comprehensive coverage across your entire store
  • Includes product pages, category pages, cart, and checkout
  • Choose “Functional” to categorize it appropriately
  • Helps with compliance and organization
  • Clearly identifies the script’s purpose
  • Select “Script” to indicate that you’re adding a custom JavaScript script
  • This is the correct option for the Pingstreams widget code

Navigate to your Pingstreams dashboard and locate the “Installation Widget” section. Here, you will find the widget code that you need to embed on your website.

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // BigCommerce-specific settings
  ecommerce: true,
  platform: "bigcommerce",
  
  // Enhanced e-commerce features
  cartTracking: true,
  productRecommendations: true,
  orderSupport: true
};

(function(d, s, id) {
  var w = window;
  var d = document;
  var i = function() { i.c(arguments); };
  i.q = [];
  i.c = function(args) { i.q.push(args); };
  w.Pingstreams = i;
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.async = true;
  js.src = "https://widget.pingstreams.com/v6/launch.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'pingstreams-jssdk'));
</script>

Important: Replace "your-project-id-here" with your actual Project ID from your Pingstreams dashboard.

  1. Copy the widget code provided by Pingstreams
  2. Return to your BigCommerce admin panel
  3. Paste the widget code into the “Script contents” field
  4. Ensure the code is properly formatted and complete

After pasting the widget code, click on the “Save” button to save your changes and activate the script.

Congratulations! You have successfully installed the Pingstreams live chat widget on your BigCommerce website.

To verify the installation:

  1. Visit your store in a new browser window
  2. Check for the widget in the bottom corner of pages
  3. Test the functionality by clicking on the chat widget
  4. Verify mobile responsiveness on different devices

Take advantage of BigCommerce-specific features with advanced widget configuration:

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // E-commerce platform identification
  platform: "bigcommerce",
  ecommerce: true,
  
  // Product context (dynamically populated)
  productContext: {
    {{#if product}}
    id: "{{product.id}}",
    name: "{{product.title}}",
    price: "{{product.price.formatted}}",
    currency: "{{settings.currency_token}}",
    category: "{{product.category}}",
    brand: "{{product.brand.name}}",
    availability: "{{product.availability}}",
    sku: "{{product.sku}}",
    {{/if}}
    
    // Cart information
    {{#if cart}}
    cartValue: "{{cart.total.formatted}}",
    cartItems: {{cart.quantity}},
    cartId: "{{cart.id}}",
    {{/if}}
  },
  
  // Customer information (if logged in)
  customerContext: {
    {{#if customer}}
    id: "{{customer.id}}",
    email: "{{customer.email}}",
    firstName: "{{customer.first_name}}",
    lastName: "{{customer.last_name}}",
    customerGroup: "{{customer.customer_group.name}}",
    orderHistory: {{customer.orders_count}},
    {{/if}}
  },
  
  // Store-specific settings
  storeContext: {
    storeName: "{{settings.store_name}}",
    storeUrl: "{{settings.base_url}}",
    currency: "{{settings.currency_token}}",
    locale: "{{settings.default_locale}}",
  },
  
  // Page-specific behavior
  pageContext: {
    pageType: "{{page_type}}",
    pageName: "{{page.title}}",
    currentUrl: window.location.href
  }
};

// Standard widget loading code
(function(d, s, id) {
  var w = window;
  var d = document;
  var i = function() { i.c(arguments); };
  i.q = [];
  i.c = function(args) { i.q.push(args); };
  w.Pingstreams = i;
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.async = true;
  js.src = "https://widget.pingstreams.com/v6/launch.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'pingstreams-jssdk'));
</script>

Enable automatic order status inquiries:

<script type="application/javascript">
// Enhanced order support for BigCommerce
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  orderTracking: {
    enabled: true,
    {{#if customer.orders}}
    recentOrders: [
      {{#each customer.orders}}
      {
        id: "{{id}}",
        status: "{{status_text}}",
        total: "{{total.formatted}}",
        date: "{{date_created.formatted}}"
      }{{#unless @last}},{{/unless}}
      {{/each}}
    ],
    {{/if}}
  },
  
  // Custom responses for order inquiries
  orderSupport: {
    trackingResponse: "I can help you track your order! Please provide your order number.",
    statusUpdate: "Let me check the current status of your order.",
    shippingInfo: "Here's the shipping information for your order:"
  }
};

// Widget loading code
</script>

Proactively engage users who show signs of leaving:

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // Cart abandonment settings
  cartAbandonment: {
    enabled: true,
    {{#if cart.items}}
    cartValue: "{{cart.total.formatted}}",
    cartItems: {{cart.quantity}},
    triggerDelay: 30000, // 30 seconds of inactivity
    exitIntentEnabled: true,
    {{/if}}
  },
  
  // Abandonment messages
  abandonmentMessages: {
    cartValue: "I noticed you have items in your cart. Need help with checkout?",
    productQuestion: "Have questions about the products in your cart?",
    shippingHelp: "Need help with shipping options or costs?"
  }
};

// Exit intent detection
let exitIntentShown = false;
document.addEventListener('mouseleave', function(e) {
  if (e.clientY <= 0 && !exitIntentShown && window.Pingstreams) {
    exitIntentShown = true;
    window.Pingstreams.openChat({
      message: "Wait! Need help completing your purchase?"
    });
  }
});

// Widget loading code
</script>

For Stencil-based themes, you can integrate more deeply:

{{!-- In your theme's base.html or footer.html --}}
<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // Dynamic theme integration
  themeInfo: {
    name: "{{theme.name}}",
    version: "{{theme.version}}",
    variation: "{{theme.variation}}"
  },
  
  // Responsive breakpoints matching your theme
  responsiveBreakpoints: {
    mobile: 768,
    tablet: 1024,
    desktop: 1200
  },
  
  // Theme-specific styling
  styling: {
    primaryColor: "{{theme.settings.color_primary}}",
    accentColor: "{{theme.settings.color_accent}}",
    fontFamily: "{{theme.settings.font_family}}"
  }
};

// Theme-aware widget loading
</script>

Handle different currencies dynamically:

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // Currency settings
  currency: {
    code: "{{currency_selector.active_currency_code}}",
    symbol: "{{currency_selector.active_currency_flag}}",
    rate: {{currency_selector.active_currency_rate}},
    
    // Multi-currency support
    availableCurrencies: [
      {{#each currency_selector.currencies}}
      {
        code: "{{code}}",
        name: "{{name}}",
        symbol: "{{flag}}"
      }{{#unless @last}},{{/unless}}
      {{/each}}
    ]
  },
  
  // Currency-specific responses
  currencyResponses: {
    "USD": "Prices are shown in US Dollars. Free shipping on orders over $50!",
    "EUR": "Prices are shown in Euros. Free shipping on orders over €45!",
    "GBP": "Prices are shown in British Pounds. Free shipping on orders over £40!"
  }
};

// Widget loading code
</script>

Integrate with BigCommerce’s product data:

<script type="application/javascript">
// Product recommendation integration
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  {{#if product}}
  // Current product context
  currentProduct: {
    id: {{product.id}},
    name: "{{product.title}}",
    category: "{{product.category}}",
    price: {{product.price.value}},
    
    // Related products
    {{#if product.related_products}}
    relatedProducts: [
      {{#each product.related_products}}
      {
        id: {{id}},
        name: "{{name}}",
        price: "{{price.formatted}}",
        url: "{{url}}"
      }{{#unless @last}},{{/unless}}
      {{/each}}
    ],
    {{/if}}
    
    // Product variants
    {{#if product.variants}}
    variants: [
      {{#each product.variants}}
      {
        id: {{id}},
        sku: "{{sku}}",
        price: {{price}},
        inventory: {{inventory_level}}
      }{{#unless @last}},{{/unless}}
      {{/each}}
    ],
    {{/if}}
  },
  {{/if}}
  
  // Recommendation settings
  recommendations: {
    enabled: true,
    maxSuggestions: 3,
    includeCategories: true,
    includeBrands: true,
    priceRange: true
  }
};

// Widget loading code
</script>

Handle stock inquiries automatically:

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  {{#if product}}
  inventoryContext: {
    productId: {{product.id}},
    availability: "{{product.availability}}",
    stockLevel: {{product.inventory_level}},
    trackInventory: {{product.inventory_tracking}},
    
    // Stock status messages
    stockMessages: {
      inStock: "This item is currently in stock and ready to ship!",
      lowStock: "Hurry! Only a few items left in stock.",
      outOfStock: "This item is currently out of stock. Would you like to be notified when it's available?",
      backorder: "This item is available on backorder with an estimated shipping date."
    },
    
    // Restock notifications
    restockNotifications: {
      enabled: {{#if product.inventory_tracking}}true{{else}}false{{/if}},
      message: "Would you like to be notified when this item is back in stock?"
    }
  },
  {{/if}}
};

// Widget loading code
</script>

Enhanced support for returning customers:

<script type="application/javascript">
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  {{#if customer}}
  customerService: {
    customerId: "{{customer.id}}",
    customerSince: "{{customer.date_created.formatted}}",
    totalOrders: {{customer.orders_count}},
    lifetimeValue: "{{customer.store_credit.formatted}}",
    
    // Recent order context
    {{#if customer.orders}}
    recentOrder: {
      {{#with customer.orders.[0]}}
      id: "{{id}}",
      status: "{{status_text}}",
      total: "{{total.formatted}}",
      date: "{{date_created.formatted}}",
      trackingNumber: "{{shipping.tracking_number}}"
      {{/with}}
    },
    {{/if}}
    
    // Personalized service
    vipCustomer: {{#if customer.customer_group.name}}true{{else}}false{{/if}},
    preferredLanguage: "{{customer.language}}",
    timezone: "{{customer.timezone}}"
  },
  {{else}}
  // Guest customer support
  guestSupport: {
    orderLookup: true,
    guestCheckout: true,
    accountCreation: true
  },
  {{/if}}
};

// Widget loading code
</script>

Optimize page loading performance:

<script type="application/javascript">
// Lazy load widget for better performance
function initializePingstreamsWidget() {
  window.pingstreamsSettings = {
    projectid: "your-project-id-here",
    // Your configuration here
  };
  
  (function(d, s, id) {
    var w = window;
    var d = document;
    var i = function() { i.c(arguments); };
    i.q = [];
    i.c = function(args) { i.q.push(args); };
    w.Pingstreams = i;
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s);
    js.id = id;
    js.async = true;
    js.src = "https://widget.pingstreams.com/v6/launch.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'pingstreams-jssdk'));
}

// Load after page interaction or delay
let widgetLoaded = false;
function loadWidget() {
  if (!widgetLoaded) {
    initializePingstreamsWidget();
    widgetLoaded = true;
  }
}

// Multiple loading triggers
window.addEventListener('scroll', loadWidget, { once: true });
window.addEventListener('mousemove', loadWidget, { once: true });
setTimeout(loadWidget, 3000); // Fallback after 3 seconds

// Immediate load for high-intent pages
if (window.location.pathname.includes('/checkout') || 
    window.location.pathname.includes('/cart')) {
  loadWidget();
}
</script>
<script type="application/javascript">
// Cache-friendly widget configuration
window.pingstreamsSettings = {
  projectid: "your-project-id-here",
  
  // Performance settings
  performance: {
    lazyLoad: true,
    cacheWidgetData: true,
    preloadTimeout: 2000,
    
    // CDN settings
    cdnEnabled: true,
    cdnRegion: "auto", // or specify region
  },
  
  // Reduced initial payload
  minimizeInitialLoad: true,
  loadOnDemandFeatures: [
    "fileUpload",
    "videoChat", 
    "screenShare"
  ]
};

// Optimized loading with error handling
(function() {
  try {
    // Widget loading code with timeout protection
    var loadTimeout = setTimeout(function() {
      console.warn('Pingstreams widget loading timeout');
    }, 10000);
    
    (function(d, s, id) {
      var w = window;
      var d = document;
      var i = function() { i.c(arguments); };
      i.q = [];
      i.c = function(args) { i.q.push(args); };
      w.Pingstreams = i;
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s);
      js.id = id;
      js.async = true;
      js.src = "https://widget.pingstreams.com/v6/launch.js";
      js.onload = function() { clearTimeout(loadTimeout); };
      js.onerror = function() { 
        clearTimeout(loadTimeout);
        console.error('Failed to load Pingstreams widget');
      };
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'pingstreams-jssdk'));
    
  } catch (error) {
    console.error('Pingstreams initialization error:', error);
  }
})();
</script>
  • Widget appears on all intended store pages
  • Chat window opens and closes properly
  • Message sending and receiving works
  • Product context is passed correctly
  • Customer data is available when logged in
  • Order information is accessible
  • Cart data is tracked accurately
  • Desktop browsers (Chrome, Firefox, Safari, Edge)
  • Mobile browsers (iOS Safari, Android Chrome)
  • Tablet displays (iPad, Android tablets)
  • Touch interactions work properly
  • Responsive design adapts correctly
  • Product page functionality
  • Category page behavior
  • Cart page integration
  • Checkout process compatibility
  • Order confirmation page display
  • Customer account area functionality
  • Page load speeds remain acceptable
  • Time to interactive is not impacted
  • No JavaScript errors in console
  • Widget loading time is reasonable
  • Memory usage is optimized

Possible Causes:

  1. Script Manager misconfiguration
  2. JavaScript conflicts with other scripts
  3. Incorrect Project ID
  4. Theme compatibility issues

Solutions:

  1. Verify Script Manager settings are correct
  2. Check browser console for error messages
  3. Confirm Project ID in Pingstreams dashboard
  4. Test with default theme to isolate issues

Common Issues:

  • Widget overlapping with mobile navigation
  • Chat window too large for small screens
  • Touch events not working properly

CSS Solutions:

/* Mobile-specific fixes */
@media (max-width: 768px) {
  .pingstreams-widget {
    bottom: 15px !important;
    right: 15px !important;
    z-index: 9999 !important;
  }
  
  .pingstreams-chat-window {
    width: 90vw !important;
    height: 70vh !important;
    max-width: 350px !important;
  }
}

Monitoring Tools:

  • Google PageSpeed Insights
  • GTmetrix
  • BigCommerce’s built-in performance monitoring
  • Browser developer tools

Optimization Strategies:

  1. Implement lazy loading for the widget
  2. Minimize initial configuration data
  3. Use CDN delivery when available
  4. Monitor script execution time

Done! Your BigCommerce Store Now Has Pingstreams! 🎉

Section titled “Done! Your BigCommerce Store Now Has Pingstreams! 🎉”

Congratulations! You have successfully installed the Pingstreams live chat widget on your BigCommerce website. Your customers can now:

  • Get instant support for product questions and order issues
  • Receive personalized recommendations based on their browsing
  • Get help with checkout and payment processes
  • Track their orders seamlessly through chat
  • Experience 24/7 availability for customer service
  1. Configure AI responses for common e-commerce inquiries
  2. Set up product recommendation workflows
  3. Create order tracking automation
  4. Implement cart abandonment recovery campaigns
  5. Train your team on the new chat system
  • Multi-store management for BigCommerce Enterprise
  • Advanced analytics integration with BigCommerce reporting
  • Webhook integration for real-time order updates
  • API connections for deeper e-commerce functionality
  • Custom app development for specialized needs

Remember to regularly monitor and respond to incoming chat messages to provide excellent customer support through the Pingstreams live chat widget on your BigCommerce website.

Monitor these key metrics:

  • Chat engagement rates
  • Conversion impact from chat interactions
  • Customer satisfaction scores
  • Response time improvements
  • Sales attribution from chat sessions

That’s it! Your Pingstreams live chat widget should now be up and running on your BigCommerce website, allowing you to engage with your customers in real-time and provide exceptional e-commerce support.

Ready to transform your BigCommerce store’s customer experience? Your Pingstreams integration is now live and ready to help you increase sales, reduce cart abandonment, and provide world-class customer support!