
OpenCart Kurulumu ve Yönetimi: Türkiye İçin E-Ticaret Rehberi
OpenCart 4.x kurulumu, Türkçe dil paketi, iyzico/PayTR ödeme entegrasyonu, kargo modülü ve performans optimizasyonu.
OpenCart Kurulumu ve Yönetimi: Türkiye İçin E-Ticaret Rehberi
OpenCart, açık kaynaklı, esnek ve Türkiye'de popüler bir e-ticaret platformudur. Bu rehberde OpenCart 4.x kurulumundan Türkiye özelleştirmelerine kadar her şeyi ele alıyoruz.
OpenCart Neden Tercih Edilir?
Avantajları:
✓ Ücretsiz ve açık kaynak
✓ 13,000+ eklenti/tema
✓ Çoklu dil ve para birimi
✓ Türkçe dil paketi mevcut
✓ Hafif ve hızlı
✓ WooCommerce'e kıyasla daha az kaynak
Dezavantajları:
✗ WooCommerce kadar büyük topluluk yok
✗ SEO özelleştirmesi sınırlı
✗ Güncelleme süreçleri bazen karmaşık
Kurulum (Ubuntu 22.04)
# LAMP/LEMP Stack
apt update && apt install -y nginx php8.1-fpm mariadb-server php8.1-curl php8.1-gd php8.1-mbstring php8.1-mysql php8.1-xml php8.1-zip php8.1-intl
# MariaDB veritabanı oluştur
mysql -u root -p << 'EOF'
CREATE DATABASE opencart CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ocuser'@'localhost' IDENTIFIED BY 'güvenli-parola';
GRANT ALL PRIVILEGES ON opencart.* TO 'ocuser'@'localhost';
FLUSH PRIVILEGES;
EOF
# OpenCart indir
wget https://github.com/opencart/opencart/releases/download/4.0.2.3/opencart-4.0.2.3.zip
unzip opencart-4.0.2.3.zip -d /var/www/
mv /var/www/upload /var/www/magazaniz
# İzinler
chown -R www-data:www-data /var/www/magazaniz
find /var/www/magazaniz -type d -exec chmod 755 {} ;
find /var/www/magazaniz -type f -exec chmod 644 {} ;
# /etc/nginx/sites-available/magazaniz.com
server {
listen 443 ssl http2;
server_name magazaniz.com www.magazaniz.com;
root /var/www/magazaniz;
index index.php;
ssl_certificate /etc/letsencrypt/live/magazaniz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magazaniz.com/privkey.pem;
location / {
try_files $uri $uri/ @opencart;
}
location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Admin klasörü gizle
location /admin {
auth_basic "Admin";
auth_basic_user_file /etc/nginx/.htpasswd;
}
# Hassas dosyaları engelle
location ~* .(htaccess|htpasswd|ini|log|sh|sql)$ {
deny all;
}
}
Türkçe Dil ve Para Birimi
# OpenCart Admin Panel → Uzantılar → Dil Yükleyici
# Türkçe dil paketini indir:
# opencart.com/index.php?route=marketplace/extension/info&extension_id=42
# Manuel yükleme:
# catalog/language/tr-tr/ klasörüne kopyala
# admin/language/tr-tr/ klasörüne kopyala
# Admin Panel → Sistem → Ayarlar → Mağaza
# Dil: Türkçe
# Para birimi: Türk Lirası (TRY - ₺)
# Ülke: Türkiye
# Bölge: İstanbul (veya şehriniz)
Modification Sistemi: OCMOD ve vQmod
OpenCart, çekirdek dosyaları doğrudan değiştirmek yerine modification katmanı sunar — güncellemelerde kayıp önler.
OCMOD (OpenCart 2+ default)
<!-- example.ocmod.xml -->
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Sayfa Başına Ürün Sayısı</name>
<code>perpage_50</code>
<version>1.0</version>
<author>Büyükweb</author>
<file path="catalog/controller/product/category.php">
<operation>
<search><![CDATA[
if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else {
$limit = (int)$this->config->get('config_limit_admin');
}
]]></search>
<add position="replace"><![CDATA[
$limit = isset($this->request->get['limit']) ? (int)$this->request->get['limit'] : 50;
]]></add>
</operation>
</file>
</modification>
Yükleme: Admin → Uzantılar → Modifications → Yükle. Sonra Modifications → Yenile zorunlu (cache rebuild).
Custom Modification — Direkt Düzenleme Yerine
3rd party eklenti güncellemeleri sırasında kendi değişiklikleriniz silinir eğer çekirdek dosyayı düzenlerseniz. OCMOD ile değişiklikler her zaman üstte uygulanır → güncelleme sonrası kaybolmaz.
vQmod (eski 1.5.x)
OpenCart 1.5.x ile gelen önceki sistem; 4.x'te extension API'si benzer iş yapar. Eski mağaza miras kodda hâlâ görülebilir.
Modifications Cache Yönetimi
# Modification cache klasörü
ls /var/www/magazaniz/storage/modification/
# Manuel temizlik (Admin'den de yapılabilir)
rm -rf /var/www/magazaniz/storage/modification/*
⚠️ Modification yüklendikten sonra Yenile'yi mutlaka tıklayın — yoksa değişiklik etkili olmaz.
iyzico Ödeme Entegrasyonu
// OpenCart iyzico ödeme modülü (özet)
// catalog/controller/extension/payment/iyzico.php
class ControllerExtensionPaymentIyzico extends Controller {
public function index() {
// İyzipay PHP kütüphanesi
require_once(DIR_SYSTEM . 'library/iyzipay/IyzipayBootstrap.php');
IyzipayBootstrap::init();
$options = new IyzipayOptions();
$options->setApiKey($this->config->get('payment_iyzico_api_key'));
$options->setSecretKey($this->config->get('payment_iyzico_secret_key'));
$options->setBaseUrl('https://api.iyzipay.com');
// Form yapılandır
$request = new IyzipayRequestCreateCheckoutFormInitializeRequest();
$request->setLocale(IyzipayModelLocale::TR);
$request->setConversationId($this->session->data['order_id']);
$request->setPrice($this->currency->format($order['total'], 'TRY', 1, false));
$request->setPaidPrice($request->getPrice());
$request->setCurrency(IyzipayModelCurrency::TL);
$request->setCallbackUrl($this->url->link('extension/payment/iyzico/callback', '', true));
$checkoutFormInitialize = IyzipayModelCheckoutFormInitialize::create($request, $options);
// iyzico ödeme formunu göster
$data['checkout_form_content'] = $checkoutFormInitialize->getCheckoutFormContent();
return $this->load->view('extension/payment/iyzico_form', $data);
}
}
Kargo Modülleri
Türkiye Kargo Modülleri (opencart.com marketplace):
- MNG Kargo OpenCart Modülü
- Yurtiçi Kargo Entegrasyonu
- PTT Kargo Modülü
- Aras Kargo Modülü
Manuel kargo kurulumu:
Admin → Uzantılar → Uzantılar → Kargo → Düz Oranlı Kargo
Desi tabanlı kargo fiyatlandırma:
Admin → Uzantılar → Kargo → Ağırlığa Göre Kargo
0kg - 1kg: 35₺
1kg - 3kg: 45₺
3kg - 5kg: 55₺
OpenCart Performans Optimizasyonu
// System → Settings → Store → Server
// Önbellek:
Önbellekleme: Açık
// Sıkıştırma:
Çıktı Sıkıştırma: 6 (Gzip)
// SEO URL:
SEO URL: Açık
// php.ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
// OpenCart önbellek temizleme
rm -rf /var/www/magazaniz/system/storage/cache/*
rm -rf /var/www/magazaniz/system/storage/modification/*
Multi-Layer Cache Stack — Performans Maksimum
OpenCart varsayılan dosya cache'i kullanır; üretim için çok katmanlı cache gerekli.
Katman 1: OPcache (PHP Bytecode)
; /etc/php/8.1/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
PHP'in her istekte parse etme yükünü ortadan kaldırır — TTFB %30-50 düşer.
Katman 2: Object Cache (Redis)
apt install redis-server php8.1-redis
systemctl enable --now redis-server
// config.php — OpenCart'a Redis cache söyle
define('CACHE_DRIVER', 'redis');
define('CACHE_HOSTNAME', '127.0.0.1');
define('CACHE_PORT', 6379);
define('CACHE_PREFIX', 'oc4_');
Kategori listesi, ürün özellikleri, modification cache'i hep Redis'ten okunur — DB hit %70 azalır.
Katman 3: Edge Cache (LiteSpeed / Cloudflare)
Büyükweb LiteSpeed paketleri LiteSpeed Cache plugin desteğiyle full-page cache yapar. Ürün listesi, anasayfa, kategori — login'siz ziyaretçilere disk'ten 0.1 ms'de döner.
# .htaccess - LiteSpeed cache directives
<IfModule LiteSpeed>
CacheLookup on
RewriteRule .* - [E=cache-control:max-age=300]
</IfModule>
Cache Yenileme Stratejisi
| Olay | Hangi cache temizlenmeli? |
|---|---|
| Ürün stoğu/fiyat değişti | Object cache (Redis) + LiteSpeed |
| Yeni kategori eklendi | Tüm cache |
| Modification yüklendi | Modification cache + Object cache |
| Tema güncellendi | Tüm cache + tarayıcı cache (versioning) |
redis-cli FLUSHALL
rm -rf storage/cache/*
Multi-Store Setup (Tek Kurulum, Birden Fazla Mağaza)
OpenCart multi-store özelliği ile aynı kurulumda farklı domainlerde ayrı mağaza çalıştırılabilir — paylaşımlı stok + paylaşımlı kullanıcı + farklı tema/dil/para birimi.
Adım Adım Kurulum
1. Admin → Sistem → Ayarlar → Yeni Mağaza Ekle
2. Mağaza URL: https://ikincimagaza.com/
3. Tema: Farklı tema seç (opsiyonel)
4. Dil: Farklı dil ayarı
5. Para birimi: USD/TRY karışık satış varsa
Nginx Multi-Domain Config
server {
listen 443 ssl http2;
server_name magazaniz.com www.magazaniz.com ikincimagaza.com www.ikincimagaza.com;
root /var/www/magazaniz;
ssl_certificate /etc/letsencrypt/live/magazaniz.com/fullchain.pem;
# Multi-domain SSL: SAN sertifikası tüm domainleri içerir
# certbot -d magazaniz.com -d www.magazaniz.com -d ikincimagaza.com -d www.ikincimagaza.com
# OpenCart route handling — domain'e göre store seçilir
location / {
try_files $uri $uri/ /index.php?_route_=$uri&$args;
}
}
OpenCart server_name'i HTTP_HOST'tan okuyup doğru mağaza ayarlarını yükler.
Multi-Store Avantajları
- Stok yönetimi tek panelden — tek admin, çoklu vitrin
- Farklı dil/para birimi — Türkiye + Almanya pazarı
- Farklı kargo + ödeme yöntemleri — bölge bazlı
- Sub-domain veya farklı domain — SEO açısından bağımsız
⚠️ Multi-store performans yükü tek mağazaya göre fazla — VDS minimum 4GB RAM + 2 vCPU öneriyoruz; E-Ticaret VDS bu yapı için tasarlandı.
KDV ve Vergi Yapılandırması (Türkiye Spesifik)
Vergi Sınıfları
Admin → Sistem → Yerel Veriler → Vergiler → Vergi Sınıfları
- KDV %20 (varsayılan)
- KDV %10 (gıda, kozmetik, tekstil)
- KDV %1 (temel gıda, kitap, ilaç)
- KDV %0 (ihracat, eğitim, sağlık)
Ürün Bazlı KDV Atama
Admin → Katalog → Ürünler → [ürün] → Bilgi
"Vergi Sınıfı": KDV %10 / %20 / %1 seç
KDV Dahil/Hariç Gösterim
Admin → Sistem → Ayarlar → Seçenekler
"Vergiyi Görüntüle": Açık
"Vergi Dahil Görüntüle": Açık (B2C için)
B2B mağazalarda KDV hariç + toplam göstermek doğru; checkout'ta KDV otomatik eklenir.
E-Fatura ve E-Arşiv Entegrasyonu
OpenCart doğal e-fatura çıkarmaz — ek modül gerekir:
- MikroErp / LogoYazılım entegrasyon (kurumsal)
- EDM E-Fatura modülü (orta-küçük)
- Foriba / Lemon Müşteri (cloud)
Sipariş tamamlandığında otomatik:
↳ Fatura GİB'e iletilir
↳ Müşteriye PDF mail
↳ XML arşivlenir
Büyükweb cPanel paketleri Foriba ve EDM modüllerinin kurulumuna teknik destek verir.
OpenCart SEO Ayarları
Admin Panel → Sistem → Ayarlar → Sunucu:
✓ SEO URL Kullan: Açık
Admin Panel → Her ürün/kategori için:
- SEO Anahtar Kelimesi: samsung-galaxy-s24
- Meta Başlık: Samsung Galaxy S24 128GB
- Meta Açıklama: 50MP kamera, 4000mAh batarya...
robots.txt:
User-agent: *
Disallow: /admin/
Disallow: /catalog/view/theme/.*/stylesheet/
Disallow: /index.php?route=account/
Sitemap: https://magazaniz.com/index.php?route=feed/google_sitemap
Yaygın OpenCart Sorunları
| Sorun | Sebep | Çözüm |
|---|---|---|
| 500 Internal Server Error | Permissions (664/777 yanlış) veya error_log PHP hata |
storage/logs/error.log kontrol; chmod -R 755 dizin, 644 dosya |
| "There was an error..." | DB bağlantı veya config | config.php kontrol; DB user/parola doğru mu? mysql -u ocuser -p test |
| Türkçe karakter bozuk | UTF-8 collation yanlış | ALTER DATABASE opencart CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci |
| Modification etkili değil | Yenile yapılmadı | Admin → Modifications → Yenile butonu |
| Sepet sıfırlanıyor | Session driver problemi veya cookie kısıtlaması | Session driver'ı db yap; SameSite cookie kontrol |
| Resim yüklenmiyor | Permissions veya GD/Imagick eksik | apt install php8.1-gd php8.1-imagick + chmod 755 image/ |
| Admin panel çok yavaş | Modification cache şişmiş | storage/modification/ temizle |
| Ödeme callback fail | SSL veya redirect URL yanlış | config.php HTTPS_SERVER doğru mu? Test ortamından üretime geçişte URL'leri güncelle |
| Search çalışmıyor | DB index yok | ALTER TABLE oc_product ADD FULLTEXT(name, model); |
Notice: Undefined index |
Eski PHP 5.x kod, PHP 8'de strict | OpenCart sürümünü 4.x'e güncelle veya error_reporting adjust |
Image Optimizasyon Pipeline
# Admin → Sistem → Bakım → Resmin İade
# Bu OpenCart resim cache'ini sıfırlar
# Toplu image optimize (jpegoptim + pngquant)
apt install jpegoptim pngquant
find /var/www/magazaniz/image -name "*.jpg" -exec jpegoptim --strip-all --max=85 {} \;
find /var/www/magazaniz/image -name "*.png" -exec pngquant --quality=65-80 --ext=.png --force {} \;
Türkiye'deki yavaş 4G bağlantılar için ürün resimlerinde WebP/AVIF dönüşümü %30-50 boyut tasarrufu sağlar.
Sonuç
OpenCart, özellikle orta ölçekli Türk e-ticaret işletmeleri için güçlü bir platformdur. Türkçe dil desteği, iyzico/PayTR entegrasyonu ve Türk kargo firması modülleriyle hızlı kurulum yapılabilir. Büyükweb hosting cPanel planlarında OpenCart Fantastico ile tek tıkla kurulumu desteklenmektedir.
Ilgili Büyükweb Hizmetleri:
- [E-ticaret VDS paketlerimizi inceleyin](MASK43)
- [Yüksek trafik icin dedicated sunucu](MASK44)
- [Tüm hosting ve sunucu paketlerimiz](MASK45)
OpenCart Sıkça Sorulan Sorular
OpenCart 3 ile 4 arasındaki farklar?
OpenCart 4 PHP 8 desteği, modüler yapı (extension API), Bootstrap 5, gelişmiş JSON-LD schema, daha modern admin UI. Mevcut 3.x mağaza varsa 4.x migration uzun sürebilir — extension uyumluluğu kritik. Yeni kurulumda direkt 4.x mantıklı.
Trendyol/Hepsiburada API entegrasyonu yapılır mı?
Evet — 3rd party modülle. Marketplace entegrator yazılımları (entegra, akinsoft, n11mod) OpenCart admin paneliyle senkron çalışır. Stok + sipariş + fiyat tek yerden yönetilir. Sabit IP gerekli — E-Ticaret VDS önerilir.
iyzico mu PayTR mı?
- iyzico: Daha yaygın, dokümantasyon zengin, küçük-orta için 3D + tek-tık + saklı kart
- PayTR: Türk komisyon avantajı, taksit oranları rekabetçi, bazı bankalarla özel anlaşma
- Param: Genç işletmeler için hızlı onboarding
- Çoklu pos kombinasyonu dönüşüm artırır (kullanıcı tercih eder)
WooCommerce'e göre avantaj/dezavantaj?
- OpenCart avantaj: Daha hafif (RAM kullanımı az), Türkçe kurulum hızlı, multi-store doğal
- WooCommerce avantaj: Eklenti çeşitliliği 10x, topluluk büyük, SEO eklentileri (Yoast/RankMath) gelişmiş
- Karar: Ürün < 1000 + WordPress içerik var → WooCommerce. Sadece e-ticaret + multi-store gerek → OpenCart.
Hosting yeterli mi VDS gerekiyor mu?
| Trafik | Öneri |
|---|---|
| < 500 ziyaretçi/gün | cPanel Hosting yeterli |
| 500-2000 ziyaretçi/gün | VDS Sunucu — özellikle marketplace varsa |
| 2000+ veya peak (Black Friday) | E-Ticaret VDS veya Dedicated |
Black Friday/Şubat 14 gibi peak'leri nasıl karşılarım?
- CDN ile statik içerik Cloudflare'a aktar
- Redis object cache + LiteSpeed page cache kombinasyonu
- Database read replica (yüksek hacimli sorgu için)
- Auto-scale planı — VDS'i geçici büyütme (Büyükweb destek 24-48 saatte yapar)
- CDN edge logic ile ülke bazlı yönlendirme
Güvenlik açısından ilk yapılacaklar?
/adminklasörünü rename et (/yonetim-XYZ)- Admin
.htpasswdkorumalı - Two Factor opsiyon (3rd party modül)
- Admin'de IP whitelist
- WAF (ModSecurity, Imunify360)
- Düzenli güvenlik update — security patches OC takip et
config.phpizin 600 (sadece root + www-data)
KVKK uyum için neye dikkat edilmeli?
- Kayıt formuna açık aydınlatma metni link
- "Çerez kabul" banner (zorunlu)
- Müşteri hesap silme talebi → gerçekten silmek (KVKK madde 7)
- Veri saklama süresi politikası
- VERBİS kayıt (yıllık ciroya göre zorunlu)
İlgili Büyükweb Hizmetleri
E-ticaret sitenizin yükü için ölçeklenebilir Türkiye lokasyonlu paketler:
- E-Ticaret VDS
- WooCommerce için WordPress Hosting
- VDS Sunucu
- cPanel Web Hosting
- Yüksek Hacim için Dedicated
Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.
E-Ticaret İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

