- 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
2.2 KiB
2.2 KiB
Setup Guide
Local Development Environment
-
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 -
Verify Installation Run tests to confirm the environment is correctly configured.
npm test -
Clasp Login Authenticate with Google to allow pushing code.
clasp login -
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 ./distflag is crucial so that clasp knows where to look for files. - Option A: New Project
Google Sheets Configuration
- Create a Google Sheet (or use existing).
- "vars" Sheet:
Create a tab named
varswith 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.comshopifyLocationId: 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
-
Build
npm run build -
Push to Apps Script
npm run deploy -
Install Triggers Open the Apps Script editor (Extensions > Apps Script). Run the
reinstallTriggersfunction manually once to set up the automation.