KARDAĞ ELEKTRİK · E-TİCARET KURULUM REHBERİ
Hedef adres: https://ikatech.com.tr/kardag2/
Altyapı: PHP 8.5 (8.1 ve üzeri çalışır) + MySQL 8 / MariaDB 10.4+ · Apache (cPanel / Plesk)
=====================================================================

PAKETİN İÇİNDEKİLER
  kardag2/              → sunucuya yüklenecek klasör (public_html/kardag2)
    index.html          → mağaza ve yönetim paneli arayüzü
    api/                → JSON API ve katalog (veritabanından üretilir)
    app/                → PHP uygulama kodu (dışarıya kapalı)
    storage/            → oturum, önbellek, günlük, fatura dosyaları (dışarıya kapalı)
    uploads/            → panelden yüklenen görseller (betik çalıştırma kapalı)
    install/            → kurulum sihirbazı + 3.312 ürünlük katalog verisi
    odeme.php           → kartla ödeme sayfası ve banka dönüşleri
    cron.php            → zamanlanmış görevler
    fatura.php, r.php   → fatura indirme, eski site adreslerinin yönlendirilmesi
  KURULUM.txt           → bu dosya
  nginx-ornek.conf      → yalnızca Nginx kullanan sunucular için

AKTARILAN VERİLER (Excel + XML)
  • 3.297 ürün + 15 varyant (renk / Kelvin) = 3.312 ürün kaydı, 2.403'ü yayında
  • 134 kategori, 66 marka
  • Ürün açıklamaları (HTML, güvenli hale getirilmiş), kısa açıklamalar, SEO başlık/açıklamaları,
    barkod, desi, KDV, alış fiyatı, liste ve indirimli fiyat, para birimi, stok, durum
  • Ürün görselleri: 3.308 ürün, platincdn.com/4095/pictures/ adresinden (Excel'deki dosya adlarıyla)
  • Eski adresler: …-pmu123 biçimindeki 3.297 eski ürün adresi yeni sayfaya 301 ile yönlenir

---------------------------------------------------------------------
1) VERİTABANI OLUŞTURUN (cPanel › MySQL Veritabanları)
---------------------------------------------------------------------
  • Yeni veritabanı: örn. ikatech_kardag
  • Yeni kullanıcı ve güçlü şifre; kullanıcıyı veritabanına "TÜM AYRICALIKLAR" ile ekleyin.
  • Karakter seti otomatik utf8mb4 olarak kurulur.

---------------------------------------------------------------------
2) DOSYALARI YÜKLEYİN
---------------------------------------------------------------------
  • kardag2 klasörünü public_html içine yükleyin (Dosya Yöneticisi › Yükle › zip'i çıkarın).
  • Gizli dosyaların (.htaccess) da yüklendiğinden emin olun.
  • cPanel › "PHP Sürümü Seç" ekranında PHP 8.5 seçin ve şu eklentileri açın:
      pdo_mysql, curl, mbstring, openssl, sodium, dom, simplexml, zlib, soap
    (soap: Yurtiçi ve Aras kargo için gereklidir.)
  • app/, storage/ ve uploads/ klasörleri yazılabilir olmalıdır (genellikle 755 yeterlidir).

---------------------------------------------------------------------
3) KURULUM SİHİRBAZI
---------------------------------------------------------------------
  • Tarayıcıda açın: https://ikatech.com.tr/kardag2/install/
  • Gereksinim tablosunun hepsi yeşil olmalı.
  • Veritabanı bilgilerini, site adresini (https://ikatech.com.tr/kardag2/) ve ilk yönetici
    hesabını (ad, e-posta, en az 10 karakterli şifre) girip "Kurulumu başlat"a basın.
  • Sihirbaz tabloları oluşturur, kataloğu aktarır, app/config.php dosyasını yazar ve kendini kilitler.
  • KURULUMDAN SONRA install/ KLASÖRÜNÜ SİLİN.

---------------------------------------------------------------------
4) ZAMANLANMIŞ GÖREV (CRON) — ZORUNLU
---------------------------------------------------------------------
  cPanel › Cron İşleri › 5 dakikada bir:
     php /home/KULLANICI/public_html/kardag2/cron.php >/dev/null 2>&1
  (Kurulum ekranı sunucunuza göre tam satırı ve URL ile çalıştırma adresini gösterir.)
  Cron şunları yapar: bekleyen e-posta/SMS gönderimi, TCMB kur güncellemesi (USD/EUR döviz satış),
  ödemesi tamamlanmayan kart siparişlerini süre dolunca iptal edip stok iadesi, kargo durum takibi
  (teslim edildiğinde müşteriye bildirim), "stoğa girince haber ver" bildirimleri, kayıt temizliği.

---------------------------------------------------------------------
5) ENTEGRASYONLAR — Yönetim paneli › Sistem › Entegrasyonlar
---------------------------------------------------------------------
  Her bölümde bilgileri girip "Kaydet", ardından "Test" düğmesiyle doğrulayın.
  Şifre ve anahtarlar veritabanında şifreli saklanır, panelde bir daha gösterilmez.

  E-POSTA (SMTP)
    Sunucu, port (587 STARTTLS veya 465 SSL), kullanıcı, şifre, gönderen adresi.
    Yandex: smtp.yandex.com.tr · 465 SSL · uygulama şifresi gerekir.
    Sipariş ve teklif bildirimlerinin gideceği adresleri de bu bölümde girin.

  SMS (SMS Kutusu · smskutusu.com)
    SMS Kutusu API'sini XML dokümanıyla veriyor; doküman kamuya açık olmadığı için hazır şablon
    eklenemedi. Dokümandaki bilgileri şu alanlara girin:
      • API adresi (URL)            → dokümandaki gönderim adresi
      • Yöntem / içerik türü         → genellikle POST · XML
      • İstek gövdesi (şablon)       → dokümandaki örnek XML; değişken yerlerine yer tutucu yazın:
          {user} {pass} {header} {phone} (05XXXXXXXXX) {phone90} (905XXXXXXXXX) {phone10} (5XXXXXXXXX)
          {message_xml} (XML için kaçışlı metin) {message}
      • Başarılı yanıtta geçen ifade → örn. dokümandaki başarı kodu
      • Kullanıcı adı, şifre, onaylı gönderici başlığı
    "Test SMS'i gönder" ile kendi numaranıza deneyin. Hata olursa sağlayıcının yanıtı ekranda görünür.
    SMS Kutusu destek: info@smskutusu.com · 0262 321 23 78

  ÖDEME — kart bilgisi hiçbir zaman sitenize gelmez
    "Kart ödemesinde kullanılacak sağlayıcı" ile tek bir sağlayıcı seçilir; diğerleri yedekte durur.
    • PayTR: Mağaza no, merchant_key, merchant_salt. PayTR mağaza paneli › Ayarlar › Bildirim URL:
        https://ikatech.com.tr/kardag2/odeme.php?bildirim=paytr
    • iyzico: API anahtarı ve güvenlik anahtarı (önce Sandbox ile deneyin). Dönüş adresi otomatik.
    • NestPay (Akbank, İş Bankası, Halkbank, Ziraat, TEB, Şekerbank, QNB Finansbank):
        3D Pay Hosting · mağaza no + store key. Bankaya bildirilecek dönüş adresi:
        https://ikatech.com.tr/kardag2/odeme.php?cb=nestpay
    • Garanti BBVA: 3D_OOS_PAY ortak ödeme sayfası · üye işyeri no, terminal no, PROVOOS şifresi,
        3D store key. Dönüş: https://ikatech.com.tr/kardag2/odeme.php?cb=garanti
    • VakıfBank: PayFlex ortak ödeme sayfası · üye işyeri no, terminal no, şifre.
        Dönüş: https://ikatech.com.tr/kardag2/odeme.php?cb=vakif
        NOT: VakıfBank ortak ödeme imza sabiti açık kaynak bir kütüphaneden alınmıştır; canlıya
        almadan önce bankanın test ortamında mutlaka 1 ₺'lik ödeme deneyin.
    • Yapı Kredi (POSNET): bankanın standart 3D akışı kart numarasının sitenin sunucusundan geçmesini
        gerektirdiği için eklenmedi (PCI-DSS yükü). Yapı Kredi kartları PayTR / iyzico / diğer bankaların
        ortak ödeme sayfalarından sorunsuz ödenir. Yapı Kredi'den "ortak ödeme sayfası" isterseniz eklenebilir.
    • Havale/EFT: banka bilgilerini girin; sipariş e-postasında müşteriye gönderilir.
    • Kapıda ödeme: açıp hizmet bedelini girin (Yurtiçi'de tahsilatlı gönderi kullanıcısı gerekir).
    Her sağlayıcıyı canlıya almadan önce test modunda bir sipariş verip ödeme ve iptal akışını deneyin.

  KARGO
    • Yurtiçi Kargo: web servis kullanıcı adı/şifre (tahsilatlı gönderi için ayrı kullanıcı).
        Sunucunuzun çıkış IP adresini Yurtiçi entegrasyon ekibine bildirin.
        Gönderi oluşturulunca paketin üzerine sipariş barkodu (Yazdır › Kargo Etiketi) yapıştırılır;
        takip numarası şube kabulünden sonra cron ile otomatik gelir.
    • Aras Kargo: sipariş entegrasyonu kullanıcı/şifre, gönderici adres no; takip için XML servis
        kullanıcı/şifre ve müşteri kodu. Koli barkodları: entegrasyon kodu + 01, 02…
    • MNG Kargo / DHL eCommerce: apizone.mngkargo.com.tr'de uygulama oluşturun, Identity, Standard
        Command, Standard Query, Barcode Command, Plus Command ve CBS Info ürünlerine abone olun.
        Barkod etiketi ZPL olarak indirilir (Zebra yazıcı).
    Sipariş detayı › "Kargo gönderisi" › firma, koli ve desi › "Gönderi oluştur": sistem gönderiyi firmaya iletir,
    müşteriye e-posta/SMS gider. "Durumu sorgula", "ZPL etiket" ve "İptal" düğmeleri aynı ekrandadır.
    API bilgisi girilmemiş firmalar için takip numarası elle girilebilir.

---------------------------------------------------------------------
6) GÜVENLİK
---------------------------------------------------------------------
  • install/ klasörünü silin.
  • Yönetim paneli › Sistem › Entegrasyonlar › "Authenticator ekle" ile iki adımlı girişi açın.
  • Personel eklemek: Sistem › Personel. Yeni personele şifre belirleme bağlantısı e-postayla gider.
  • app/config.php dosyası veritabanı şifresini ve şifreleme anahtarını içerir; paylaşmayın, silmeyin.
    (Anahtar kaybolursa kayıtlı entegrasyon şifreleri yeniden girilmelidir.)
  • Müşteri sunumu süresince arama motorları siteyi listelemez (.htaccess › X-Robots-Tag).
    Canlı alan adına geçince o satırı silin.

---------------------------------------------------------------------
7) YEDEKLEME VE GÜNCELLEME
---------------------------------------------------------------------
  • cPanel › Yedekleme ile veritabanını ve kardag2/uploads, kardag2/storage/invoices klasörlerini
    düzenli yedekleyin.
  • Güncelleme paketlerinde app/config.php, storage/ ve uploads/ dışındaki dosyalar değiştirilir.

---------------------------------------------------------------------
8) SORUN GİDERME
---------------------------------------------------------------------
  • "Beklenmeyen bir hata (Kod: xxxx)": storage/logs/error-YYYY-MM.log dosyasında aynı kodu arayın.
  • E-posta/SMS gitmiyor: Yönetim › İletişim › Gönderim kayıtları'nda hata mesajı görünür;
    storage/logs/notify-*.log ve sms-*.log dosyalarına bakın.
  • Ödeme sonrası sipariş "Ödeme bekleniyor"da kaldı: PayTR'de Bildirim URL'sini kontrol edin;
    bankalarda dönüş adresinin yukarıdaki gibi tanımlı olduğundan emin olun. storage/logs/payment-*.log
  • Kargo "SOAP eklentisi yok": hosting panelinden php-soap eklentisini açın.
  • Kurlar güncellenmiyor: cron çalışıyor mu (Entegrasyonlar › Sistem durumu) kontrol edin.
