JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q32802F
  • License MIT

A custom analytics service for Shopify and WooCommerce platforms.

Package Exports

  • rabbit-analytics
  • rabbit-analytics/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rabbit-analytics) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Analytics Service Library

This library provides an abstract AnalyticsService class and two concrete implementations: ShopifyAnalyticsService and WooCommerceAnalyticsService. It includes a factory (AnalyticsFactory) to instantiate the appropriate analytics service based on the platform.

Installation

Install the package using npm:

npm install rabbit-analytics

Usage

Importing the Library

First, import the necessary classes from the package:

const AnalyticsFactory = require('rabbit-analytics');

Creating an Analytics Service

Use the AnalyticsFactory to create an instance of the analytics service for a specific platform:

const analyticsService = AnalyticsFactory.create('Shopify');

Supported platforms:

  • Shopify
  • WooCommerce

Methods

Each analytics service implements the following methods:

track(event, properties)

Tracks a specific event with optional properties.

const analyticsService = AnalyticsFactory.create('Shopify');

analyticsService.track('Product Viewed', {
  productId: '12345',
  productName: 'Cool T-Shirt',
  category: 'Apparel',
});

Parameters:

  • event (string): The name of the event to track.
  • properties (object): An optional object containing additional event properties.

Example:

// Tracking a purchase event
analyticsService.track('Purchase Made', {
  orderId: '98765',
  amount: 49.99,
  currency: 'USD',
});

identify(userId, traits)

Identifies a user with a unique ID and optional traits.

const analyticsService = AnalyticsFactory.create('WooCommerce');

analyticsService.identify('user-123', {
  email: 'user@example.com',
  name: 'John Doe',
  subscriptionLevel: 'Premium',
});

Parameters:

  • userId (string): The unique ID of the user.
  • traits (object): An optional object containing user traits.

Example:

// Identifying a user with additional traits
analyticsService.identify('user-456', {
  email: 'jane.doe@example.com',
  name: 'Jane Doe',
  registeredAt: '2024-01-01',
});

page(pageName)

Tracks page views with optional properties.

const analyticsService = AnalyticsFactory.create('Shopify');

analyticsService.page('Homepage');

Parameters:

  • pageName (string): The name of the page being viewed. If not provided, the current document title will be used.

Example:

// Tracking a product page view
analyticsService.page('Product Detail Page');

Implementation Details

Abstract AnalyticsService Class

The AnalyticsService class is an abstract base class with the following methods:

  • track(event, properties): Should be implemented by subclasses to track events.
  • identify(userId, traits): Should be implemented by subclasses to identify users.
  • page(pageName): Should be implemented by subclasses to track page views.

Concrete Implementations

ShopifyAnalyticsService

Implements the AnalyticsService methods for Shopify.

  • track(event, properties): Logs events with Shopify-specific properties.
  • identify(userId, traits): Logs user identification with Shopify-specific traits.
  • page(pageName): Logs page visits with Shopify-specific properties.

WooCommerceAnalyticsService

Implements the AnalyticsService methods for WooCommerce.

  • track(event, properties): Logs events with WooCommerce-specific properties.
  • identify(userId, traits): Logs user identification with WooCommerce-specific traits.
  • page(pageName): Logs page visits with WooCommerce-specific properties.

Factory Class

AnalyticsFactory

  • create(platform): Creates an instance of the analytics service for the specified platform. Supported platforms are Shopify and WooCommerce.

Example:

const shopifyService = AnalyticsFactory.create('Shopify');
const wooCommerceService = AnalyticsFactory.create('WooCommerce');

License

This project is licensed under the MIT License - see the LICENSE file for details.


This Markdown content provides a complete and detailed overview of how to use the analytics service library. You can copy this content into a `README.md` file in your project directory.