Whitelabel e-ticaret altyapısı

Kendi markanla, kendi alan adınla e-ticaret

Shopio tek bir kurulumda birden fazla mağazayı çalıştırır. Katalog, sipariş, iade, kampanya ve müşteri yönetimi ilk günden hazır gelir; her mağaza kendi alan adında yayınlanır ve verileri veritabanı seviyesinde yalıtılır.

Canlı vitrinler

Ekran görüntüsü değil, şu anda yayında olan iki mağaza. İkisi de aynı kurulumda, aynı katalog altyapısında çalışıyor — farkları yalnızca şablon ve ayarlar.

Mağazanın gündelik işi

Ürün girmekten iade işlemeye kadar bir mağazanın her gün yaptığı işler panelde hazır duruyor. Aşağıdaki başlıklar panelin kendi menüsüyle birebir.

Katalog

  • Kategori ve tek kademe alt kategori (İçecekler › Gazlı İçecekler)
  • Marka, etiket, çoklu görsel
  • Varyant: beden, renk — her varyantın kendi fiyatı ve stoğu
  • Çoklu depo stoğu; hangi deponun satışa açık olduğunu sen seçersin
  • CSV ile toplu yükleme — önce ne olacağını gösteren önizleme
  • Yüklenen görseller otomatik boyutlandırılıp WebP’ye çevriliyor

Sipariş ve teslimat

  • Sipariş durumları ve doğrulanmış geçişler — geriye dönük hatalı geçiş yok
  • Üye olmadan sipariş; müşteri sonradan sipariş numarasıyla sorgulayabiliyor
  • Kargo yöntemleri, ücret, firma ve takip numarası
  • İade akışı: talep → onay → teslim alma → para iadesi
  • İptal ve iade stoğu, çıktığı depoya geri yazıyor
  • Sipariş onayı e-postası mağazanın kendi adıyla gidiyor

Pazarlama

  • Kampanya motoru: tüm ürünler, kategori ya da seçilmiş ürünler
  • Üst kategoriye kurulan kampanya alt kategorilerini de kapsıyor
  • Kupon: yüzde ya da tutar, kullanım ve müşteri başına limit
  • Vitrinde indirim şeridi ve kampanyanın kendi sayfası
  • Market şablonunda slider ve story alanları
  • Trafik kaynağı takibi — hangi kanaldan gelen sipariş verdi

Müşteri

  • Müşteri hesabı, sipariş geçmişi, adres defteri
  • Favoriler
  • Ürün yorumu ve puanı — yayınlanmadan önce onaydan geçiyor
  • Şifremi unuttum akışı, mağazanın kendi alan adından
  • Her mağazanın müşterisi ayrı: aynı e-posta başka mağazada bağımsız hesap

Müşterinin gördüğü taraf

Vitrin sunucuda render ediliyor: sayfa JavaScript beklemeden geliyor ve arama motoru katalogun tamamını gezebiliyor.

Üç şablon, tek katalog
Klasik, butik ve market. Şablonu panelden değiştiriyorsun; katalog aynı kalıyor. Marka rengi ve başlık yazı tipi de oradan.
Arama motoruna hazır
Her mağazanın kendi site haritası, robots.txt’i, canonical adresleri ve ürün yapısal verisi (fiyat, stok, puan). Ürün sayfasında kırıntı yolu.
Türkçe ve İngilizce
Vitrin, panel ve hata mesajları iki dilde. Mağazanın dili satıcının seçimi; müşteriye giden e-posta da o dilde.
KVKK ve çerez onayı
Kabul ve ret aynı ağırlıkta — mevzuatın aradığı “özgür irade” şartı. Bant, satıcının kendi aydınlatma metnine bağlanıyor.

Altında ne var

Birden fazla mağazayı aynı kurulumda çalıştırmanın tek gerçek riski verilerin birbirine karışması. Shopio bu riski uygulama koduna bırakmıyor.

Veritabanı seviyesinde izolasyon

Tenant ayrımı yalnızca uygulama kodunda değil, PostgreSQL Row-Level Security ile veritabanında zorlanıyor. Uygulama Postgres’e tablo sahibi OLMAYAN, RLS’i atlayamayan bir rolle bağlanıyor: kodda bir filtre hatası olsa bile veritabanı başka mağazanın satırını döndürmüyor.

Rol ve yetki

Altı hazır rol (sahip, yönetici, müdür, muhasebe, personel, izleyici) ve on altı ayrı izin. Ekip üyesini istediğin mağazaya istediğin yetkiyle ekliyorsun; yetkisi olmayan ekranı hiç görmüyor.

Kendi sunucunda

Docker katmanı yok: Nginx, Kestrel ve PostgreSQL doğrudan çalışıyor. Kurulum betikle; yeni bir sunucuya baştan kurmak dakikalar sürüyor ve veriler senin sunucunda kalıyor.

Yedek ve geri alma

Veritabanı ve görseller günlük otomatik yedekleniyor, eski yedekler kendiliğinden temizleniyor. Sorunlu bir sürüm tek komutla bir öncekine döndürülebiliyor.

Doğrulanmamış kod yayına çıkmıyor

Testler dağıtımın kapısında: main’e giden her değişiklik önce .NET ve vitrin test paketlerinden geçiyor, geçemezse üretime inmiyor. Testler gerçek bir PostgreSQL’e bağlanıyor — izolasyonun canlı olduğu ancak orada kanıtlanabilir.

NginxKestrel · .NET 10PostgreSQL · RLSsystemd

Nasıl başlanır

Mağaza açmaktan yayına almaya kadar üç adım.

  1. 01

    Mağazanı oluştur

    Panelden yeni mağaza aç, temel bilgilerini gir, şablonunu seç.

  2. 02

    Katalogunu yükle

    Ürünleri tek tek gir ya da CSV ile toplu yükle. Kategori ağacını dosyadan da kurabilirsin.

  3. 03

    Alan adını bağla

    Kendi alan adını yönlendir; sertifika ve yayın otomatik. Mağazan artık kendi markasıyla ayakta.

Yol haritası: Sipariş akışı uçtan uca çalışıyor (sepet, kupon, kargo yöntemi, sipariş sorgulama) ancak online kart tahsilatı henüz yok — siparişler kapıda ödeme ve havale ile alınıyor. Ödeme geçidi entegrasyonu sıradaki iş.

Mağazanı yönetmeye başla

Yönetim paneline giriş yap, mağazanı oluştur ve alan adını bağla.