f6831cdc8f69055280807377ebeda14dd2568a32
This commit adds robust handling for Google Drive videos that are still processing (lacking thumbnails). Changes include: 1. Backend (MediaService.ts): Implement try/catch around thumbnail generation. If it fails, return a placeholder and flag the item as 'isProcessing'. 2. Frontend (MediaManager.html): - Add polling logic to check for updates on processing items every 15s. - Add UI support for processing state: slate background, centered animated hourglass emoji. - Implement sand animation (toggling hourglass state) and rotation animation (180deg flip on poll event). - Fix badges and positioning issues.
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
-
Install Dependencies
npm install -
Build Project
npm run build -
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 Sheetssrc/global.ts: Entry points for Apps Scriptsrc/shopifyApi.ts: Shopify Admin API wrappersrc/onEditQueue.ts: Concurrency management
For more details, see:
Description
Languages
TypeScript
70.8%
HTML
28.8%
JavaScript
0.3%
PowerShell
0.1%