config npm package that allows you to customize your store’s behavior through JSON configuration files.
Configuration Structure
EverShop’s configuration is organized into several main sections:Shop Configuration
Basic store settings including currency, language, and regional preferences:System Configuration
Core system settings including database, session, and integrations:Catalog Configuration
Product catalog settings:Pricing Configuration
Price calculation and tax settings:Configuration Files Location
Configuration files should be placed in theconfig/ directory at the root of your EverShop project. During installation, EverShop generates a default configuration file at:
Environment-Specific Configuration
You can create environment-specific configuration files:config/default.json- Default configuration for all environmentsconfig/production.json- Production-specific overridesconfig/development.json- Development-specific overrides
Environment-specific files override values from
default.json. The environment is determined by the NODE_ENV environment variable.Using Configuration in Code
Access configuration values using thegetConfig utility:
Database Configuration
Database connection is configured via environment variables (see Environment Variables):DB_HOST- Database hostDB_PORT- Database portDB_NAME- Database nameDB_USER- Database userDB_PASSWORD- Database passwordDB_SSLMODE- SSL mode for database connection
Session Configuration
Configure session behavior:maxAge- Session cookie max age in milliseconds (default: 24 hours)resave- Forces session to be saved even if unmodifiedsaveUninitialized- Forces uninitialized sessions to be savedcookieSecret- Secret used to sign session cookiescookieName- Cookie name for customer sessionsadminCookieName- Cookie name for admin sessions
Payment Gateway Configuration
Configure payment methods in the system configuration:Stripe
Cash on Delivery
Email Notification Configuration
Configure email notifications:Theme Configuration
Configure theme-specific settings:Configuration Validation
EverShop validates configuration against a schema. Invalid configuration will throw an error on startup:- Type mismatches
- Missing required fields
- Invalid enum values
- Additional properties not allowed
Best Practices
Environment Variables
Use environment variables for sensitive data like passwords and API keys
Version Control
Commit
default.json but add environment-specific configs to .gitignoreValidation
Test configuration changes in development before deploying to production
Documentation
Document custom configuration options for your team
Common Configuration Patterns
Multiple Currencies
While the main currency is set in configuration, you can support multiple currencies through extensions.Custom File Storage
Change the file storage system:Order Management
Configure order statuses and workflows:Troubleshooting
Configuration Not Loading
- Verify the
config/directory exists in your project root - Ensure JSON files are valid (use a JSON validator)
- Check file permissions
- Verify
NODE_ENVis set correctly
Reserved Keys
The following keys are reserved and cannot be used in configuration:validateConfiguration.js:24-46 for the complete list.