# 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`) ```powershell .\init.ps1 ``` 2. **Verify Installation** Run tests to confirm the environment is correctly configured. ```bash npm test ``` 3. **Clasp Login** Authenticate with Google to allow pushing code. ```powershell clasp login ``` 4. **Initialize Project** You must either create a new Apps Script project or clone an existing one. - **Option A: New Project** ```bash clasp create --type sheets --title "Product Inventory" --rootDir ./dist ``` - **Option B: Existing Project** ```bash clasp clone --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** ```bash npm run build ``` 2. **Push to Apps Script** ```bash 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.