💬

WhatsApp Business Bot

E-Ticaret Entegrasyonlu WhatsApp Otomasyon Sistemi

PHP 7.2+ | MariaDB / MySQL | WhatsApp Cloud API | Modüler Yapı

📋 Genel Bakış

Bu sistem, e-ticaret sitenize WhatsApp Business Cloud API üzerinden otomatik müşteri iletişimi sağlar. Müşterileriniz WhatsApp üzerinden sipariş sorgulama, kargo takibi, ürün bilgisi alma, kampanya görüntüleme ve daha fazlasını yapabilir.

🧩 10 Modül
Sipariş, Kargo, Ödeme, Ürün, AI, Sözleşme, İade, Kampanya, SSS, Çalışma Saatleri
📢 8 Bildirim
Sipariş, Kargo, Üyelik, Yorum, Destek, Ödeme, İade bildirimleri
🔒 Güvenlik
CSRF koruma, Rate limit, Session yönetimi, IP filtreleme

1. Kurulum

📌 Gereksinimler
  • PHP 7.2 veya üstü
  • MariaDB 10.3+ / MySQL 5.7+
  • cURL PHP eklentisi
  • PDO MySQL / MariaDB eklentisi
  • SSL sertifikası (HTTPS zorunlu - Meta gereksinimleri)
  • Meta Business hesabı ve WhatsApp Business API erişimi
📂 Adım 1: Dosyaları Yükleyin

whatsapp-bot/ klasörünü sitenizin ana dizinine yükleyin.

site-dizini/
├── whatsapp-bot/
│   ├── admin/          (Admin panel)
│   ├── cron/           (Zamanlanmış görevler)
│   ├── docs/           (Bu dokümantasyon)
│   ├── install/        (Kurulum sihirbazı)
│   ├── lang/           (Dil dosyaları)
│   ├── logs/           (Log dosyaları)
│   ├── modules/        (Bot modülleri)
│   ├── webhook/        (Webhook endpoint)
│   ├── bildirim.php    (Bildirim motoru)
│   ├── config.php      (Yapılandırma)
│   ├── helpers.php     (Yardımcı fonksiyonlar)
│   └── test.php        (Test aracı)
├── boss/               (Mevcut admin panel)
├── default/            (Mevcut site)
└── func/               (Mevcut fonksiyonlar)
🔧 Adım 2: Kurulum Sihirbazını Çalıştırın

Tarayıcınızda aşağıdaki adresi açın:

https://siteniz.com/whatsapp-bot/install/

Kurulum sihirbazı 3 adımdan oluşur:

  1. Veritabanı Kontrolü: Mevcut veritabanı bağlantısı test edilir
  2. Tablo Oluşturma: Gerekli tablolar otomatik oluşturulur
  3. API Yapılandırma: WhatsApp API bilgilerinizi girin
⚙️ Adım 3: config.php Ayarları

Kurulum sonrası config.php dosyasını kontrol edin:

// Veritabanı
define('DB_HOST', 'localhost');
define('DB_NAME', 'veritabani_adi');
define('DB_USER', 'kullanici');
define('DB_PASS', 'sifre');

// WhatsApp API
define('WA_ACCESS_TOKEN', 'Meta_Access_Token');
define('WA_PHONE_NUMBER_ID', 'Telefon_Numarasi_ID');
define('WA_VERIFY_TOKEN', 'Dogrulama_Tokeni');

// Site
define('SITE_URL', 'https://siteniz.com');
define('SITE_NAME', 'Mağaza Adı');

2. Meta Developer Ayarları

📱 Meta Business Hesabı Oluşturma
  1. developers.facebook.com adresine gidin
  2. "My Apps" > "Create App" > "Business" seçin
  3. Uygulama oluşturun ve "WhatsApp" ürününü ekleyin
  4. WhatsApp > Getting Started sayfasından bilgileri alın:
    • Temporary Access Token (Geçici token, 24 saat geçerli)
    • Phone Number ID
    • WhatsApp Business Account ID
Önemli: Geçici token 24 saatte bir yenilenir. Kalıcı token için System User oluşturun.
🔗 Webhook Yapılandırması
  1. Meta Developer > WhatsApp > Configuration sayfasına gidin
  2. "Edit" butonuna tıklayın
  3. Callback URL: https://siteniz.com/whatsapp-bot/webhook/
  4. Verify Token: config.php dosyasındaki WA_VERIFY_TOKEN değerini girin
  5. "Verify and Save" tıklayın
  6. Webhook Fields: messages kutusunu işaretleyin
Localhost test için ngrok kullanabilirsiniz: ngrok http 80
🔑 Kalıcı Access Token Oluşturma
  1. Meta Business Settings > System Users sayfasına gidin
  2. "Add" ile yeni System User oluşturun (Admin rolü)
  3. "Generate New Token" tıklayın
  4. WhatsApp uygulamanızı seçin
  5. İzinler: whatsapp_business_messaging, whatsapp_business_management
  6. Oluşturulan tokeni config.php dosyasına yapıştırın

3. Modüller

Tüm modüller admin panelden tek tıkla açılıp kapatılabilir.

📦 Sipariş Modülü

Müşteri sipariş numarasıyla sorgulama yapar. Sipariş durumu, ürün detayları ve tutar bilgisi gösterilir.

🚚 Kargo Modülü

Sipariş numarasıyla kargo takip bilgisi sorgulama. Kargo firması ve takip linki otomatik gönderilir.

💳 Ödeme Modülü

Havale/EFT, kapıda ödeme ve kredi kartı bilgilerini gösterir. Admin panelden düzenlenebilir.

🛍️ Ürün Modülü

Ürün adı veya koduyla arama. Fiyat, stok durumu ve ürün linki gösterilir.

🤖 AI Modülü

Eğitim verileriyle veya OpenAI API ile akıllı yanıt. Admin panelden soru-cevap eklenir.

📜 Sözleşme Modülü

İlk kez yazan kullanıcıya kullanım koşullarını dayatır. Kabul etmeden sohbet başlayamaz.

↩️ İade Modülü

İade/değişim talebi oluşturma. 14 gün kontrolü ve sipariş doğrulama yapar.

🏷️ Kampanya Modülü

Aktif kampanyaları listeler. Kampanya linkine yönlendirir.

❓ SSS Modülü

Sıkça sorulan soruları listeler. Numara ile detay gösterir.

🕐 Çalışma Saatleri

Mağaza çalışma saatlerini gösterir. Mesai dışı otomatik yanıt.

4. Bildirim Sistemi

📢 Otomatik Bildirimler

Sitede gerçekleşen olaylarda müşteriye otomatik WhatsApp mesajı gönderilir. Her bildirim admin panelden açılıp kapatılabilir.

OlayAçıklamaTetikleme
🛒 Yeni SiparişSipariş onay mesajıSipariş tamamlandığında
📌 Durum DeğişikliğiSipariş durumu güncellemeAdmin sipariş düzenlerken
🚚 KargoKargo takip bilgisiKargo bilgisi girildiğinde
🎉 Üye KayıtHoş geldin mesajıYeni üye kaydolunca
⭐ Yorum OnayYorum onay bildirimiAdmin yorumu onayladığında
💬 Destek CevapDestek yanıt bildirimiDestek talebine cevap verilince
✅ Ödeme OnayÖdeme onay mesajıÖdeme onaylandığında
↩️ İade Durumİade güncellemeİade durumu değiştiğinde
Entegrasyon Kodu

Mevcut site dosyalarına eklenen 2-3 satırlık kodlar:

// Örnek: Sipariş tamamlandığında (alisverisitamamla.php)
@include_once($_SERVER['DOCUMENT_ROOT'].'/whatsapp-bot/bildirim.php');
@waBildirim('siparis_yeni', array(
    'telefon' => $telefon,
    'siparisno' => $siparisno,
    'adsoyad' => $adsoyad,
    'tutar' => $toplam,
    'odemetipi' => $odemetipi
));
Güvenli: @ hata bastırma operatörü kullanılır. Bot dosyaları silinse bile site çalışmaya devam eder.

5. Admin Panel

🔐 Giriş

Bot admin paneline giriş, ana site admin panelindeki (boss/) kullanıcı bilgileriyle yapılır. Ayrı bir şifre veya kullanıcı adı tanımlamanıza gerek yoktur.

  • Ana site admin panelinden (boss/) giriş yapmışsanız, bot admin paneline otomatik yönlendirilirsiniz.
  • Doğrudan bot admin paneline girmek isterseniz, ana site admin kullanıcı adı ve şifrenizi kullanın.
📊 Panel Sayfaları
DashboardGenel istatistikler ve son mesajlar
Bot ModuTest/Canlı mod geçişi
ModüllerModül açma/kapatma
BildirimlerOlay bazlı bildirim ayarları
ŞablonlarMesaj şablonu yönetimi
AI EğitimSoru-cevap eğitim verileri
Genel AyarlarBot ve API ayarları
Ödeme AyarlarıÖdeme yöntemi bilgileri
Mesaj LoglarıTüm mesaj geçmişi ve filtreleme
🧪 Test Modu

Bot Modu sayfasından "Test Modu"na alın. Bu modda:

  • WhatsApp API'ye gerçek istek gitmez
  • Mesajlar sadece veritabanına loglanır
  • Test aracı (/whatsapp-bot/test.php) ile webhook simüle edebilirsiniz
  • Tüm işleyiş gerçek ortamla aynıdır, sadece mesaj gönderimi atlanır

6. Sorun Giderme

  • config.php dosyasındaki WA_VERIFY_TOKEN değerinin Meta Developer Console'daki ile aynı olduğunu kontrol edin
  • Webhook URL'nin sonunda / olduğunu kontrol edin: https://siteniz.com/whatsapp-bot/webhook/
  • SSL sertifikanızın geçerli olduğunu kontrol edin
  • Sunucunuzun dışarıdan erişilebilir olduğunu kontrol edin

  • Bot modunun "Canlı" olduğunu kontrol edin (Admin > Bot Modu)
  • Bot'un aktif olduğunu kontrol edin (Admin > Ayarlar > Bot Aktif)
  • Access Token'ın geçerli olduğunu kontrol edin (24 saatte bir yenilenir)
  • Phone Number ID'nin doğru olduğunu kontrol edin
  • whatsapp-bot/logs/error.log dosyasını kontrol edin
  • Admin > Mesaj Logları sayfasından API hatalarını inceleyin

  • config.php dosyasındaki veritabanı bilgilerini kontrol edin
  • MariaDB / MySQL servisinin çalıştığını kontrol edin
  • Veritabanı kullanıcısının gerekli yetkilere sahip olduğunu kontrol edin
  • Kurulum sihirbazını tekrar çalıştırın: /whatsapp-bot/install/

  • Ana site admin panelindeki (boss/) kullanıcı adı ve şifrenizi kullanın
  • Ana site admin panelinden giriş yaparak otomatik yönlendirmeyi deneyin
  • Veritabanındaki admin tablosunu kontrol edin
  • Tarayıcı çerezlerini temizleyin

  • Admin > Bildirimler sayfasından ilgili bildirimin açık olduğunu kontrol edin
  • "Tüm Bildirimleri Aç/Kapat" anahtarının açık olduğunu kontrol edin
  • Bot modunun "Canlı" olduğunu kontrol edin (Test modunda bildirim gitmez)
  • Müşterinin telefon numarasının doğru formatta olduğunu kontrol edin
  • Site dosyalarına eklenen @include_once satırlarının doğru yolu gösterdiğini kontrol edin

  • PHP hata loglarını kontrol edin: whatsapp-bot/logs/error.log
  • PHP versiyonunun 7.2+ olduğunu kontrol edin
  • Gerekli PHP eklentilerinin yüklü olduğunu kontrol edin (curl, pdo_mysql / pdo_mariadb)
  • .htaccess dosyasının doğru olduğunu kontrol edin
  • Dosya izinlerinin doğru olduğunu kontrol edin (logs/ klasörü yazılabilir olmalı)

7. Sıkça Sorulan Sorular

Öncelikle bot modunun "Canlı" olduğundan emin olun. Test modunda mesajlar sadece veritabanına loglanır, WhatsApp API'ye gönderilmez. Ayrıca Access Token'ın süresi dolmuş olabilir; geçici tokenlar 24 saatte bir yenilenir. Kalıcı token için System User oluşturmanız önerilir.

Hayır. Tüm entegrasyon kodları @ hata bastırma operatörü ile eklenmiştir. Bot dosyaları silinse veya taşınsa bile siteniz sorunsuz çalışmaya devam eder. Sadece WhatsApp bildirimleri gönderilmez.

Evet. ngrok kullanarak localhost'unuzu dışarıya açabilirsiniz. ngrok http 80 komutuyla bir HTTPS tüneli oluşturun ve oluşan URL'yi Meta Developer Console'da webhook adresi olarak girin. Ayrıca test.php dosyasıyla webhook isteklerini simüle edebilirsiniz.

AI modülü iki katmanlı çalışır. Önce admin panelden girilen eğitim verilerinde (soru-cevap çiftleri) anahtar kelime eşleşmesi arar. Eşleşme bulunamazsa ve OpenAI API anahtarı tanımlıysa, soruyu ChatGPT'ye yönlendirir. OpenAI API anahtarı yoksa varsayılan bir yanıt döner.

Şu anki sürümde tek bir WhatsApp Business telefon numarası desteklenmektedir. Her numara için ayrı bir Meta uygulaması ve Phone Number ID gerekir. Birden fazla numara kullanmak isterseniz, her biri için ayrı bir bot kurulumu yapmanız gerekir.

Meta, her ay belirli sayıda ücretsiz konuşma hakkı tanır (genellikle 1000 servis konuşması). Bu limiti aştığınızda konuşma başına ücretlendirme yapılır. Güncel fiyatlandırma için Meta'nın fiyatlandırma sayfasını kontrol edin.

8. Cron Görevleri

⏰ Zamanlanmış Görevler

Aşağıdaki cron görevlerini sunucunuza ekleyerek otomatik işlemleri aktif edebilirsiniz:

GörevDosyaAçıklamaÖnerilen Sıklık
📦 Kargo Bildirimi cron/kargo_bildirim.php Yeni kargo bilgisi girilen siparişler için otomatik bildirim gönderir Her 15 dakika
🧹 Log Temizleme cron/log_temizle.php 30 günden eski mesaj loglarını temizler Günde 1 kez
🏷️ Kampanya Bildirimi cron/kampanya_bildirim.php Yeni kampanyaları abonelere bildirir Günde 1 kez
Crontab Ayarları
# Kargo bildirimi - her 15 dakikada bir
*/15 * * * * php /var/www/html/whatsapp-bot/cron/kargo_bildirim.php

# Log temizleme - her gün gece 03:00'te
0 3 * * * php /var/www/html/whatsapp-bot/cron/log_temizle.php

# Kampanya bildirimi - her gün sabah 10:00'da
0 10 * * * php /var/www/html/whatsapp-bot/cron/kampanya_bildirim.php
WAMP Kullanıcıları: Windows'ta cron yerine "Görev Zamanlayıcı" (Task Scheduler) kullanabilirsiniz. Veya WAMP'ın PHP yolunu kullanarak: C:\wamp64\bin\php\php7.2\php.exe C:\wamp64\www\whatsapp-bot\cron\kargo_bildirim.php

9. Dosya Yapısı

whatsapp-bot/
├── admin/                    # Admin Panel
│   ├── index.php             # Giriş sayfası
│   ├── auth.php              # Oturum doğrulama
│   ├── header.php            # Üst menü ve tema
│   ├── footer.php            # Alt kısım ve scriptler
│   ├── panel.php             # Dashboard (ana sayfa)
│   ├── bot_modu.php          # Test/Canlı mod geçişi
│   ├── moduller.php          # Modül yönetimi
│   ├── bildirimler.php       # Bildirim ayarları
│   ├── sablonlar.php         # Mesaj şablonları
│   ├── ai_training.php       # AI eğitim verileri
│   ├── ayarlar.php           # Genel ve API ayarları
│   ├── odeme_ayarlari.php    # Ödeme yöntemi bilgileri
│   └── loglar.php            # Mesaj logları
│
├── cron/                     # Zamanlanmış Görevler
│   ├── kargo_bildirim.php    # Kargo bildirim gönderici
│   ├── log_temizle.php       # Eski log temizleyici
│   └── kampanya_bildirim.php # Kampanya bildirim gönderici
│
├── docs/                     # Dokümantasyon
│   └── index.html            # Bu sayfa
│
├── install/                  # Kurulum Sihirbazı
│   ├── index.php             # 3 adımlı kurulum
│   └── schema.sql            # Veritabanı şeması
│
├── lang/                     # Dil Dosyaları
│   ├── tr.php                # Türkçe
│   └── en.php                # İngilizce
│
├── logs/                     # Log Dosyaları
│   ├── webhook.log           # Webhook logları
│   └── error.log             # Hata logları
│
├── modules/                  # Bot Modülleri
│   ├── siparis.php           # Sipariş sorgulama
│   ├── kargo.php             # Kargo takibi
│   ├── odeme.php             # Ödeme bilgileri
│   ├── urun.php              # Ürün arama
│   ├── ai.php                # Yapay zekâ yanıt
│   ├── sozlesme.php          # Kullanım sözleşmesi
│   ├── iade.php              # İade/değişim talebi
│   ├── kampanya.php          # Kampanya listeleme
│   ├── sss.php               # Sıkça sorulan sorular
│   └── calisma_saatleri.php  # Çalışma saatleri
│
├── webhook/                  # Webhook Endpoint
│   └── index.php             # Meta webhook işleyici
│
├── bildirim.php              # Bildirim motoru
├── config.php                # Ana yapılandırma
├── helpers.php               # Yardımcı fonksiyonlar
├── test.php                  # Yerel test aracı
└── .htaccess                 # Güvenlik kuralları

💬 WhatsApp Business Bot - Kurulum ve Kullanım Kılavuzu

PHP 7.2+ | MariaDB / MySQL | WhatsApp Cloud API | Modüler Yapı