# Technology Stack ## Runtime & Dependencies - **Node.js**: >=16.0.0 (specified in package.json engines) - **Core Dependencies**: - `@shopify/shopify-api`: ^7.7.0 - Shopify GraphQL API client - `dotenv`: ^16.3.1 - Environment variable management - `node-fetch`: ^3.3.2 - HTTP client for API requests - **Development Dependencies**: - `jest`: ^29.7.0 - Testing framework ## Architecture Patterns - **Service Layer Architecture**: Separation of concerns with dedicated services - **Configuration Management**: Centralized environment-based configuration - **Error Handling**: Comprehensive retry logic with exponential backoff - **Logging Strategy**: Dual output (console + Progress.md file) ## API Integration - **Shopify GraphQL Admin API**: Version 2024-01 - **Authentication**: Private App access tokens - **Rate Limiting**: Built-in handling with automatic retries - **Bulk Operations**: Uses `productVariantsBulkUpdate` mutation ## Common Commands ### Development ```bash npm install # Install dependencies npm start # Run with default settings npm run update # Explicit update mode npm run rollback # Rollback mode npm run debug-tags # Debug tag analysis npm test # Run test suite ``` ### Environment Setup ```bash copy .env.example .env # Create environment file (Windows) cp .env.example .env # Create environment file (Unix) ``` ### Testing & Debugging ```bash npm run debug-tags # Analyze store tags before running npm test # Run Jest test suite ``` ## Environment Variables Required variables (see .env.example): - `SHOPIFY_SHOP_DOMAIN`: Store domain - `SHOPIFY_ACCESS_TOKEN`: Admin API token - `TARGET_TAG`: Product tag filter - `PRICE_ADJUSTMENT_PERCENTAGE`: Adjustment percentage - `OPERATION_MODE`: "update" or "rollback"