npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ecommerce-chat/shopping-assistant

v1.7.6

Published

Embeddable AI shopping assistant widget for e-commerce websites

Readme

Shopping Assistant Widget

Embeddable AI-powered shopping assistant for e-commerce websites. Help your customers find products through natural conversation.

Get your API key at echatr.com - Sign up to connect your product catalog and start helping customers find products through AI-powered conversations. First 50 products are free!

Shopping Assistant Demo

Features

  • 🤖 AI-powered product recommendations
  • 🔍 Semantic product search
  • 💬 Natural conversation interface
  • 🎨 Customizable appearance
  • 📱 Mobile-responsive design
  • ⚡ Lightweight and fast

Installation

Via CDN (Recommended)

Add these two lines to your HTML:

<!-- Include the widget CSS and JS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ecommerce-chat/shopping-assistant@1/dist/widget.css">
<script src="https://cdn.jsdelivr.net/npm/@ecommerce-chat/shopping-assistant@1/dist/widget.iife.js"></script>

<!-- Initialize the widget -->
<script>
  // Try it without an API key for demo mode!
  ShoppingAssistant.init({
    position: 'bottom-right',
    primaryColor: '#667eea'
  });

  // Or connect your store:
  // ShoppingAssistant.init({
  //   apiKey: 'YOUR_API_KEY',  // Get this from echatr.com
  //   position: 'bottom-right',
  //   primaryColor: '#667eea'
  // });
</script>

Via NPM

npm install @ecommerce-chat/shopping-assistant

Configuration

ShoppingAssistant.init({
  // Required
  apiKey: 'store_...',              // Your store API key from eChat dashboard

  // Optional
  position: 'bottom-right',         // 'bottom-right' | 'bottom-left'
  primaryColor: '#667eea',          // Widget theme color

  // Optional: Cart integration
  getCart: function() {
    return {
      items: [],
      total: 0
    };
  },

  // Optional: Cart actions
  onAddToCart: async function(productId, quantity) {
    // Add product to your cart system
    await myCart.add(productId, quantity);
    return { success: true };
  },

  onRemoveFromCart: async function(productId) {
    // Remove product from your cart system
    await myCart.remove(productId);
    return { success: true };
  },

  // Optional: Product navigation
  onNavigateToProduct: function(productId) {
    // Navigate to product detail page
    window.location.href = `/products/${productId}`;
  },

  onViewProductDetails: function(productId) {
    // Show product details in modal or panel
    showProductModal(productId);
  },

  // Optional: Coupon application
  onApplyCoupon: async function(couponCode) {
    // Apply coupon code to cart
    await fetch('/cart/coupon', {
      method: 'POST',
      body: JSON.stringify({ code: couponCode })
    });
    return { success: true };
  }
});

Options

Configuration Options

All options are optional! You can initialize the widget with no configuration for demo mode.

| Option | Type | Default | Description | |--------|------|---------|-------------| | apiKey | string | undefined | Your store API key from echatr.com. Omit for demo mode with sample products. | | position | string | 'bottom-right' | Widget position: 'bottom-right' or 'bottom-left' | | primaryColor | string | '#667eea' | Primary theme color for the widget |

Optional Callbacks

| Option | Type | Description | |--------|------|-------------| | getCart | function | Function to retrieve current cart state | | onAddToCart | function | Callback when user adds product to cart | | onRemoveFromCart | function | Callback when user removes product from cart | | onNavigateToProduct | function | Callback to navigate to product detail page | | onViewProductDetails | function | Callback to show product details in modal/panel | | onApplyCoupon | function | Callback when user applies a coupon code |

Advanced Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | apiUrl | string | 'https://api.echatr.com/api/v1' | Backend API URL (only override for self-hosting) |

Example Queries

Your customers can ask natural questions like:

  • "Show me laptops under $1500"
  • "I need wireless headphones with noise cancellation"
  • "What cameras do you have for beginners?"
  • "Find me accessories for my laptop"

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

License

MIT

Getting Your API Key

  1. Visit echatr.com and create an account
  2. Add your store and upload your product catalog (First 50 products free!)
  3. Copy your API key from the dashboard
  4. Add it to your widget configuration

Support