Updated Kiro Steering Docs
This commit is contained in:
29
.kiro/steering/product.md
Normal file
29
.kiro/steering/product.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Product Overview
|
||||
|
||||
## Shopify Price Updater
|
||||
|
||||
A Node.js command-line tool for bulk updating Shopify product prices based on product tags using Shopify's GraphQL Admin API.
|
||||
|
||||
### Core Features
|
||||
|
||||
- **Tag-based filtering**: Updates prices only for products with specific tags
|
||||
- **Dual operation modes**:
|
||||
- `update`: Adjusts prices by percentage and sets compare-at prices
|
||||
- `rollback`: Reverts prices using compare-at price values
|
||||
- **Batch processing**: Handles large inventories with automatic pagination
|
||||
- **Error resilience**: Continues processing with comprehensive error handling
|
||||
- **Rate limit handling**: Automatic retry logic with exponential backoff
|
||||
- **Progress tracking**: Detailed logging to console and Progress.md file
|
||||
|
||||
### Target Users
|
||||
|
||||
- Shopify store owners managing promotional pricing
|
||||
- E-commerce teams running seasonal sales campaigns
|
||||
- Developers automating price management workflows
|
||||
|
||||
### Key Value Propositions
|
||||
|
||||
- Reduces manual price update effort from hours to minutes
|
||||
- Provides rollback capability for promotional campaigns
|
||||
- Maintains data integrity with validation and error handling
|
||||
- Offers detailed audit trails through comprehensive logging
|
||||
71
.kiro/steering/structure.md
Normal file
71
.kiro/steering/structure.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Project Structure
|
||||
|
||||
## Directory Organization
|
||||
|
||||
```
|
||||
shopify-price-updater/
|
||||
├── src/ # Main application source code
|
||||
│ ├── config/ # Configuration management
|
||||
│ │ └── environment.js # Environment variable validation & loading
|
||||
│ ├── services/ # Business logic services
|
||||
│ │ ├── shopify.js # Shopify API client & GraphQL operations
|
||||
│ │ ├── product.js # Product operations & price calculations
|
||||
│ │ └── progress.js # Progress tracking & logging service
|
||||
│ ├── utils/ # Utility functions
|
||||
│ │ ├── price.js # Price calculation & validation utilities
|
||||
│ │ └── logger.js # Logging utilities & formatters
|
||||
│ └── index.js # Main application entry point
|
||||
├── tests/ # Test suites
|
||||
│ ├── config/ # Configuration tests
|
||||
│ ├── services/ # Service layer tests
|
||||
│ ├── utils/ # Utility function tests
|
||||
│ ├── integration/ # Integration tests
|
||||
│ └── index.test.js # Main application tests
|
||||
├── backend/ # Separate backend component (minimal)
|
||||
│ └── .env # Backend-specific environment config
|
||||
├── .env # Main environment configuration
|
||||
├── .env.example # Environment template
|
||||
├── Progress.md # Generated operation logs
|
||||
├── debug-tags.js # Standalone tag analysis script
|
||||
└── test-*.js # Individual test scripts
|
||||
```
|
||||
|
||||
## Code Organization Patterns
|
||||
|
||||
### Service Layer Structure
|
||||
|
||||
- **ShopifyService**: API client, authentication, retry logic
|
||||
- **ProductService**: Product fetching, validation, price updates
|
||||
- **ProgressService**: Logging, progress tracking, file operations
|
||||
|
||||
### Configuration Management
|
||||
|
||||
- Centralized in `src/config/environment.js`
|
||||
- Validation at startup with clear error messages
|
||||
- Environment-specific defaults and overrides
|
||||
|
||||
### Error Handling Strategy
|
||||
|
||||
- Service-level error categorization (rate limits, network, validation)
|
||||
- Comprehensive retry logic with exponential backoff
|
||||
- Detailed error logging with context preservation
|
||||
|
||||
### Testing Structure
|
||||
|
||||
- Unit tests for utilities and individual services
|
||||
- Integration tests for complete workflows
|
||||
- Mock-based testing for external API dependencies
|
||||
- Separate test files for different operation modes
|
||||
|
||||
## File Naming Conventions
|
||||
|
||||
- **Services**: `[domain].js` (e.g., `shopify.js`, `product.js`)
|
||||
- **Utilities**: `[function].js` (e.g., `price.js`, `logger.js`)
|
||||
- **Tests**: `[module].test.js` or `test-[feature].js`
|
||||
- **Configuration**: Descriptive names (e.g., `environment.js`)
|
||||
|
||||
## Entry Points
|
||||
|
||||
- **Main Application**: `src/index.js` - Complete price update workflow
|
||||
- **Debug Tools**: `debug-tags.js` - Tag analysis and troubleshooting
|
||||
- **Test Scripts**: `test-*.js` - Individual feature testing
|
||||
62
.kiro/steering/tech.md
Normal file
62
.kiro/steering/tech.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# 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"
|
||||
Reference in New Issue
Block a user