- Implement DriveService and ShopifyMediaService for backend operations - Create MediaSidebar.html with premium UI and auto-polling - Integrate Google Picker API for robust file selection - Orchestrate sync logic via MediaService (Drive -> Staged Upload -> Shopify) - Add secure config handling for API keys and tokens - Update ppsscript.json with required OAuth scopes - Update MEMORY.md and README.md with architecture details
67 lines
2.4 KiB
Markdown
67 lines
2.4 KiB
Markdown
# 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**
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. **Build Project**
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
3. **Deploy to Apps Script**
|
|
```bash
|
|
npm run deploy
|
|
```
|
|
|
|
## Testing
|
|
|
|
Run unit tests using Jest:
|
|
```bash
|
|
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:
|
|
- [Architecture Guide](docs/ARCHITECTURE.md)
|
|
- [Setup Guide](docs/SETUP.md)
|