Automated synchronization between Zoho CRM and Paraşüt
Bridge your Turkish accounting software with your CRM — effortlessly.
Features • Quick Start • Docker • Screenshots • API Setup • Architecture • Contributing
| Feature | Description |
|---|---|
| 📦 Product Sync | Automatically sync products between Paraşüt and Zoho CRM |
| 🧾 Invoice Sync | Two-way invoice matching and synchronization |
| 📋 Purchase Orders | Transfer purchase orders to Zoho CRM |
| 🔍 Duplicate Detection | Smart duplicate product detection and merging by product code |
| 🔄 Related Record Updates | When merging, all invoices/quotes/orders are automatically reassigned |
| 📊 Dashboard | Real-time sync status, API metrics, and queue management |
| 🔐 Security | CSRF protection, rate limiting, brute-force protection, Turnstile CAPTCHA |
| 🪝 Webhooks | Real-time triggers from both Paraşüt and Zoho |
| ⏰ Cron Jobs | Scheduled automatic synchronization with job queue |
| 📝 Structured Logging | All operations logged to database with automatic token masking |
git clone https://github.com/mrzcn/Zoho-Parasut-Sync.git
cd Zoho-Parasut-Sync
docker-compose up -dOpen http://localhost:8080 and follow the setup wizard.
git clone https://github.com/mrzcn/Zoho-Parasut-Sync.git
cd Zoho-Parasut-Sync
composer install- Create a MySQL database via your hosting panel
- Open
https://your-domain.com/Zoho-Parasut-Sync/install.php - Follow the 3-step wizard:
- Step 1: Database connection (host, name, user, password)
- Step 2: Table creation (15 tables auto-created)
- Step 3: Admin password
| Requirement | Version |
|---|---|
| PHP | 7.4+ |
| MySQL / MariaDB | 5.7+ / 10.4+ |
| PHP Extensions | PDO, cURL, JSON |
| Composer | 2.x |
The project includes full Docker support for instant setup:
# Start everything
docker-compose up -d
# View logs
docker-compose logs -f app
# Stop
docker-compose down
# Reset (remove database)
docker-compose down -vThe Docker setup includes:
- PHP 8.1 + Apache with mod_rewrite enabled
- MariaDB 10.6 with automatic schema initialization
- Volume persistence for database data
- Health checks for service readiness
- Go to Zoho API Console
- Create a Self Client
- Set scope:
ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.org.ALL - Paste the Grant Token into Settings page → Zoho section
- Click "Generate Refresh Token"
- Create an app at Paraşüt API
- Enter Client ID, Client Secret, and Company ID in Settings
- Enter your Paraşüt username and password
┌──────────────────────────────────────────────────────────┐
│ Admin Dashboard │
│ (Dashboard, Products, Invoices, Settings...) │
└───────────────────────┬──────────────────────────────────┘
│
┌────────▼────────┐
│ Controllers │
└────────┬────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌────────────┐ ┌──────────┐ ┌────────────┐
│ZohoService │ │SyncService│ │ParasutSvc │
└──────┬─────┘ └─────┬────┘ └──────┬─────┘
▼ ▼ ▼
┌──────────┐ ┌────────────┐ ┌──────────┐
│ Zoho CRM │ │ MySQL DB │ │ Paraşüt │
│ API │ │ │ │ API │
└──────────┘ └────────────┘ └──────────┘
├── classes/ # Service classes (API clients, business logic)
│ ├── ZohoService.php # Zoho CRM API client with OAuth2
│ ├── ParasutService.php# Paraşüt API client
│ ├── SyncService.php # Comparison and sync logic
│ └── Queue.php # Background job processing
├── controllers/ # MVC request handlers
├── config/helpers/ # Utility functions (security, logging, HTTP)
├── database/schema.sql # Complete DB schema (15 tables)
├── cron/ # Scheduled task runner
├── tests/ # PHPUnit test suite
├── docs/ # Architecture documentation
└── templates/ # Shared HTML templates
📖 Full architecture documentation: docs/architecture.md
# Install dev dependencies
composer install
# Run tests
composer test
# Run with coverage
composer test-coverage| Layer | Implementation |
|---|---|
| Authentication | password_hash / password_verify |
| CSRF Protection | Per-session token with hash_equals |
| Rate Limiting | File-based sliding window |
| Brute Force | IP-based lockout after 5 attempts |
| CAPTCHA | Cloudflare Turnstile (optional) |
| API Credentials | Stored in database, never in source |
| Log Masking | Tokens auto-masked in all log output |
| Session | HttpOnly, SameSite=Lax, Secure cookies |
Contributions are welcome! Please read our Contributing Guide before submitting a PR.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CHANGELOG.md for a detailed version history.
Zoho CRM ile Paraşüt muhasebe yazılımı arasında otomatik senkronizasyon.
| Özellik | Açıklama |
|---|---|
| 📦 Ürün Senkronizasyonu | Paraşüt ürünlerini Zoho CRM'e otomatik aktarım |
| 🧾 Fatura Senkronizasyonu | Satış faturalarını iki yönlü eşleştirme |
| 📋 Gider Faturası Aktarımı | Satın alma siparişlerini Zoho'ya aktarma |
| 🔍 Mükerrer Ürün Tespiti | Ürün koduna göre duplike algılama ve birleştirme |
| 🔄 İlişkili Kayıt Güncelleme | Birleştirmede fatura/teklif/sipariş referansları otomatik taşınır |
| 📊 Dashboard | Anlık senkronizasyon durumu, API metrikleri, kuyruk yönetimi |
| 🔐 Güvenlik | CSRF koruması, rate limiting, brute-force koruması, Turnstile |
| 🪝 Webhook Desteği | Paraşüt ve Zoho webhook'ları ile gerçek zamanlı tetikleme |
| ⏰ Cron Desteği | Zamanlanmış otomatik senkronizasyon ve iş kuyruğu |
| 📝 Detaylı Log | Tüm işlemler veritabanına loglanır, tokenlar otomatik maskelenir |
git clone https://github.com/mrzcn/Zoho-Parasut-Sync.git
cd Zoho-Parasut-Sync
docker-compose up -dTarayıcıda http://localhost:8080 adresini açın ve kurulum sihirbazını takip edin.
git clone https://github.com/mrzcn/Zoho-Parasut-Sync.git
cd Zoho-Parasut-Sync
composer install- Hosting panelinizden (cPanel vb.) yeni bir MySQL veritabanı ve kullanıcı oluşturun
- Tarayıcıda
https://siteadi.com/Zoho-Parasut-Sync/install.phpadresini açın - Kurulum sihirbazını takip edin:
- Adım 1: Veritabanı bağlantısı (host, ad, kullanıcı, şifre)
- Adım 2: Tablo oluşturma (15 tablo otomatik oluşturulur)
- Adım 3: Admin şifresi belirleme
| Gereksinim | Minimum |
|---|---|
| PHP | 7.4+ |
| MySQL / MariaDB | 5.7+ / 10.4+ |
| PHP Eklentileri | PDO, cURL, JSON |
| Composer | 2.x |
# Başlat
docker-compose up -d
# Logları izle
docker-compose logs -f app
# Durdur
docker-compose down
# Sıfırla (veritabanını da sil)
docker-compose down -v- Zoho API Console adresine gidin
- Self Client oluşturun
- Scope:
ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.org.ALL - Oluşturulan Grant Token'ı Ayarlar sayfasındaki ilgili alana yapıştırın
- "Refresh Token Oluştur" butonuna tıklayın
- Paraşüt API adresinden uygulama oluşturun
- Client ID, Client Secret ve Şirket ID bilgilerini Ayarlar'a girin
- Paraşüt kullanıcı adı ve şifrenizi girin
| Katman | Uygulama |
|---|---|
| Kimlik Doğrulama | password_hash / password_verify |
| CSRF Koruması | Oturum bazlı token, hash_equals doğrulama |
| Hız Sınırlama | Dosya tabanlı kayan pencere |
| Kaba Kuvvet | 5 denemeden sonra IP bazlı kilitleme |
| CAPTCHA | Cloudflare Turnstile (isteğe bağlı) |
| API Kimlik Bilgileri | Veritabanında saklanır, kaynak kodda asla yer almaz |
| Log Maskeleme | Tokenlar tüm log çıktısında otomatik maskelenir |
| Oturum | HttpOnly, SameSite=Lax, Secure çerezler |
composer install
composer testKatkılarınızı bekliyoruz! PR göndermeden önce Katkı Kılavuzu'nu okuyun.
MIT License — Copyright (c) 2026 Nolto
