Skip to content

The primary objective of this application is to facilitate efficient management of Shopify store data

Notifications You must be signed in to change notification settings

bitcode/NexusCommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shopify Data Management & Visualization App

A modern application for efficient management and visualization of Shopify store data, leveraging the Shopify Admin GraphQL API and dynamic Mermaid diagrams.


Overview

This project aims to provide a powerful alternative to the standard Shopify admin interface, focusing on rapid, bulk, and visual data management for store owners, developers, and managers. By exclusively utilizing the Shopify Admin GraphQL API, the application enables tailored data operations and dynamic visualization of store relationships (e.g., Products, Collections, Customers, Orders) through automatically generated Mermaid diagrams.

Why? The default Shopify UI can be cumbersome for complex or bulk operations and lacks advanced visualization of data relationships. This app addresses those gaps with a streamlined interface and unique diagramming features.


Key Features

  • GraphQL-Driven Data Management: Full Create, Read, Update, and Delete (CRUD) operations for Products, Variants, Collections, Customers, Orders, and Inventory, all via the Shopify Admin GraphQL API.

  • Dynamic Mermaid Visualizations: Automatic generation and rendering of Mermaid diagrams (Entity Relationship Diagrams, Class Diagrams) to illustrate the structure and relationships within your Shopify store.

  • Efficient Bulk Operations: Support for Shopify's Bulk Operations API for high-volume data processing.

  • Authentication: Secure access via Shopify Admin API Access Token (for personal use) with a modular design to support OAuth for multi-store management in the future.

  • Pagination, Filtering, and Caching: Handles large datasets with cursor-based pagination, advanced filtering, and caching for performance.

  • Robust Error and Rate Limit Handling: Adaptive strategies for Shopify's query cost-based rate limiting, with user feedback and retry logic.

  • Extensible Architecture: Designed for maintainability and future expansion, including multi-client support.


Technology Stack

  • Frontend: React + TypeScript with Apollo Client
  • Backend/API: Node.js (preferred for full-stack JS) or Python (alternative)
  • GraphQL Client:
    • Apollo Client with @defer support for Shopify Storefront API
  • Visualization: mermaid.js for rendering diagrams
  • Other:
    • Electron (if desktop app)
    • Standard web development tools (npm, yarn, etc.)

Getting Started

Prerequisites

  • Node.js (v16+ recommended) or Python 3.8+ (if using Python backend)
  • npm or yarn (for JS projects)
  • Shopify store with Storefront API access

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/shopify-data-visualization.git
    cd shopify-data-visualization
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Configure Shopify API credentials:

    • Create a Custom App in your Shopify admin and obtain the Storefront API Access Token.
    • Copy .env.example to .env.local and update with your Shopify credentials.
  4. Start the application:

    npm start
    # or
    yarn start

Apollo Client Integration

This project uses Apollo Client for GraphQL queries with the following features:

  • Native @defer Support: Incremental loading of data for better user experience
  • Error Handling: Comprehensive error handling with retry logic
  • Caching: Efficient caching with type policies for pagination
  • Custom Hooks: Simplified query hooks for Shopify Storefront API

Example Usage

import { useShopifyQuery } from './apollo/useShopifyQuery';
import { gql } from '@apollo/client';

const PRODUCTS_QUERY = gql`
  query GetProducts($first: Int!) {
    products(first: $first) {
      edges {
        node {
          id
          title
          # ... other fields
        }
      }
    }
  }
`;

function ProductList() {
  const { loading, error, data } = useShopifyQuery(PRODUCTS_QUERY, {
    variables: { first: 10 }
  });

  // Use the data...
}

Usage

  • Authenticate with your Shopify store.
  • Browse and manage Products, Collections, Customers, Orders, and Inventory.
  • Visualize relationships by selecting entities to generate Mermaid diagrams.
  • Perform CRUD operations directly from the UI.
  • Handle large datasets with built-in pagination and bulk operations.

For detailed usage instructions, see the User Guide.


Roadmap

Phase Goal Key Features/Tasks Milestone
1 Core Setup & Read Auth, UI, Read Queries, Pagination Authenticated display of paginated resources
2 Data Visualization Mermaid ERD/Class Diagrams, UI Integration Dynamic diagram generation
3 CRUD Operations UI Forms, Mutations, Error Handling Full CRUD via UI
4 Refinements Filtering, UX, Performance, Rate Limiting Stable, performant app
5 Multi-Client (Future) OAuth, Multi-store, Data Isolation Manage multiple stores

Documentation


Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.


License

This project is licensed under the MIT License. See LICENSE for details.


References

About

The primary objective of this application is to facilitate efficient management of Shopify store data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published