Ben Miller 63b2ff2fd0 Fix Media Manager action buttons, flickering, and card spacing
- Switched from index-based to unique ID-based deletion to fix incorrect target after reordering.
- Enhanced media state normalization in loadMedia to ensure robust link button () visibility.
- Implemented targeted UI updates via ui.updateCardState(id) to prevent thumbnail flickering on status changes.
- Standardized vertical card spacing to 8px and corrected Gallery card action bar overhang/overlap.
2025-12-31 10:52:15 -07:00
2024-11-07 21:49:40 -07:00
2024-11-13 23:43:32 -07:00

Product Inventory Management

This project integrates Google Sheets with Shopify to manage product inventory, photos, and metadata. It uses Google Apps Script to synchronize data between a "master" Google Sheet and your Shopify store.

Overview

The system allows you to:

  • Manage product details (SKUs, titles, descriptions) in a Google Sheet.
  • Automatically upload product photos from Google Drive to Shopify.
  • specific triggers (onEdit, onOpen) to sync changes to Shopify in real-time or on-demand.
  • Handle rate limiting and concurrency using a custom queue system.
  • Handle rate limiting and concurrency using a custom queue system.
  • Monitor and troubleshoot background processes via a custom side panel.
  • Automated Sales Sync: Periodically check Shopify for recent sales and mark items as "sold" in the sheet.
  • Manual Reconciliation: Backfill sales data for a specific time range via menu command.
  • Status Workflow Automation: Automatically update Shopify status and inventory based on the sheet's "status" column (e.g., "Sold" -> Active, 0 Qty).
  • Integrated Media Manager: A dedicated sidebar for managing product photos, including Google Drive integration and live Shopify syncing.

Prerequisites

  • Node.js: managed via fnm (Fast Node Manager)
  • Google Clasp: for pushing code to Apps Script
  • Google Cloud Project: tied to the Apps Script container

Quick Start

  1. Install Dependencies

    npm install
    
  2. Build Project

    npm run build
    
  3. Deploy to Apps Script

    npm run deploy
    

Testing

Run unit tests using Jest:

npm test
```bash
npm test

Code Quality Enforcement

This project uses Husky to enforce code quality locally.

  • Pre-commit Hook: Runs tests on changed files before every commit.
  • Coverage Requirement: Modified files must maintain 80% code coverage. Commits will be blocked if this threshold is not met.

Project Structure

  • src/: Source code (TypeScript)
  • src/config.ts: Configuration loading from Sheets
  • src/global.ts: Entry points for Apps Script
  • src/shopifyApi.ts: Shopify Admin API wrapper
  • src/onEditQueue.ts: Concurrency management

For more details, see:

Description
No description provided
Readme 2.7 MiB
Languages
TypeScript 70.8%
HTML 28.8%
JavaScript 0.3%
PowerShell 0.1%