Magento (Adobe Commerce) ile Shopify Arasındaki Temel Farklar
Magento'dan Shopify'a geçişte karşılaşılan zorlukların neredeyse tamamı, iki platformun veri modelindeki temel farktan kaynaklanır: Magento ürünleri EAV (Entity-Attribute-Value) mimarisiyle saklar ve her özniteliği ayrı bir veritabanı tablosunda tutar, Shopify ise sabit alanlı (flat) bir ürün şeması kullanır. Bu fark, geçişi "veri kopyalama" işleminden çok bir "veri yeniden modelleme" projesine dönüştürür.
Magento, açık kaynaklı Magento Open Source ve kurumsal Adobe Commerce (eski adıyla Magento Commerce) olmak üzere iki farklı ürün hattı sunar; bu ikisi lisans modeli, barındırma sorumluluğu ve B2B modülü açısından birbirinden ayrılır. Adobe Commerce Cloud, Adobe'nin kendi altyapısında barındırılan, ciro bazlı lisanslama ile satılan kurumsal sürümdür ve genellikle Shopify Plus ile karşılaştırılan segmentte yer alır.
| Kriter | Magento / Adobe Commerce | Shopify |
|---|---|---|
| Veri modeli | EAV (Entity-Attribute-Value), her öznitelik ayrı tabloda | Flat şema, sabit alanlar + metafield ile genişletme |
| Barındırma | Self-hosted (Open Source) veya Adobe'nin bulut altyapısı (Adobe Commerce Cloud) | Tamamen Shopify tarafından barındırılan SaaS |
| Lisans / ücretlendirme | Open Source ücretsiz (barındırma + geliştirme maliyeti ayrı); Adobe Commerce yıllık ciro bazlı lisans | Aylık sabit plan ücreti + işlem komisyonu |
| Özelleştirme | PHP tabanlı modül geliştirme, tam kod erişimi | Liquid şablon dili + Admin/Storefront API ile app geliştirme |
| B2B desteği | Adobe Commerce B2B modülü (yerleşik) | Shopify Plus B2B kanalı veya özel app geliştirme |
| Güvenlik/bakım sorumluluğu | Open Source sürümünde sunucu, güvenlik yaması, ölçeklendirme mağaza sahibine ait | Shopify tarafından yönetilir (PCI-DSS uyumluluğu dahil) |
Nodus Works olarak yönettiğimiz Magento geçişlerinde gördüğümüz ortak nokta şudur: mağaza sahipleri genellikle platformun esnekliğinden değil, bu esnekliğin getirdiği bakım yükünden (güvenlik yamaları, sunucu ölçeklendirme, geliştirici bağımlılığı) kaçmak için geçişi değerlendiriyor. Bu noktada geçiş kararı teknik bir tercih değil, operasyonel bir yük azaltma kararıdır.
Kritik Not: Magento Open Source ile Adobe Commerce arasındaki fark yalnızca fiyat değildir. Adobe Commerce'in B2B modülü, gelişmiş segmentasyon ve içerik yönetim araçları (Page Builder) Open Source sürümünde bulunmaz; geçiş planı yaparken hangi sürümden geldiğinizi netleştirmek, Shopify tarafında hangi özelliklerin karşılanması gerektiğini belirler.
Neden Magento'dan Shopify'a Geçiş Yapılır?
Magento'dan Shopify'a geçiş kararının arkasında genellikle üç somut tetikleyici vardır: sürüm sonu (end-of-life) baskısı, öngörülemez lisans/bakım maliyeti ve EAV veri modelinin günlük operasyonu yavaşlatması.
Magento 1 EOL ve Magento 2 Zorunlu Yükseltme Baskısı
Magento 1'in resmi desteği Haziran 2020'de sona erdi; bu tarihten sonra güvenlik yaması almayan mağazalar hem PCI-DSS uyumluluğunu kaybetme hem de bilinen güvenlik açıklarına maruz kalma riskiyle karşı karşıya kaldı. Magento 1'de kalan mağazaların büyük bölümü ya Magento 2'ye pahalı bir yeniden platform kurma projesiyle geçti, ya da bu zorunlu geçişi fırsata çevirip doğrudan Shopify'a yöneldi. Magento 2'ye geçiş de kod tabanının büyük ölçüde yeniden yazılmasını gerektirdiği için, mağaza sahipleri açısından "zaten yeni bir platforma geçecek kadar emek harcayacaksam" mantığı Shopify'ı gerçekçi bir alternatif haline getirdi.
Adobe Commerce Lisans Modelinin Getirdiği Maliyet Öngörülemezliği
Adobe Commerce'in lisans ücreti yıllık brüt satış hacmine (GMV) bağlı olarak hesaplanır; bu da mağaza büyüdükçe lisans maliyetinin de orantısız şekilde artması anlamına gelir. Shopify Plus'ta ise ücretlendirme aylık taban ücret + belirli bir ciro eşiğinin üzerinde ek orandan oluşur ve genellikle Adobe Commerce'in kurumsal lisans yapısına kıyasla daha öngörülebilir bir maliyet eğrisi sunar. Bu fark, özellikle hızlı büyüyen markalar için geçiş kararında belirleyici bir faktördür.
EAV Veri Modelinin Operasyonel Karmaşıklığı
Magento'nun EAV mimarisi, yeni bir ürün özniteliği eklemenin veritabanı seviyesinde ek tablo/join işlemi gerektirmesi anlamına gelir; büyük kataloglarda bu durum sayfa yükleme sürelerini ve admin panel performansını doğrudan etkiler. Shopify'ın flat veri modeli + metafield yapısı bu problemi ortadan kaldırır: yeni bir öznitelik eklemek performans maliyetine yol açmaz. Bu fark, özellikle 10.000+ SKU'ya sahip kataloglarda günlük operasyonun hızını belirleyen kritik bir teknik detaydır.
Uzak Durulması Gereken Risk: "Sadece hosting maliyetinden kaçınmak için geçiyoruz" mantığıyla planlanan geçişlerde, EAV'dan flat modele veri dönüşümü ve custom option'ların Shopify karşılığının nasıl kurulacağı sona bırakılıyor. Bu, geçişin ortasında beklenmedik bir veri yeniden modelleme ihtiyacı doğurur ve projeyi haftalarca uzatabilir.
Geçiş Öncesi Hazırlık ve Veri Envanteri
Magento'dan Shopify'a geçişte en pahalı hata, veri envanteri çıkarılmadan doğrudan aktarım araçlarına başlamaktır; envanter, hangi Magento verisinin gerçekten kullanıldığını ve hangisinin yıllar içinde birikmiş atıl veri olduğunu ortaya çıkarır.
Bir Magento mağazasında taşınması gereken veri türleri şunlardır: ürünler (basit, configurable, bundle, grouped, virtual), kategori ağacı ve layered navigation filtreleri, müşteri hesapları ve müşteri grupları, sipariş geçmişi, CMS sayfaları ve statik bloklar (static blocks), özel öznitelik setleri (attribute sets) ve çoklu mağaza/görünüm (multi-website, multi-store view) yapılandırması.
Envanter aşamasında özellikle iki alan gözden kaçırılır:
- Kullanılmayan öznitelik setleri: Magento kataloglarında yıllar içinde oluşturulmuş, artık hiçbir üründe dolu olmayan öznitelikler birikir. Bunları Shopify'da metafield olarak birebir taşımak, gereksiz karmaşıklık yaratır.
- CMS blokları ve widget'lar: Ana sayfa, kategori sayfası üstü banner'lar gibi Magento'ya özgü statik bloklar doğrudan aktarılamaz; Shopify tarafında tema bölümleri (theme sections) olarak yeniden inşa edilmesi gerekir.
Nodus Works olarak gözlemledik ki, envanter aşamasına ayrılan zaman geçişin toplam süresini kısaltıyor: hangi verinin gerçekten taşınacağı net olduğunda, aktarım scriptleri ilk seferde doğru çalışıyor ve tekrar eden temizlik döngüleri ortadan kalkıyor.
Ürün ve Kategori Verisinin Aktarımı: EAV'dan Flat Modele
Magento'nun dört farklı ürün tipi (basit, configurable, bundle, grouped) Shopify'ın tek tip flat ürün modeline farklı stratejilerle eşlenir; bu eşleme, geçişin en fazla teknik karar gerektiren adımıdır.
| Magento Ürün Tipi | Shopify Karşılığı | Not |
|---|---|---|
| Simple Product | Standart ürün | Doğrudan 1:1 aktarılır |
| Configurable Product | Varyantlı ürün | Renk/beden gibi seçenekler Shopify varyant yapısına dönüşür |
| Custom Options | Line item property veya metafield | Shopify'da yerleşik "custom option" kavramı yoktur; app veya özel geliştirme gerekir |
| Bundle Product | Bundle app veya çoklu ürün grubu | Shopify'ın yerleşik bundle desteği sınırlıdır; genellikle üçüncü parti app gerekir |
| Grouped Product | İlgili ürünler bölümü + koleksiyon | Otomatik gruplama değil, manuel koleksiyon kurgusu gerekir |
Custom Options ve Configurable Products'ın Shopify Varyant/Metafield Karşılığı
Configurable Product'lar (örneğin renk ve beden kombinasyonlu bir tişört) Shopify'a taşınırken doğrudan varyant yapısına dönüşür; bu aktarım nispeten sorunsuzdur çünkü her iki platform da bu senaryo için yerleşik bir mekanizma sunar. Asıl zorluk Custom Options'ta ortaya çıkar: Magento'da "kişiye özel gravür metni" veya "hediye paketi seçeneği" gibi metin girişi veya ek seçenek gerektiren alanlar, Shopify'da yerleşik bir karşılığa sahip değildir.
Bu tür alanlar Shopify'a iki yoldan taşınır: line item property (checkout'ta müşterinin dolduracağı serbest metin alanı) veya bir kişiselleştirme app'i üzerinden yönetilen yapılandırılmış seçenek. Hangi yöntemin seçileceği, seçeneğin fiyatı etkileyip etkilemediğine bağlıdır; fiyat etkileyen bir custom option, basit bir line item property ile karşılanamaz ve genellikle özel bir app veya Shopify Functions tabanlı fiyatlandırma mantığı gerektirir.
Kategori tarafında ise Magento'nun çok katmanlı kategori ağacı ve layered navigation filtreleri, Shopify'da koleksiyon (collection) yapısına ve koleksiyon içi filtrelemeye (Shopify'ın "Search & Discovery" app'i veya tema düzeyinde filtreleme) dönüştürülür. Magento'daki her alt kategori otomatik olarak bir Shopify koleksiyonuna karşılık gelmez; kategori ağacının SEO değeri taşıyan kısımları korunmalı, yalnızca dahili filtreleme amaçlı kategoriler koleksiyona dönüştürülmeden URL parametresi/filtre olarak ele alınmalıdır.
İpucu: Bundle ve fiyat-etkileyen Custom Options içeren kataloglarda, veri aktarımına başlamadan önce hangi ürünlerin bu tipte olduğunu ayrı bir listede çıkarın. Bu ürünler toplam katalogda küçük bir yüzde olsa bile, aktarım süresinin büyük bölümünü bunlar belirler.
URL Yapısı ve SEO Değerinin Korunması
Magento'dan Shopify'a geçişte organik trafiğin büyük bölümünü kaybetmenin en yaygın nedeni, URL yapısındaki farkın 301 yönlendirmeleriyle karşılanmamasıdır; bu iki platformun URL mantığı kökten farklıdır ve otomatik bir eşleme yapılmaz.
Magento, varsayılan olarak ürün ve kategori URL'lerine .html uzantısı ekler (ör. /deri-ceket.html) ve layered navigation filtreleri genellikle URL'e sorgu parametresi olarak eklenir (ör. ?renk=siyah&beden=m). Bu filtre kombinasyonları zamanla Google tarafından indekslenmiş binlerce ince (thin) URL'e dönüşebilir. Shopify ise /products/urun-adi ve /collections/kategori-adi formatını kullanır ve filtreleme parametrelerini farklı bir mekanizmayla yönetir.
301 Yönlendirme Haritası Nasıl Çıkarılır?
Magento veritabanındaki url_rewrite tablosu (Magento 2) veya core_url_rewrite tablosu (Magento 1), sitede o ana kadar oluşmuş tüm URL geçmişini içerir; bu tablo dışa aktarılarak eski URL listesinin tam envanteri çıkarılır. Bu liste, Shopify'daki yeni ürün/koleksiyon URL'leriyle eşleştirilip toplu 301 yönlendirme dosyası haline getirilir.
Pratikte üç kategori URL için farklı bir yaklaşım gerekir:
- Ürün ve kategori URL'leri: Birebir eşleme yapılabilir; slug değişmediği sürece basit bir 301 kuralı yeterlidir.
- Layered navigation/filtre URL'leri: Bu URL'lerin çoğu Shopify'da karşılığı olmayan geçici sorgu kombinasyonlarıdır; bunları tek tek yönlendirmek yerine kök kategori sayfasına yönlendirmek ve gelecekte bu tür URL'lerin oluşmasını Shopify tarafında engellemek daha sağlıklıdır.
- CMS sayfaları: Statik sayfalar (hakkımızda, iade politikası gibi) genellikle URL slug'ı korunarak taşınabilir.
Google'ın indekslediği eski URL'lerin canlı kalmaması ve 404 vermesi, geçiş sonrası ilk haftalarda organik trafiğin sert düşmesinin en sık nedenidir; bu riski en aza indirmek amacıyla yürüttüğümüz Shopify'a taşıma ve migration hizmetimiz, 301 haritasını canlıya almadan önce test ortamında doğrular.
Kritik Not: Magento'da layered navigation filtrelerinin oluşturduğu URL'lerin tamamını 301 ile yönlendirmeye çalışmak hem gereksizdir hem de yönetilemez boyuta ulaşabilir. Gerçek SEO değeri taşıyan (Google Search Console'da tıklama/gösterim alan) URL'leri önceliklendirin; geri kalanının doğal olarak indeksten düşmesine izin verin.
B2B ve Çoklu Mağaza (Multi-Website) Yapısının Taşınması
Adobe Commerce'in B2B modülünü kullanan mağazalar için geçişin en kritik sorusu, Magento'nun şirket hesabı (company account) ve paylaşılan katalog (shared catalog) yapısının Shopify'da nasıl karşılanacağıdır; bu iki platformun B2B mimarisi birebir örtüşmez.
Adobe Commerce B2B modülü; şirket hesapları, hızlı sipariş (quick order), talep listeleri (requisition lists) ve teklif/pazarlık (quote/negotiation) akışlarını yerleşik olarak sunar. Shopify tarafında bu işlevlerin karşılığı Shopify Plus'ın B2B kanalıdır: şirket profilleri, özel fiyat listeleri, ödeme vadesi tanımlama ve B2B'ye özel checkout deneyimi sağlar. Ancak Adobe Commerce'teki teklif/pazarlık akışı gibi daha karmaşık iş kuralları, Shopify Plus B2B'de doğrudan karşılığı olmadığı için genellikle özel bir app veya Shopify Functions ile yeniden inşa edilmesi gerekir.
| Magento/Adobe Commerce Yapısı | Shopify Karşılığı |
|---|---|
| Multi-Website / Multi-Store View (tek kod tabanı, farklı görünüm/katalog) | Shopify Markets (tek mağaza, bölgesel fiyat/dil) veya ayrı Shopify mağazaları (kataloglar tamamen farklıysa) |
| Company Account | Shopify Plus B2B şirket profili |
| Shared Catalog (şirkete özel fiyat/katalog) | B2B fiyat listesi (price list) + katalog görünürlük kuralları |
| Quote/Negotiation | Yerleşik karşılığı yok; özel app veya manuel süreç gerekir |
Multi-website kararı geçişin mimarisini doğrudan etkiler: eğer Magento'daki farklı website'ler yalnızca dil/para birimi farkı taşıyorsa (aynı katalog, farklı yerelleştirme), Shopify Markets tek mağaza içinde bu ihtiyacı karşılar. Ancak website'ler tamamen farklı ürün kataloğu veya marka kimliği taşıyorsa, bunları tek Shopify mağazasına sıkıştırmak yerine ayrı mağazalar olarak kurup Shopify'ın Organization yapısıyla merkezi yönetmek daha sağlıklı bir mimari kararıdır.
Özel Modüllerin ve Uzantıların Shopify Karşılıkları
Magento Marketplace'ten kurulmuş üçüncü parti modüllerin hiçbiri doğrudan Shopify'a taşınmaz; her modülün Shopify App Store'daki karşılığı bulunmalı veya karşılığı yoksa özel geliştirmeyle yeniden inşa edilmelidir.
Ödeme ve kargo entegrasyonları genellikle en kolay taraftır: iyzico, PayTR ve Craftgate gibi Türkiye'ye özel ödeme sağlayıcılarının hem Magento hem Shopify için resmi entegrasyonları bulunur, bu yüzden bu modüller doğrudan Shopify karşılığıyla değiştirilebilir. Kargo entegrasyonlarında da benzer bir durum söz konusudur; Aras Kargo, Yurtiçi Kargo gibi sağlayıcıların Shopify App Store'da veya API üzerinden kurulabilecek karşılıkları vardır.
Asıl zorluk, Magento'ya özel geliştirilmiş (bespoke) modüllerde ortaya çıkar: örneğin özel bir fiyatlandırma kuralı, mağazaya özgü bir sadakat programı veya ERP'ye özel bir senkronizasyon modülü, Shopify App Store'da hazır bir karşılığa sahip olmayabilir. Bu durumda iki seçenek vardır: iş kuralını en yakın hazır app'in sunduğu ayarlarla sadeleştirmek, veya modülün mantığını Shopify Admin API/Functions üzerine özel olarak yeniden kodlamak.
Kritik Not: Checkout'a özel modül geliştirmiş Magento mağazaları için önemli bir uyarı: Magento'da checkout'a PHP seviyesinde doğrudan müdahale mümkünken, Shopify'da bu yalnızca Shopify Plus + Checkout Extensibility ile yapılabilir. Standart Shopify planında checkout'a kod enjekte edilemez; bu sınırlama geçiş planlamasının en başında netleştirilmelidir.
ERP, muhasebe veya özel raporlama modülleri gibi mağazaya özgü entegrasyonların Shopify tarafında yeniden kurulması, hazır bir app ile çözülemeyen senaryolarda özel API geliştirme gerektirir; Shopify entegrasyon çözümleri ve özel app geliştirme hizmetimiz bu tür Magento'ya özgü modüllerin mantığını Shopify Admin API üzerine taşır.
Nodus Works ile Magento'dan Shopify'a Geçiş Süreci
Magento/Adobe Commerce'ten Shopify'a geçiş projelerinde izlediğimiz süreç şu adımlardan oluşur:
- Veri ve modül envanteri: Hangi ürün tiplerinin, özniteliklerin ve üçüncü parti modüllerin gerçekten kullanıldığını, hangilerinin atıl olduğunu tespit ediyoruz.
- EAV'dan flat modele veri eşleme: Custom Options, Bundle ve Configurable Product'ları Shopify'ın varyant/metafield yapısına doğru stratejiyle eşliyoruz.
- 301 yönlendirme haritası: Magento'nun
url_rewritetablosundan çıkardığımız tam URL geçmişini Shopify'ın yeni URL yapısına eşleyip canlıya almadan önce test ortamında doğruluyoruz. - Tema ve checkout kurulumu: Marka kimliğine uygun Shopify teması ve gerekiyorsa Shopify Plus + Checkout Extensibility ile özel checkout mantığı kuruyoruz.
- B2B ve entegrasyon kurulumu: Adobe Commerce B2B modülünden gelen şirket hesabı/fiyat listesi yapısını Shopify Plus B2B'ye taşıyor, karşılığı olmayan özel modülleri yeniden kodluyoruz.
- Go-live testi: Ödeme, checkout, B2B akışları ve mobil görünümü canlıya almadan önce uçtan uca test ediyoruz.
Bu sürecin platformdan bağımsız ortak adımlarını (plan seçimi, DNS yönlendirmesi, go-live kontrol listesi) Shopify'a Geçiş Rehberimizde ayrıca ele aldık.
SSS
Magento'dan Shopify'a geçiş ne kadar sürer? Katalog büyüklüğüne, Custom Options/Bundle ürün sayısına ve B2B modülü kullanımına göre değişir. Basit kataloglarda 4-6 hafta, B2B ve çoklu website yapısı olan mağazalarda 8-12 hafta sürebilir.
Magento Open Source ile Adobe Commerce'den geçiş farklı mı? Veri aktarımı açısından temel adımlar aynıdır, ancak Adobe Commerce'ten gelen mağazalarda ek olarak B2B modülü (company account, shared catalog) ve Page Builder ile oluşturulmuş içeriklerin Shopify karşılığının kurulması gerekir.
Magento'daki SEO sıralamalarım geçiş sonrası düşer mi? 301 yönlendirme haritası doğru çıkarılmazsa evet, düşer. Magento'nun url_rewrite tablosundan tam URL geçmişi çıkarılıp Shopify'ın yeni URL yapısına eşlenirse bu risk büyük ölçüde önlenir.
Custom Options'lı ürünler Shopify'a nasıl taşınır? Fiyatı etkilemeyen seçenekler line item property olarak, fiyatı etkileyen seçenekler ise bir kişiselleştirme app'i veya Shopify Functions tabanlı özel fiyatlandırma mantığıyla taşınır.
Adobe Commerce B2B modülü Shopify'da tam olarak karşılanır mı? Şirket hesabı ve fiyat listesi gibi temel işlevler Shopify Plus B2B ile karşılanır. Ancak teklif/pazarlık (quote/negotiation) gibi daha karmaşık akışlar yerleşik olarak yoktur ve özel geliştirme gerektirir.
Magento'daki tüm üçüncü parti modüller Shopify'da bulunur mu? Ödeme ve kargo gibi yaygın entegrasyonların çoğunun Shopify karşılığı vardır. Mağazaya özel geliştirilmiş (bespoke) modüllerin ise hazır karşılığı yoktur; bu modüllerin mantığı Shopify Admin API üzerine özel olarak yeniden kodlanmalıdır.
Sonuç
Magento (Adobe Commerce)'dan Shopify'a geçiş, temelde bir veri modeli dönüşümüdür: EAV'ın esnek ama karmaşık yapısından Shopify'ın flat ve öngörülebilir modeline geçiş, doğru planlandığında hem bakım yükünü hem de operasyonel karmaşıklığı azaltır. Bu geçişin başarısı, veri envanterinin eksiksiz çıkarılmasına, Custom Options ve Bundle ürünlerin doğru stratejiyle eşlenmesine ve 301 yönlendirme haritasının SEO değerini koruyacak şekilde kurulmasına bağlıdır.
Magento veya Adobe Commerce mağazanızı Shopify'a taşımayı değerlendiriyorsanız, Nodus Works ile iletişime geçin; veri envanterinden go-live testine kadar süreci birlikte planlayalım.





