Un'applicazione completa per la gestione dell'inventario con integrazione Shopify, sviluppata con Node.js/Express backend e frontend EJS.
- Gestione Categorie Dinamiche: Crea categorie personalizzabili con campi dinamici
- Gestione Prodotti Completa: CRUD prodotti con varianti, opzioni e attributi
- Upload Immagini: Sistema di upload multiplo con validazione
- Integrazione Shopify: Export automatico e sincronizzazione bidirezionale
- Attributi Dinamici: Metafields personalizzati per prodotti e varianti
- API REST Complete: Oltre 50 endpoint per tutte le operazioni
inventario2/
βββ backend/ # Node.js + Express API Server
β βββ config/ # Configurazioni (database, logger)
β βββ models/ # Modelli Sequelize
β βββ routes/ # API endpoints
β βββ middleware/ # Middleware personalizzati
β βββ services/ # Servizi (Shopify integration)
β βββ uploads/ # File immagini caricate
β βββ logs/ # File di log
βββ shared/ # Tipi e utilities condivise
βββ API_DOCUMENTATION.md # Documentazione API completa
βββ development-plan.md # Piano di sviluppo dettagliato
- Runtime: Node.js
- Framework: Express.js
- Database: SQLite con Sequelize ORM
- Upload: Multer per gestione file
- Validazione: Joi
- Logging: Winston
- API Client: Axios (per Shopify)
- Template Engine: EJS
- Styling: Tailwind CSS
- JavaScript: Vanilla JS con architettura modulare
- HTTP Client: Fetch API
- State Management: Custom state manager
- categories: Categorie prodotti con tipi Shopify
- category_fields: Campi dinamici per categorie
- products: Prodotti con metadati e handle
- variants: Varianti prodotto con prezzi e inventario
- options: Opzioni prodotto (colore, taglia, etc.)
- images: Immagini prodotto/variante
- attributes: Attributi dinamici (metafields)
- Category β CategoryFields (1:N)
- Category β Products (1:N)
- Product β Variants (1:N)
- Product β Options (1:N)
- Product β Images (1:N)
- Product β Attributes (1:N)
- Variant β Images (1:N)
- Variant β Attributes (1:N)
- Node.js 18+
- npm o yarn
- Installa dipendenze
cd backend
npm install
- Configura ambiente
cp .env.example .env
# Modifica .env con le tue configurazioni
- Avvia server
npm run dev
Il server sarΓ disponibile su http://localhost:3001
- Installa dipendenze
cd frontend
npm install
- Installa Tailwind CSS
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
- Avvia development server
npm start
Il frontend sarΓ disponibile su http://localhost:3000
# Server
PORT=3001
NODE_ENV=development
# Database
DATABASE_URL=sqlite:./database.sqlite
# Shopify API
SHOPIFY_SHOP_DOMAIN=your-shop.myshopify.com
SHOPIFY_ACCESS_TOKEN=your-access-token
SHOPIFY_API_VERSION=2025-01
# Upload
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=5242880
# Security
CORS_ORIGIN=http://localhost:3000
- Crea un'app privata nel tuo Shopify Admin
- Ottieni le credenziali API
- Configura i permessi necessari:
read_products
write_products
read_inventory
write_inventory
GET /api/categories
- Lista categoriePOST /api/categories
- Crea categoriaPOST /api/categories/:id/fields
- Aggiungi campo
GET /api/products
- Lista prodottiPOST /api/products
- Crea prodottoPOST /api/products/:id/variants
- Aggiungi variante
POST /api/images/upload
- Upload singola immaginePOST /api/images/upload-multiple
- Upload multiple
GET /api/shopify/preview/:id
- Anteprima exportPOST /api/shopify/export/:id
- Export su Shopify
Vedi API_DOCUMENTATION.md per la documentazione completa.
# Test health check
curl http://localhost:3001/health
# Lista categorie
curl http://localhost:3001/api/categories
# Crea prodotto
curl -X POST http://localhost:3001/api/products \
-H "Content-Type: application/json" \
-d '{"title":"Test Product","status":"active"}'
# Preview export Shopify
curl http://localhost:3001/api/shopify/preview/1
cd backend
npm run seed
Questo creerΓ dati di esempio:
- 2 categorie (Electronics, Clothing)
- 5 campi categoria
- 2 prodotti con varianti
- Attributi e opzioni di esempio
- Conversione automatica prodotti β formato Shopify
- Gestione metafields per attributi personalizzati
- Validazione pre-export
- Sync bidirezionale
- Supporto formati: JPEG, PNG, GIF, WebP
- Limite 5MB per file
- Upload multiplo (max 10 file)
- Associazione a prodotti/varianti
- Log strutturati con Winston
- Rotazione automatica log
- Monitoring rate limit Shopify
- Error tracking dettagliato
- Validazione input con Joi
- Sanitizzazione file upload
- CORS configurato
- Helmet per security headers
- Rate limiting (implementabile)
- Backend API completo
- Database e modelli
- Integrazione Shopify
- Upload immagini
- Documentazione API
- Frontend EJS UI
- Componenti gestione categorie
- Componenti gestione prodotti
- UI upload immagini
- Dashboard Shopify export
- Autenticazione utenti
- Bulk operations UI
- Analytics e reporting
- Multi-store support
- API versioning
- Fork del repository
- Crea feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add AmazingFeature'
) - Push branch (
git push origin feature/AmazingFeature
) - Apri Pull Request
Questo progetto Γ¨ sotto licenza MIT. Vedi LICENSE
per dettagli.
Per supporto e domande:
- Apri un issue su GitHub
- Consulta la documentazione API
- Verifica i log in
backend/logs/
- Linee di codice: 2000+
- API endpoints: 50+
- Modelli database: 7
- Test coverage: In sviluppo
- Tempo sviluppo: 1 giorno (backend completo)
Sviluppato con β€οΈ per la gestione efficiente dell'inventario Shopify