Shopify mağazası olan bir satıcı uygulama teklifi aldığında karşısına genelde iki fiyat çıkar ve aradaki farkı kimse net anlatmaz. Ucuz olanı mağazanın verisini kendi tarafına kopyalar, uygulamayı o kopyanın üzerinde çalıştırır. Pahalı olanı uygulamayı Shopify'ın kendi arayüzlerine bağlar. Ekranda ikisi de aynı görünür; fark, ilk iade talebinde, ilk kampanya gününde ve ilk fiyat güncellemesinde ortaya çıkar.
Bu yazı Shopify'a özgü tarafı anlatıyor: katalog ve sepet hangi arayüz üzerinden okunur, ödeme neden Shopify tarafında bırakılmalı, müşteri hesabı nasıl ortak kalır, hangi olaylar webhook ile dinlenir ve fiyatı gerçekten neyin belirlediği. Altyapıdan bağımsız genel mobil başlıkları (teknoloji seçimi, mağaza inceleme süreci, red sebepleri) mobil uygulama yaptırma rehberinde ayrıca yazdık.
Shopify mobil uygulama nedir, mağazaya nasıl bağlanır?
Shopify mobil uygulama, mağazanızın kataloğunu ve müşteri verisini Shopify üzerinden okuyup iOS ve Android tarafında cihaza kurulu ekranlarla sunan uygulamadır. Burada anahtar kelime okumak: uygulama veriyi kendine kopyalamaz, her ekranda kaynağa sorar.
Shopify tarafında bu iş için mağaza vitrinine yönelik bir GraphQL arayüzü bulunur; ürün, koleksiyon, varyant, stok durumu, fiyat, arama sonucu ve sepet işlemleri buradan yürür. GraphQL olması pratikte iki şey kazandırır. Birincisi, her ekran yalnızca ihtiyacı olan alanları ister; ürün listesinde açıklama metnini indirmezsiniz, bu da mobil veride gözle görülür fark yaratır. İkincisi, bir ekranın ihtiyacı tek istekte toplanabilir; ürün detayında varyantlar, görseller, stok ve ilgili koleksiyon için ayrı ayrı istek atmak gerekmez.
Sepet de aynı arayüz üzerinde tutulur. Bunun anlamı şudur: uygulamada oluşturulan sepet Shopify'ın kendi sepeti olur, uygulamanın kendi hesapladığı bir liste değil. Ürün eklendiğinde indirim, kargo eşiği ve stok kontrolü Shopify tarafında hesaplanır; uygulama sonucu gösterir. Kampanya kurgunuzu değiştirdiğinizde uygulamada ayrıca bir şey yapmanız gerekmemesinin sebebi budur.
Ödemenin Shopify tarafında kalması neden pazarlıksız bir madde?
Uygulama projelerinde en riskli karar, ödeme adımının nerede tamamlanacağıdır. Ödeme akışını uygulama içinde yeniden yazan çözümlerde şu kalemlerin hepsi ikinci kez, elle kurulur: taksit tabloları, kargo kuralları ve ücretsiz kargo eşiği, indirim kodu doğrulaması, hediye kartı, vergi hesabı, adres doğrulama, ödeme yöntemi seçimi ve dolandırıcılık kontrolü. Her biri bugün mağazanızda çalışıyor; uygulamada sıfırdan yazıldığı anda ikisini birbiriyle uyumlu tutmak sizin işiniz haline gelir.
Shopify bu sorunu resmî bir yolla çözüyor: uygulamanın sepetini Shopify'ın kendi ödeme akışına devredip bu akışı uygulama içinde, native bir alt panel içinde açmak. Shopify'ın iOS ve Android için yayınladığı Checkout Sheet Kit tam olarak bunu yapar. Kullanıcı uygulamadan çıkmış hissetmez; ekranın alt kısmından açılan panelde ödemesini tamamlar, işlem bitince uygulamaya döner. Arkada ise ödeme Shopify checkout'unda tamamlanmıştır.
Bunun operasyonel karşılığı listesi kısa ama önemlidir:
- Kayıtlı ödeme yöntemleri ve hızlandırılmış ödeme seçenekleri uygulamada da çalışır; müşteri kart bilgisini yeniden girmez.
- İndirim kodu, hediye kartı ve otomatik indirimler sitedeki kurallarla birebir aynı davranır.
- Kargo kuralları ve teslimat seçenekleri tek yerde tanımlı kalır.
- Sipariş, web siparişleriyle aynı listeye ve aynı numaralandırmaya düşer; iade ve fatura süreci ikiye bölünmez.
- Ödeme sağlayıcınızı değiştirdiğinizde uygulamada hiçbir şey yapmanız gerekmez.
Fiziksel ürün satan e-ticaret uygulamalarında mağazaların uygulama içi satın alma zorunluluğu bulunmadığı için bu kurgu mağaza politikalarıyla da uyumludur; tahsilat kendi ödeme altyapınızdan geçmeye devam eder.
Müşteri hesabı ortak kalır: uygulamada ikinci üyelik yoktur
Satıcıların ilk sorduğu soru genellikle şudur: "Sitede üye olan müşteri uygulamada yeniden kayıt olacak mı?" Shopify tarafında bunun cevabı mimariyle belirlenir. Uygulama oturumu Shopify müşteri hesabı üzerinden açarsa müşteri kaydı tek kalır; uygulama kendi kullanıcı tablosunu kurarsa aynı kişi iki ayrı kayıt olur.
Doğru kurulumda giriş, kayıt, parola sıfırlama, e-posta doğrulama ve hesap silme akışlarının hepsi Shopify tarafındaki hesap yapısına bağlanır. Bunun görünen sonuçları şunlardır: müşterinin adres defteri her iki kanalda aynıdır, sipariş geçmişi tek listedir, sadakat ve segment hesapları bölünmez, pazarlama izinleri tek yerde yönetilir. Görünmeyen bir sonucu daha var: müşteri hizmetleri ekibi "siparişinizi uygulamadan mı verdiniz?" diye sormak zorunda kalmaz.
Hesap silme maddesi özellikle önemlidir. Mağazalar, uygulama içinden hesap oluşturulabiliyorsa uygulama içinden hesap silinebilmesini de bekliyor. Bu akış Shopify tarafındaki müşteri kaydına da işlemelidir; yalnızca uygulamadan çıkış yapmak yeterli değildir.
Shopify uygulama entegrasyonu: hangi parça nereye bağlanır?
Bir Shopify uygulama entegrasyonu tek bir bağlantı değil, birkaç ayrı katmandır. Hangi işin hangi katmana düştüğü baştan netleşirse proje ortasında sürpriz çıkmaz.
| İş | Nereden yürür | Neden orada |
|---|---|---|
| Katalog, arama, koleksiyon, varyant, stok | Vitrin GraphQL arayüzü | Müşteri adına, sınırlı yetkiyle okunması gereken herkese açık veri |
| Sepet oluşturma ve güncelleme | Vitrin GraphQL arayüzü | İndirim ve stok hesabının Shopify tarafında yapılması için |
| Ödeme adımı | Shopify checkout (native panel içinde) | Kampanya, kargo, vergi ve ödeme kurallarının tek kaynakta kalması |
| Giriş, kayıt, sipariş geçmişi | Shopify müşteri hesabı | Müşteri kaydının tekil kalması |
| Sipariş, iade, stok ve fiyat değişimi bildirimi | Webhook abonelikleri | Sabit aralıklı senkron yerine olay tabanlı tazeleme |
| Uygulamaya özel içerik (beden tablosu, kullanım videosu, rozet) | Metafield | İçeriğin Shopify panelinde durması, uygulamanın yalnızca okuması |
| Mağaza alan adı üzerinden çalışması gereken özel uçlar | App proxy | Aynı alan adı altında, oturumla uyumlu istek yapılabilmesi |
Bu tablodaki en çok atlanan satır webhook satırıdır. Uygulamayı her açılışta tüm kataloğu tazeleyecek şekilde kurmak hem yavaştır hem kotayı gereksiz tüketir. Doğru kurgu, uygulamanın veriyi kısa süreli önbelleklemesi ve sipariş, stok, fiyat gibi olaylar geldiğinde ilgili kaydı hedefli biçimde tazelemesidir. Vitrin arayüzünün istek kotası sabit bir sayıya değil, isteğin karmaşıklığına göre hesaplanan bir maliyete bağlıdır; yani ekran başına on ayrı küçük istek atmak yerine tek ve iyi yazılmış bir sorgu kurmak hem hızlı hem kota dostudur.
Shopify mağaza uygulaması: sitedeki kurgu birebir taşınmaz
Bir Shopify mağaza uygulaması, mağazanın mobil tarayıcı görünümünün kopyası değildir. Veri ortaktır, arayüz yeniden kurgulanır. Shopify tarafında bu farkın somutlaştığı yerler şunlar:
- Seçenek ve varyant modeli. Shopify'da ürünler seçenek kombinasyonlarından varyant üretir. Web tarafında bunu açılır liste ile geçiştirmek mümkündür; mobilde renk seçimi görsel, beden seçimi alt panel olmalı, tükenmiş kombinasyonlar seçilemez şekilde işaretlenmelidir. Bunun tasarım değil satış etkisi vardır.
- Koleksiyon yerine arama. Mobilde kullanıcı derin koleksiyon ağacında gezmez, yazar. Bu yüzden arama kutusunun her ekrandan erişilebilir olması, yazarken öneri vermesi ve yazım hatasını tolere etmesi gerekir. Katalog büyükse aramayı anlam tabanlı arama ile güçlendirmek uygulamada siteye göre daha fazla iş görür.
- Çoklu pazar ve para birimi. Birden fazla ülkeye satıyorsanız uygulamanın hangi pazarda çalıştığını baştan bilmesi gerekir; fiyat, para birimi ve teslimat seçenekleri buna bağlıdır. Bu ayarın uygulama içinde ayrı bir liste olarak tutulması, ilk fiyat güncellemesinde tutarsızlık üretir.
- Sipariş takibi ilk ekranlarda. Uygulamayı açma sebeplerinin başında sipariş durumu gelir. Shopify tarafındaki sipariş ve gönderi bilgisi uygulamada menü içine gömülmemeli, alt sekmelerden birinde durmalıdır.
Bir de tersi geçerli bir kural var: iş kuralları uygulamada değişmez. Uygulamaya özel indirim vermek isterseniz bunu uygulama içinde ayrı bir hesaplama yazarak değil, mevcut indirim yapınızda kanal ayrımı kurarak çözmek gerekir.
Shopify mobil uygulama yaptırmak: süreç nasıl ilerliyor?
Shopify mobil uygulama yaptırmak isteyen bir mağazada süreç, tasarımdan değil veri temizliğinden başlar. Uygulamanın kalitesini belirleyen ilk şey kataloğun düzenidir.
- Katalog denetimi. Varyant barkod ve stok kodu alanları, varyant-görsel eşleşmeleri, seçenek adlarının tutarlılığı (bir üründe "Renk", diğerinde "renk seçimi" olmamalı) ve koleksiyon ağacının derinliği kontrol edilir.
- Kapsam görüşmesi. Hangi ekranlar olacak, sadakat veya abonelik var mı, kaç dil ve para birimi çalışacak, bildirim segmentli mi olacak; bunlar tasarım başlamadan yazılı hale gelir.
- Arayüz tasarımı. Hazır şablona logo koymak yerine ana sayfa kurgusundan boş sepet ekranına kadar markaya göre çizilir. Uygulama sitenizin devamı gibi durmalıdır.
- Geliştirme ve entegrasyon. Veri katmanı, sepet, müşteri hesabı, ödeme paneli ve bildirim altyapısı bağlanır.
- Gerçek cihazda test. Zayıf bağlantı, izin reddi, oturum düşmesi ve stok tükenmesi gibi gerçek durumlar test edilir. Uygulamada en çok şikayet üreten yer bu durumların tasarlanmamış olmasıdır.
- Mağaza gönderimi. Geliştirici hesapları sizin adınıza açılır, gönderimi biz yürütürüz. Süreç ve red sebeplerinin tamamı ayrı yazıda.
- Lansman ve ölçüm. Uygulamanın mağazada olması indirileceği anlamına gelmez; sitede, sipariş sonrası akışta ve e-postada duyurulması gerekir.
Mağazanız henüz kurulum aşamasındaysa sıralamayı tersine çevirmeyin: önce mağazanın kendisi oturmalı. Shopify mağaza kurulumu yazısındaki katalog ve kanal ayarları, uygulamanın da temelini oluşturur.
Shopify mobil uygulama fiyatları neye göre değişiyor?
Rakam vermek yerine fiyatı hangi kalemlerin oluşturduğunu yazmak daha dürüst. Aşağıdaki tablo, Shopify tarafında bir uygulama projesinin bütçesini gerçekten hareket ettiren kalemleri gösteriyor.
| Kalem | Bütçeye etkisi | Neden |
|---|---|---|
| Standart katalog + sepet + checkout | Taban | Shopify tarafı hazır; iş arayüz ve uygulama geliştirmede |
| Markaya özel tasarım derinliği | Orta | Şablon uyarlama ile sıfırdan ekran kurgusu arasında ciddi fark var |
| Abonelik, paket ürün, ön sipariş gibi uygulamalar | Yüksek | Checkout davranışını değiştirirler; her biri ayrı test ve uyarlama gerektirir |
| Çoklu dil ve para birimi | Orta | Metin yönetimi, biçimlendirme ve pazar bazlı fiyat mantığı eklenir |
| Sadakat programı / puan sistemi | Orta-yüksek | Genelde üçüncü taraf bir sistemle ayrıca entegrasyon gerekir |
| Segmentli bildirim ve otomasyon | Orta | Toplu duyuru kolaydır; davranışa göre gönderim ayrı bir kurgudur |
| Yayın sonrası bakım | Süreklilik | İşletim sistemi sürümleri ve mağaza politikaları hiç yeni özellik istemeseniz bile iş üretir |
Teklifleri karşılaştırırken tek bir soru çoğu farkı açığa çıkarır: uygulama sepeti ve müşteriyi nerede tutuyor? Cevap "bizim sunucumuzda kopya duruyor" ise ucuz görünen teklif, ilerleyen aylarda stok gecikmesi ve müşteri verisi bölünmesi olarak geri döner. Bu iki modelin operasyonel farkını e-ticaret mobil uygulaması yazısında ayrıntılı karşılaştırdık.
Mağazaya entegre uygulama mı, sıfırdan isteğe özel uygulama mı?
Bizde iki ayrı iş kolu var ve karışmaları projeyi zorlaştırıyor. Birincisi burada anlatılan iş: mevcut Shopify mağazanızın üzerine kurulan, üye, sepet ve sipariş verisini mağazayla ortak tutan uygulama. Burada Shopify iş kurallarının sahibi olmaya devam eder, uygulama bir görüntüleme ve etkileşim kanalıdır.
İkincisi, e-ticaret dışına çıkan ya da Shopify'ın veri modeline sığmayan işler: bayi sipariş sistemi, saha ekibi uygulaması, randevu ve üyelik yönetimi, cihazla konuşan uygulamalar. Bunlarda uygulamanın kendi sunucu tarafı yazılır, veri modeli sıfırdan kurulur. Bu iki işin bütçesi, süresi ve bakım şekli birbirine benzemez; ihtiyacınız hangi tarafta, ilk görüşmede netleştirmek gerekir. Mobil uygulama hizmet sayfamızda iki kolun kapsamını ayrı ayrı yazdık.
Shopify tarafında sık karşılaşılan tuzaklar
| Belirti | Gerçek sebep | Ne yapmalı |
|---|---|---|
| Uygulamada indirim kodu geçmiyor | Sepet uygulama içinde ayrı hesaplanıyor, Shopify sepeti kullanılmıyor | Sepeti Shopify tarafında oluşturun, indirimi checkout hesaplasın |
| Aynı müşteri iki kayıt görünüyor | Uygulama kendi kullanıcı tablosunu tutuyor | Oturumu Shopify müşteri hesabına bağlayın |
| Stokta olmayan ürün satılıyor | Katalog uygulama tarafına kopyalanmış, senkron gecikiyor | Stok bilgisini sepete ekleme anında kaynaktan doğrulayın |
| Ürün listesi mobilde yavaş açılıyor | Liste sorgusunda gereksiz alanlar isteniyor, görseller tam boyutta iniyor | Sorguyu ekran ihtiyacına indirin, görselleri boyutlandırılmış çekin |
| Kampanya günü uygulama hata veriyor | Ekran başına çok sayıda küçük istek, kota tavanına vuruyor | Sorguları birleştirin, kısa süreli önbellek kurun |
| Abonelik ürünleri uygulamada satın alınamıyor | Checkout davranışını değiştiren uygulama kapsam dışı bırakılmış | Bu tip uygulamaları kapsam görüşmesinde baştan listeleyin |
Bir ek not: uygulamanın hızlı hissettirmesi sitenizin hızını önemsiz kılmaz. Ziyaretçilerin çoğu hâlâ siteden gelir. Mağaza hızlandırma rehberindeki işleri uygulama projesinin yerine değil, yanına koyun.
Özet
Shopify tarafında iyi bir mobil uygulamanın tarifi kısa: katalog ve sepet Shopify'ın vitrin arayüzünden okunur, ödeme Shopify checkout'unda tamamlanır, oturum Shopify müşteri hesabına bağlanır, senkron webhook ile olay bazlı yapılır. Bu dört madde tutarsa müşteri yeniden üye olmaz, siparişler tek listeye düşer, kampanya kuralları ikiye bölünmez ve siz ikinci bir panel yönetmezsiniz. Tutmazsa uygulama, mağazanızın yanında duran ve zamanla ondan uzaklaşan ikinci bir dükkâna dönüşür. Bildirim tarafını kurgularken push bildirim yazısındaki izin ve frekans dengesine bakın; uygulamanın en değerli kanalı budur ve kötü kullanıldığında geri kazanılmaz. Mağazanızın uygulamaya hazır olup olmadığını konuşmak isterseniz destek@stools.digital adresinden yazabilirsiniz.