Özelleştirilmiş temanızın size pahalıya patladığının işaretleri
Kısa yanıt
Özelleştirilmiş bir Shopify teması, kod düzenlemeleri güncellemelerin, desteğin ve günlük değişikliklerin önüne geçtiğinde pahalıya patlamaya başlar. Shopify tema düzenleyicideki değişiklikleri güncellenmiş temaya kopyalar; ancak güncellemeyle çakışan kod düzenlemeleri dışarıda kalır ve Shopify Destek, önemli kod değişiklikleri içeren temalarda sorun gideremez. Geride kalan uygulama kodu, koda gömülü içerik ve atlanan güncellemeler en sık görülen işaretlerdir.
- Bir Theme Store teması güncellendiğinde tema düzenleyicide yapılan değişiklikler kopyalanır; kod düzenlemeleri ise yalnızca güncellemeyle çakışmıyorsa dahil edilir.
- Kod düzenlemeleri dahil edilemezse Shopify “Theme added: code edits could not be included” mesajını gösterir; Shopify güncellemeden önce özelleştirilmiş kodun bir kopyasını kaydetmeyi önerir.
- Shopify Destek, önemli kod değişiklikleri ya da üçüncü taraf kodu içeren temaları özelleştiremez ve bunlarda sorun gideremez.
- Bazı uygulamalar temaya, uygulama kaldırıldığında otomatik olarak silinmeyen kod ekler.
- Theme app extension olarak geliştirilen uygulamalar tema kodunu düzenlemez; Shopify’a göre bu, işleri bozan değişiklik riskini azaltır.
- Shopify, iç içe geçmiş Liquid döngülerini yüksek time to first byte’ın (TTFB) en yaygın nedeni olarak gösterir; bu süre katalog büyüklüğüyle karesel olarak artar.
Neredeyse her Shopify mağazası temasını düzenler: burada özel bir bölüm, şurada bir uygulama snippet’i, iki yıl önce bir freelancer’ın yaptığı bir düzeltme. Bunların hiçbiri tek başına sorun değil. Sorun, düzenlemeler birinin belgeleyebileceğinden hızlı birikmeye başladığında ve tema, işletmenin neyi ne zaman değiştirebileceğini belirler hâle geldiğinde ortaya çıkar.
Tema düzenleyici değişiklikleri ve kod düzenlemeleri
Maliyetin çoğunu belirleyen ayrım, değişikliğin nerede yapıldığıdır. Shopify bir Theme Store temasının yeni sürümünü yayınladığında bunu taslak temalarınıza ekleyebilirsiniz ve tema düzenleyicide yapılan her şey kopyalanır: ayarlar ile bölümlerin ve blokların eklenmesi, yeniden sıralanması, kaldırılması ya da gizlenmesi.
Kod düzenlemeleri farklıdır. Yalnızca güncellemeyle çakışmıyorlarsa aktarılırlar. Çakışıyorlarsa Shopify temayı “Theme added: code edits could not be included” mesajıyla ekler; kod düzenleme kılavuzu da uyumsuz değişikliklerin güncellenmiş kopyada tamamen kaldırıldığını belirtir. Shopify’ın önerisi, güncellemeden önce özelleştirilmiş kodun bir kopyasını kaydetmektir. Bundan ayrı olarak Shopify, görünümü, içeriği ya da ayarları değiştirmeden hata veya güvenlik sorunlarını gideren otomatik güncellemeler de gönderebilir.
Yani çoğunlukla düzenleyicide özelleştirilmiş bir tema güncelleme yolunda kalır. Çoğunlukla kodda özelleştirilmiş bir tema ise o yoldan yavaş yavaş çıkar.
Özelleştirmenin size pahalıya patladığını gösteren sekiz işaret
- Tema güncellemelerini atlıyorsunuz. Kimse düzenlemeleri yeniden yapmak istemediği için tema birkaç sürüm geride. Sonraki sürümlerdeki yeni özellikler ve düzeltmeler size ulaşmıyor.
- Neyin değiştirildiğini kimse söyleyemiyor. Hangi dosyaların orijinal temadan farklı olduğuna dair bir kayıt yok. Shopify’ın Timeline görünümü dosyaları tek tek geri yükler, silinmiş dosyaları kurtaramaz ve geçmişi sınırlıdır; yani sürüm kontrolünün yerini tutmaz.
- Tema listeniz yedekleme sisteminiz olmuş. Her biri “iyi sürüm” tahmini olan çoğaltılmış temalar, değişikliklerin başka hiçbir yerde takip edilmediğinin işaretidir.
- Kaldırdığınız uygulamalar hâlâ yükleniyor. Shopify, bazı uygulamaların temaya, uygulama kaldırıldığında silinmeyen kod eklediğini belirtir. Eski snippet’ler ve script’ler her sayfada çalışmaya ya da hata vermeye devam eder.
- Uygulamalar app block kullanmak yerine tema dosyalarını düzenliyor. Theme app extension olarak geliştirilen uygulamalar tema kodunu düzenlemez; Shopify’a göre bu, işleri bozan değişiklik riskini azaltır. Tema dosyalarına kod enjekte eden uygulamalar ise yığına ekleme yapar.
- Shopify Destek yardım edemiyor. Destek ekibi, önemli kod değişiklikleri ya da Partner’lar dahil üçüncü tarafların yazdığı kodu içeren temaları özelleştirmez ve bunlarda sorun gidermez. Her sorun bir geliştirici talebine dönüşür.
- Basit içerik değişiklikleri geliştirici gerektiriyor. Bölüm ayarları ya da metafield’lar (meta alanlar) yerine şablonlara gömülmüş metinler, görseller ya da ürün bilgileri, ekibin mağazayı kod düzenlemeden değiştiremeyeceği anlamına gelir.
- Katalog büyüdükçe sayfalar yavaşlıyor. Shopify, iç içe geçmiş Liquid döngülerini yüksek time to first byte’ın, yani sunucunun yanıt süresinin en yaygın nedeni olarak gösterir; bu döngüler katalog büyüklüğüyle karesel olarak büyür. Render’ı engelleyen uygulama script’leri de buna eklenir. Temayı suçlamadan önce saha verisine bakın; performans çalışması oradan başlar.
Pratikte maliyeti ne?
Maliyet nadiren tek bir fatura olarak görünür. Sürtünme olarak görünür: düzenleyicide beş dakika sürmesi gerekirken bir talep açtıran kampanya bannerı; bir yıl ertelenen bir güncelleme; temiz kaldırılamayan bir uygulama; kimse neyin nerede yüklendiğini bilmediği için izi sürülemeyen bir hız sorunu. Yukarıdaki işaretler, bu durumu kimsenin planlamadığı bir yeniden kuruluma dönüşmeden önce tanımanın yoludur.
Kendi başınıza yapabileceğiniz kısa bir denetim
- Temel temayı ve sürümünü belirleyin. Theme Store’daki aynı temanın en son sürümüyle karşılaştırın.
- Herhangi bir şeye dokunmadan önce canlı temayı çoğaltın; Shopify da kod düzenlemeden önce bunu önerir.
- Aynı sürümün temiz bir kopyasıyla farkını çıkarın. Değişen dosyaların listesi, gerçek özelleştirme envanterinizdir.
- Şimdiki ve geçmişteki tüm uygulamaları listeleyin ve tema kodunda artık kurulu olmayan uygulamalardan kalan snippet’leri ve script’leri arayın.
- Ekibin kendisi düzenlemek istediği, koda gömülü içerikleri işaretleyin.
- Yavaş şablonları saha verisinde kontrol edin, sonra bu şablonlarda iç içe döngüleri ve render’ı engelleyen script’leri arayın.
- Sonucu sürüm kontrolüne alın; böylece bir sonraki değişiklik bilinen bir durumdan başlar.
Temizlemek mi, yeniden düzenlemek mi, yeniden kurmak mı?
| Denetimin gösterdiği | Olağan cevap |
|---|---|
| Çoğu kendi bölümünde ya da snippet’inde ayrı duran birkaç düzenleme | Temayı koruyun. Düzenlemeleri belgeleyin ve güncellemeler mümkün kalsın diye özel bölümlere taşıyın. |
| Geride kalan uygulama kodu ve render’ı engelleyen script’ler | Temizleyin: ölü kodu kaldırın, kritik olmayan script’leri erteleyin, app block kullanan uygulamaları tercih edin. |
| Ekibin değiştirmesi gereken, koda gömülü içerik | Bölüm ayarlarına, metafield’lara ve metaobject’lere taşıyarak yeniden düzenleyin. |
| Temel şablonlar güncelleme yolu kalmayacak kadar yeniden yazılmış | Temanın güncel bir sürümüne ya da yeni bir temele geçmeyi ve özel kısımları bölüm olarak yeniden kurmayı düşünün. |
| Temanın yapısı ürünleri satıldıkları şekilde sunamıyor | Etkilenen şablonları yeniden kurmak yerinde olur; tam yeniden kurulum ise ancak sorun tüm yapıdaysa gerekir. |
Her satırdaki ilke aynı: değişiklikleri tema düzenleyicinin ve gelecekteki güncellemelerin birlikte yaşayabileceği yerlerde, yani özel bölümlerde, bloklarda, metafield’larda ve app block’larda tutun; temel dosyalarda doğrudan düzenlemeyi en aza indirin.
Bir sonraki değişiklik turunu ucuz tutmak
Aynı alışkanlıklar sorunu yeniden üretiyorsa bir kez temizlik yapmak işe yaramaz. Birkaç çalışma kuralı temayı güncelleme yolunda tutar:
- Yeni özellikler yeni dosyalara. Özel bir bölümü ya da snippet’i bir güncellemeden geçirmek, temel bir şablonun içine gömülmüş bir düzenlemeyi taşımaktan daha kolaydır.
- İçerik, ekibin düzenleyebileceği yere. Liquid’e yazılmış metin yerine bölüm ayarları, bloklar ve metafield’lar.
- Theme app extension olarak geliştirilmiş uygulamaları tercih edin. Tema kodunu düzenlemezler; bu yüzden onları kaldırmak tema dosyalarını taramak anlamına gelmez.
- Bir değişiklik günlüğü tutun. Her kod düzenlemesi için tek satır: ne değişti, neden ve hangi dosyada. Böylece bir sonraki güncelleme kazı çalışması olmaktan çıkar, kontrol listesine döner.
- Her tema sürümünü bir taslak kopyada deneyin. Yeni sürümü taslak temalarınıza ekleyin, hangi düzenlemelerin aktarıldığını kontrol edin ve ertelemek yerine bilinçli bir karar verin.
- Eklemeden önce kaldırın. Bir uygulamanın yerine yenisi gelecekse, sonrakini kurmadan önce temada eskisinden kalan kodu kontrol edin.
Bunların hiçbiri büyük bir bütçe gerektirmez. Gereken, temadan sorumlu bir kişi ve her değişikliğin iz bırakması kuralıdır.
Lintel’in rolü
Bu, Shopify tema mühendisliği işidir: özel bölümler ve şablonlar, metafield tabanlı içerik ve tema düzeyinde performans; hepsi mağazanın güncellenmeye devam edebileceği şekilde kurulur. 2019’dan bu yana 65’ten fazla Shopify mağazasında çalıştık; bunlara Transfer Kingdom’daki Liquid tema çalışmaları da dahil. Bu çalışmalara bakın.
Sık sorulan sorular
- Shopify temamı güncellemek özelleştirmelerimi siler mi?
- Tema düzenleyicide yapılan değişiklikler güncellenmiş temaya kopyalanır. Kod düzenlemeleri ise yalnızca güncellemeyle çakışmıyorsa dahil edilir; aksi hâlde Shopify “code edits could not be included” mesajını gösterir. Önce özelleştirilmiş kodun bir kopyasını kaydedin.
- Shopify Destek neden temam konusunda yardım etmiyor?
- Shopify Destek, önemli kod değişiklikleri ya da Shopify Partner’larından gelen kod dahil üçüncü taraf kodu içeren temaları özelleştirmez ve bunlarda sorun gidermez.
- Bir uygulamayı kaldırmak kodunu temamdan da siler mi?
- Her zaman değil. Shopify, bazı uygulamaların otomatik olarak silinmeyen kod eklediğini belirtir. Kaldırmadan önce uygulamanın talimatlarına bakın ya da geliştiricisine sorun, sonra temada kalıntı arayın.
- Temamı sıfırdan yeniden mi kurmalıyım?
- Yalnızca sorun temanın yapısıysa. Geride kalan kod, koda gömülü içerik ve ayrı duran düzenlemeler genellikle kullandığınız temada temizlenebilir ya da yeniden düzenlenebilir.
