Files
product_inventory/docs/SETUP.md
Ben Miller 9bc55f3a06 feat: introduce Jest testing framework and decouple Product logic
- Added Jest infrastructure (deps, config, global mocks)
- Introduced ISpreadsheetService with GAS and Mock implementations
- Refactored Product.ts to use dependency injection
- Added unit tests for Product class
- Updated documentation (README, SETUP, ARCHITECTURE) to reflect testing and init scripts
2025-12-25 03:59:23 -07:00

2.2 KiB

Setup Guide

Local Development Environment

  1. Environment Initialization Run the provided PowerShell script to automatically install:

    • fnm (Fast Node Manager) via Winget
    • Node.js (v22)
    • Global dependencies (@google/clasp)
    • Project dependencies (npm install)
    .\init.ps1
    
  2. Verify Installation Run tests to confirm the environment is correctly configured.

    npm test
    
  3. Clasp Login Authenticate with Google to allow pushing code.

    clasp login
    
  4. Initialize Project You must either create a new Apps Script project or clone an existing one.

    • Option A: New Project
      clasp create --type sheets --title "Product Inventory" --rootDir ./dist
      
    • Option B: Existing Project
      clasp clone <scriptId> --rootDir ./dist
      

    Note: The --rootDir ./dist flag is crucial so that clasp knows where to look for files.

Google Sheets Configuration

  1. Create a Google Sheet (or use existing).
  2. "vars" Sheet: Create a tab named vars with the following columns: key, value. Add the following rows:
    • productPhotosFolderId: ID of the Drive folder for photos.
    • shopifyApiKey: Your Shopify API Key.
    • shopifyApiSecretKey: Your Shopify API Secret.
    • shopifyAdminApiAccessToken: The Admin API access token.
    • shopifyApiURI: e.g., https://your-store.myshopify.com
    • shopifyLocationId: Location ID for inventory.
    • shopifyCountryCodeOfOrigin: Two-letter country code (e.g., US).
    • shopifyProvinceCodeOfOrigin: Two-letter province code (e.g., NY).
    • SalesSyncFrequency: Interval (in minutes) to check for new sales. Valid: 1, 5, 10, 15, 30.

Deployment

  1. Build

    npm run build
    
  2. Push to Apps Script

    npm run deploy
    
  3. Install Triggers Open the Apps Script editor (Extensions > Apps Script). Run the reinstallTriggers function manually once to set up the automation.