Açık Kaynak Uygulamalar

    Saleor Nedir ve GraphQL Tabanlı E-Ticaret Kurulumu

    GraphQL API üzerine kurulu, ölçeklenebilir ve headless açık kaynak e-ticaret platformu Saleor rehberi.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir e-ticaret projesine başlarken çoğu ekip refleks olarak WooCommerce ya da hazır bir kiralık platform seçer. Bu seçimler işi hızlı ayağa kaldırır, ama mağaza büyüdükçe, mobil uygulama eklemek, birden fazla satış kanalını tek stoktan beslemek ya da tasarımı tümüyle özgürleştirmek istediğinizde tema motoruyla, plugin çakışmalarıyla ve monolitik yapının sınırlarıyla boğuşmaya başlarsınız. İşte Saleor tam bu noktada devreye giren, baştan farklı bir felsefeyle tasarlanmış açık kaynak bir e-ticaret platformudur. Mağazanın vitrinini değil, ticaretin beynini sunar: ürünler, stok, sepet, ödeme, kargo ve indirim mantığının tamamını GraphQL API üzerinden dışarı açar.

    Bu yazıda Saleor'un neden bir "API öncelikli" (API-first) platform olarak anıldığını, altındaki Python ve Django temelini, Docker ile nasıl birkaç komutta ayağa kaldırılacağını, GraphQL API'sini nasıl keşfedeceğinizi ve vitrini (storefront) hangi seçeneklerle inşa edebileceğinizi kıdemli bir sistem yöneticisi gözüyle anlatacağım. Amaç Saleor'u pazarlamak değil; hangi projede işinize yarayacağını, hangi projede fazladan yük olacağını net görmeniz. Sonunda WooCommerce ile dürüst bir karşılaştırma ve sık sorulan soruların cevapları da var.

    Saleor Nedir ve Neden Farklıdır#

    Saleor, Python ile yazılmış, tamamen açık kaynak (BSD-3 lisanslı) ve GraphQL tabanlı bir "headless" e-ticaret altyapısıdır. "Headless" kelimesi burada kritik: geleneksel platformlarda ürün yönetimi, veritabanı ve müşterinin gördüğü vitrin aynı yazılımın içinde iç içe geçmiştir. Saleor bu ikisini keser. Arka tarafta ticaret motorunu (Saleor Core) çalıştırır, ön tarafta müşterinin gördüğü sayfaları ise siz istediğiniz teknolojiyle inşa edersiniz. İkisi arasındaki tek konuşma dili GraphQL API'dir.

    Bunun pratik anlamı şudur: aynı Saleor kurulumu bir web sitesini, bir iOS uygulamasını, bir Android uygulamasını, bir kiosk ekranını ve hatta bir WhatsApp botunu aynı anda besleyebilir. Hepsi aynı API'ye konuşur, aynı stoğu görür, aynı sepet mantığını paylaşır. Klasik bir monolitte bunu yapmak için REST uçları yazıp bakımını üstlenmeniz gerekirken, Saleor tüm ticaret alanını hazır ve tutarlı bir şema olarak önünüze koyar.

    Saleor'u WordPress eklentisi mantığındaki çözümlerden ayıran ikinci nokta olgunluğudur. Ürün varyantları, kanal bazlı fiyatlandırma (aynı ürün farklı ülkelerde farklı para birimi ve fiyatla), çok depolu stok, karmaşık indirim ve promosyon kuralları, vergi entegrasyonları ve ödeme sağlayıcı soyutlaması çekirdekte hazır gelir. Yani "büyük ölçek" için sonradan yamalanmış değil, baştan bu senaryolara göre kurgulanmıştır.

    GraphQL Öncelikli Mimari#

    Saleor'un kalbi GraphQL'dir ve bunu anlamak platformu anlamanın anahtarıdır. REST API'lerde her veri parçası için ayrı bir uç (endpoint) çağırırsınız; bir ürün sayfası çizmek için ürünü, fiyatını, stoğunu ve yorumlarını dört ayrı istekte toplarsınız. GraphQL'de ise tek bir istekte istediğiniz alanların tam olarak hangileri olduğunu belirtir, fazlasını ya da eksiğini almazsınız.

    Örneğin bir ürünün adını, açıklamasını ve varsayılan varyant fiyatını istemek için gönderdiğiniz sorgu şu kadar nettir:

    query UrunDetay {
      product(slug: "kablosuz-kulaklik", channel: "turkiye") {
        name
        description
        variants {
          name
          pricing {
            price {
              gross {
                amount
                currency
              }
            }
          }
        }
      }
    }
    

    Bu sorgu size sadece istediğiniz alanları döner. Mobil uygulamanız daha az veri isteyebilir, masaüstü vitrininiz daha fazlasını çekebilir; ikisi de aynı API'ye konuşurken sunucu tarafında ekstra kod yazmanız gerekmez. Bu "istediğin kadarını al" yaklaşımı, özellikle mobil ağlarda bant genişliğini ciddi şekilde tasarruf ettirir ve ön yüz geliştirmesini hızlandırır.

    GraphQL ayrıca kendi kendini belgeleyen bir yapıdır. Şema, hangi tipin hangi alanlara sahip olduğunu, hangi mutasyonların (yazma işlemleri) mümkün olduğunu makine okunabilir biçimde tanımlar. Bu sayede istemci tarafında tip güvenli kod üretmek, otomatik dokümantasyon çıkarmak ve API'yi bir arayüzden gezmek çok kolaydır. Sepete ekleme, sipariş oluşturma, müşteri kaydı gibi işlemler ise "mutation" olarak aynı API üzerinden yapılır.

    Python ve Django Temeli#

    Saleor Core, Python ekosisteminin en olgun web çatısı olan Django üzerine kuruludur. GraphQL katmanı için Graphene kütüphanesini kullanır, asenkron görevler için Celery ve Redis'ten faydalanır, kalıcı veriyi ise PostgreSQL'de saklar. Bu teknoloji seçimi önemlidir çünkü Python ve Django, kurumsal ölçekte güvenilirliği kanıtlanmış, geniş bir geliştirici havuzuna sahip, bakımı öngörülebilir bir yığındır.

    Tipik bir Saleor kurulumunda birlikte çalışan temel bileşenler şunlardır:

    BileşenGöreviTeknoloji
    Saleor Core (API)Ticaret motoru ve GraphQL APIPython / Django / Graphene
    PostgreSQLÜrün, sipariş, müşteri verisiİlişkisel veritabanı
    RedisÖnbellek ve görev kuyruğuBellek içi depo
    Celery WorkerE-posta, webhook, arka plan işleriPython
    DashboardYönetim arayüzüReact (statik SPA)
    StorefrontMüşteri vitriniSizin seçiminiz (Next.js vb.)

    PostgreSQL seçimi tesadüf değildir; Saleor, JSONB alanlarını, tam metin aramayı ve karmaşık sorguları yoğun kullanır. Bu noktada altyapıya benzer bir mantıkla yaklaşan bir başka açık kaynak projeyi merak ediyorsanız, PostgreSQL'i bir bulut arka ucuna dönüştüren yaklaşımı anlattığımız Supabase rehberimize göz atabilirsiniz; ikisi de aynı sağlam veritabanı temeline yaslanır.

    Redis ve Celery ikilisi, sipariş sonrası e-postaları, stok senkronizasyonunu ve webhook tetiklemelerini kullanıcıyı bekletmeden arka planda yürütür. Bu ayrım, yoğun kampanya dönemlerinde vitrinin yavaşlamadan çalışmaya devam etmesini sağlar; ağır işler kuyruğa alınır, müşteri anında yanıt alır.

    Docker ile Saleor Kurulumu#

    Saleor'u en temiz kurma yolu Docker'dır, çünkü platform çok sayıda servisin uyum içinde çalışmasını gerektirir. Ekip, geliştirme için hazır bir saleor-platform deposu yayınlar; bu depo Core, Dashboard, PostgreSQL ve Redis'i tek bir docker compose çağrısıyla ayağa kaldırır. Öncelikle sunucunuzda Docker ve Docker Compose kurulu olmalı:

    # Depoyu klonla
    git clone https://github.com/saleor/saleor-platform.git
    cd saleor-platform
    
    # Alt modülleri (dashboard vb.) çek
    git submodule update --init --recursive
    
    # Servisleri arka planda başlat
    docker compose up -d
    

    İlk açılışta veritabanı şemasını oluşturmanız ve isterseniz örnek ürünlerle doldurmanız gerekir. Bu adım, tabloları migrate eder ve bir yönetici hesabı hazırlar:

    # Veritabanı şemasını uygula ve örnek veri yükle
    docker compose run --rm api python3 manage.py migrate
    docker compose run --rm api python3 manage.py populatedb
    
    # Yönetici (superuser) hesabı oluştur
    docker compose run --rm api python3 manage.py createsuperuser
    

    Bu komutlar tamamlandığında GraphQL API varsayılan olarak http://localhost:8000/graphql/ adresinde, Dashboard ise http://localhost:9000/ adresinde yayına başlar. Üretim ortamında bu servisleri doğrudan internete açmak yerine bir ters vekil (reverse proxy) arkasına almanız gerekir. Nginx ile tipik bir yönlendirme şöyle görünür:

    server {
        listen 443 ssl;
        server_name api.magazam.com;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    Ortam değişkenlerini (.env dosyası) mutlaka gözden geçirin; SECRET_KEY, izin verilen sunucu adları (ALLOWED_HOSTS) ve veritabanı bağlantısı gibi değerler varsayılan haliyle üretime çıkmamalı. Örnek bir yapılandırma parçası şu formattadır:

    SECRET_KEY=uzun-ve-rastgele-bir-anahtar-uretin
    ALLOWED_HOSTS=api.magazam.com
    DATABASE_URL=postgres://saleor:parola@db:5432/saleor
    [email protected]
    

    Kurulum sonrası SSL sertifikasını ihmal etmeyin; hem API hem Dashboard yalnızca HTTPS üzerinden yayınlanmalı. Ücretsiz sertifika yönetimini nasıl kolaylaştırabileceğinizi merak ediyorsanız SSL sertifikası çözümlerimize ve trafiği zararlı isteklerden ayıklamak için WAF hizmetimize bakabilirsiniz.

    GraphQL API'sini Keşfetmek#

    Saleor kurulduğunda size hemen keşfedebileceğiniz canlı bir GraphQL arayüzü de gelir. /graphql/ adresine tarayıcıdan girdiğinizde, sorguları yazıp anında çalıştırabileceğiniz, şemayı sol panelden gezebileceğiniz bir oyun alanı (GraphiQL / API Playground) açılır. Bu araç, dokümantasyonu okumadan bile hangi verilerin mevcut olduğunu keşfetmenizi sağlar.

    Örneğin mağazanızda tanımlı satış kanallarını (channel) ve para birimlerini görmek için şu sorguyu çalıştırabilirsiniz:

    query Kanallar {
      channels {
        name
        slug
        currencyCode
        isActive
      }
    }
    

    Yazma işlemleri "mutation" olarak adlandırılır ve genellikle bir kimlik doğrulama jetonu (token) gerektirir. Örneğin bir müşterinin sepetine ürün eklemek istediğinizde checkoutLinesAdd mutasyonunu kullanırsınız. Yönetim işlemleri (ürün ekleme, sipariş güncelleme) için ise Dashboard hesabınızla alınan bir jeton veya bir uygulama (app) jetonu gerekir. Saleor'un yetkilendirme modeli izin bazlıdır: bir jetonun neleri okuyup neleri yazabileceği, ona atanan izinlerle sınırlanır.

    Saleor'un güçlü yanlarından biri de "webhook" ve "app" mimarisidir. Sipariş oluşturulduğunda, ödeme onaylandığında ya da stok değiştiğinde Saleor size bir HTTP çağrısı gönderebilir. Bu sayede muhasebe yazılımınızı, kargo entegrasyonunuzu ya da bir CRM'i olayları dinleyerek bağlarsınız; çekirdek kodu hiç değiştirmeden mağazanızı genişletirsiniz. Bu genişletilebilirliği güvenli tutmak için webhook uçlarınızı imzayla doğrulamayı ve gelen istekleri kısıtlamayı ihmal etmeyin.

    Storefront (Vitrin) Seçenekleri#

    Saleor size ticaret motorunu verir ama müşterinin gördüğü vitrini bilinçli olarak vermez; onu inşa etme özgürlüğü size aittir. Bu, ilk bakışta ek iş gibi görünse de esnekliğin bedelidir ve genellikle avantaja dönüşür. Vitrini kurmak için başlıca üç yol vardır.

    Birincisi, Saleor ekibinin sunduğu Next.js tabanlı örnek storefront'u temel almaktır. Bu proje, ürün listeleme, ürün detay, sepet ve ödeme akışını hazır sunar; siz üzerine markanızı ve özel akışlarınızı ekleyerek başlarsınız. React ve Next.js bilen bir ekip için bu en hızlı yoldur ve sunucu tarafı işleme (SSR) sayesinde SEO açısından güçlüdür.

    İkincisi, sıfırdan kendi vitrininizi herhangi bir modern çatıyla (Vue, Svelte, Astro, hatta klasik bir sunucu tarafı uygulaması) yazmaktır. Tek yapmanız gereken Saleor'un GraphQL API'sine konuşmaktır. Üçüncüsü ise mobil uygulama; aynı API'yi bir React Native ya da yerel uygulamadan tüketebilirsiniz. Aşağıda vitrin seçeneklerinin kabaca karşılaştırması var:

    SeçenekKime uygunArtısıEksisi
    Next.js örnek storefrontReact bilen ekiplerHızlı başlangıç, SEO dostuNext.js bilgisi şart
    Sıfırdan kendi vitrinTam kontrol isteyenlerSınırsız özgürlükDaha çok geliştirme
    Mobil uygulamaUygulama odaklı markalarAynı stok, tek APIAyrı sürüm bakımı

    Vitrin tarafında kritik bir SEO uyarısı yapmak isterim: headless mimaride sayfaların arama motorlarınca doğru indekslenmesi için sunucu tarafı işleme ya da statik üretim (SSG) kullanmanız gerekir. Tamamen istemci tarafında çizilen bir vitrin, arama görünürlüğünüzü zayıflatır. Bu konuda planlama yaparken SEO hizmetimizden faydalanabilir, vitrini yayına almadan önce teknik kontrol listenizi oluşturabilirsiniz.

    Saleor Dashboard ve Yönetim#

    Vitrini siz yazsanız da Saleor, ürünleri ve siparişleri yönetmek için hazır bir React tabanlı yönetim paneli (Dashboard) sunar. Bu panel de aynı GraphQL API'yi tüketir; yani "yönetici arayüzü ayrı, API ayrı" değildir, ikisi aynı kaynağa konuşur. Dashboard üzerinden ürün kataloğunu, varyantları, koleksiyonları, indirim kampanyalarını, kargo bölgelerini, vergi ayarlarını ve siparişleri yönetirsiniz.

    Dashboard'un pratikte en çok işinize yarayacak yönü, çok kanallı satışı görsel olarak yönetmenizi sağlamasıdır. Aynı ürünü Türkiye kanalında lira, Avrupa kanalında euro ile farklı fiyatlarla satabilir, her kanalın stoğunu ayrı yönetebilirsiniz. Sipariş yönetimi tarafında ise kısmi iade, kısmi kargolama ve manuel sipariş oluşturma gibi gerçek dünya senaryoları hazır gelir.

    Personel yetkilendirmesi de detaylıdır. Bir depo çalışanına yalnızca sipariş görme ve kargolama izni verirken, bir pazarlamacıya sadece indirim ve içerik izni tanıyabilirsiniz. Bu izin modeli hem güvenlik hem de operasyonel netlik açısından önemlidir. Yönetim panelini ve API'yi çalıştırdığınız sunucunun düzenli yedeklerini almak da bir o kadar kritiktir; veritabanı ve medya dosyaları için yedekleme çözümlerimize ve sunucunuzun bakımını bize bırakmak isterseniz sunucu yönetimi hizmetimize bakmanızı öneririm.

    Saleor Kimler İçin Uygundur#

    Saleor güçlü bir platform ama her proje için doğru araç değildir. Dürüst olmak gerekirse, tek sayfalık basit bir vitrin, birkaç ürünlük bir hobi mağazası ya da teknik ekibi olmayan bir işletme için Saleor fazla ağır kaçar. Bu senaryolarda WordPress tabanlı çözümler çok daha hızlı ve düşük maliyetli sonuç verir; nitekim WordPress ile e-ticaretin nasıl kurulacağını WooCommerce başlangıç rehberimizde adım adım anlattık.

    Saleor'un gerçekten parladığı yerler şunlardır: mobil uygulama ve web sitesini tek stoktan besleyen markalar, çok ülkeli ve çok para birimli satış yapan işletmeler, tasarımını tamamen özgür bırakmak isteyen ekipler ve mevcut sistemleriyle (ERP, CRM, muhasebe) derin entegrasyon kuran kurumlar. Kısacası, teknik bir ekibiniz varsa ve büyüme planınız "sadece bir web sitesi"nin ötesindeyse Saleor size uzun vadede kazandırır.

    Kaynak gereksinimi açısından da gerçekçi olmak gerekir. Django, PostgreSQL, Redis ve Celery'yi bir arada rahat çalıştırmak için en az 2 vCPU ve 4 GB RAM'lik bir sunucu makul bir başlangıçtır; ciddi trafikte bu ihtiyaç artar. Bu tür bir yığını çalıştırmak için paylaşımlı hosting yeterli olmaz; kök erişimi ve Docker çalıştırma özgürlüğü veren bir sunucuya ihtiyacınız vardır. Bizim VDS sunucularımız ya da genel sunucu ailemiz tam bu senaryo için uygundur; kaynak ihtiyacınız büyüdükçe ölçekleyebilirsiniz. Kurulumu deneyip görmek isterseniz App Center üzerinden hazır uygulama seçeneklerimize de göz atabilirsiniz.

    Sıkça Sorulan Sorular#

    Saleor ücretsiz mi, yoksa ücretli mi?#

    Saleor'un çekirdeği (Saleor Core, Dashboard ve storefront örnekleri) tamamen açık kaynak ve ücretsizdir; BSD-3 lisansı altında kendi sunucunuzda dilediğiniz gibi çalıştırabilirsiniz. Şirketin ayrıca yönetilen bir bulut sürümü (Saleor Cloud) vardır ve o ücretlidir; ancak self-hosted kurulumda tek maliyetiniz sunucu ve bakım giderleridir. Yani teknik ekibiniz varsa lisans ücreti ödemeden tam özellikli bir mağaza işletebilirsiniz.

    Saleor'u WooCommerce yerine ne zaman seçmeliyim?#

    Mobil uygulama ve web sitesini aynı stoktan beslemeniz, çok ülkeli ve çok para birimli satış yapmanız ya da tasarımınızı tema motorunun sınırlarından tamamen kurtarmak istemeniz gerekiyorsa Saleor daha doğru bir tercihtir. Buna karşılık küçük bir mağaza, sınırlı bütçe ve teknik ekibin olmadığı durumlarda WooCommerce çok daha hızlı ve ekonomik sonuç verir. Karar verirken "sadece web sitesi mi, yoksa büyüyen bir dijital ticaret altyapısı mı istiyorum?" sorusunu kendinize sormanız yeterlidir.

    Saleor kurmak için hangi teknik bilgiler gerekir?#

    En azından Docker ile servis çalıştırma, temel Linux sunucu yönetimi ve GraphQL kavramlarına aşinalık gerekir. Vitrini geliştirmek için ise React/Next.js ya da tercih ettiğiniz bir ön yüz çatısında yetkinlik beklenir. Saleor bilinçli olarak "her şey hazır" bir paket sunmaz; esneklik karşılığında sizden biraz geliştirme emeği ister. Bu emeği verecek bir ekibiniz yoksa yönetilen bir çözümü ya da WordPress tabanlı bir alternatifi değerlendirmeniz daha sağlıklı olur.

    Saleor hangi sunucu kaynaklarına ihtiyaç duyar?#

    Django, PostgreSQL, Redis ve Celery aynı anda çalıştığı için başlangıç olarak en az 2 vCPU ve 4 GB RAM'lik bir sunucu öneririm; küçük ölçekte bu rahat çalışır. Trafik ve ürün sayısı arttıkça CPU, RAM ve veritabanı kaynaklarını yükseltmeniz gerekir. Paylaşımlı hosting bu yığın için uygun değildir çünkü Docker çalıştırma ve arka plan servisleri için kök erişimine ihtiyaç vardır; bir VDS ya da bulut sunucu doğru zemindir.

    Saleor SEO açısından uygun mudur?#

    Saleor'un kendisi bir API olduğu için SEO performansı büyük ölçüde vitrini nasıl kurduğunuza bağlıdır. Sunucu tarafı işleme (SSR) ya da statik üretim (SSG) kullanan bir storefront kurarsanız arama motorları sayfalarınızı sorunsuz indeksler ve hız avantajı elde edersiniz. Buna karşılık yalnızca istemci tarafında çizilen bir vitrin arama görünürlüğünü zayıflatır. Yani SEO uygunluğu Saleor'un değil, sizin vitrin mimarinizin bir sonucudur.

    Verilerimi başka bir platformdan Saleor'a taşıyabilir miyim?#

    Evet, ürün kataloğunuzu, müşterilerinizi ve siparişlerinizi GraphQL mutasyonları ya da toplu içe aktarma betikleriyle Saleor'a taşıyabilirsiniz. Mevcut platformunuzdan verileri dışa aktarıp Saleor API'sine yazan bir geçiş betiği hazırlamak en yaygın yöntemdir. Taşıma sürecinde alan adınızın ve e-posta akışlarınızın kesintisiz devam etmesi için önceden planlama yapmak önemlidir; bu tür geçişlerde teknik destek almak süreci hızlandırır.

    Kapanış#

    Saleor, e-ticareti bir web sitesi olmaktan çıkarıp bir dijital ticaret altyapısına dönüştürmek isteyen ekipler için tasarlanmış, olgun ve özgür bir platformdur. GraphQL öncelikli mimarisi, Python/Django temeli ve headless yaklaşımı sayesinde tek bir stoktan web, mobil ve diğer kanalları besleyebilir, büyüdükçe ölçeklenebilirsiniz. Bunun karşılığında sizden teknik yetkinlik ve biraz geliştirme emeği ister; bu bedeli ödeyecek bir ekibiniz varsa uzun vadede size esneklik ve kontrol kazandırır.

    Saleor'u ciddi bir projede çalıştırmak için Docker'ı rahat kullanabildiğiniz, kaynağını gerektiğinde yükseltebildiğiniz sağlam bir sunucuya ihtiyacınız olur. Clou.TR olarak bu yolculukta yanınızdayız: kök erişimli VDS ve sanal sunucularımızla altyapıyı kurabilir, sunucu yönetimi ekibimize teknik bakımı bırakabilir, SSL ve yedekleme çözümlerimizle mağazanızı güvende tutabilirsiniz. İster kendi vitrininizi sıfırdan kurun, ister bir alan adı alıp hızlıca başlayın; ihtiyacınıza uygun bir plan seçmek için ürün sayfalarımıza göz atın ve projenizi güvenli bir zemine oturtun.

    e-ticaretgraphqlself-hosted

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.