Hyvä artık Magento 2.4.9’da ve Mage-OS’ta doğrudan (native) çalışıyor. İkisini de test ettik. Mağazanız için ne anlama geliyor →
Kısaca
Bir eklentinin Hyvä uyumluluk modülü yoksa beş gerçekçi seçeneğiniz vardır: uyumluluk modülünü kendiniz yazmak, eklentiyi değiştirmek, yalnızca kullandığınız kısmı yeniden yapmak, o sayfayı Hyvä’nın yedek (fallback) yöntemiyle Luma’da tutmak ya da eklentiyi kaldırmak. Doğru seçim, eklentinin ne kadar ön yüz kodu içerdiğine ve satışlarınız için ne kadar önemli olduğuna bağlıdır.
Eklenti incelemesini yaptınız ve modüllerin çoğu sorunsuz. Sonra bir ya da iki önemli eklentinin hiç Hyvä uyumluluk modülü olmadığı ortaya çıkıyor.


Bu normaldir ve nadiren bir Hyvä projesini durdurmak için yeterli bir sebeptir. Bu yazıda bunun neden olduğunu ve neler yapabileceğinizi anlatıyoruz.
Bazı eklentiler Hyvä'da neden çalışmaz?
Bir Magento 2 eklentisi genellikle iki kısımdan oluşur. Arka uç kısmı PHP mantığını, veritabanı tablolarını, yönetim paneli ayarlarını ve observer'ları içerir.
Ön yüz kısmı ise şablonları, layout XML'i, JavaScript'i ve stilleri içerir. Luma'da bu JavaScript genellikle RequireJS modülleri, jQuery widget'ları ya da Knockout bileşenleri olarak yazılır.
Hyvä bu yapının tamamını kaldırır. Böylece arka uç kısmı çalışmaya devam eder, ancak ön yüz kısmının üzerinde çalışacağı bir şey kalmaz. İki yapı hakkında daha fazlasını şu yazıda okuyabilirsiniz: Alpine.js ve Tailwind, RequireJS ve Knockout'un yerini nasıl alıyor?.
Uyumluluk modülü tam olarak bu boşluğu kapatır. Eklentinin ön yüzünü Alpine.js ve Tailwind CSS ile yeniden yazar; orijinal arka uç ise yerinde kalır.
Uyumluluk modülü nasıl çalışır?
Uyumluluk modülü küçük ve ayrı bir Magento modülüdür. Orijinal eklentinin koduna dokunmaz; bu sayede orijinal eklenti Composer üzerinden güncellenmeye devam edebilir.
Hyvä bunun için bir yedek (fallback) mekanizması sunar. Uyumluluk modülü kendini orijinal modülün Hyvä sürümü olarak kaydeder; Hyvä da şablonları önce uyumluluk modülünde arar.
<type name="Hyva\CompatModuleFallback\Model\CompatModuleRegistry">
<arguments>
<argument name="compatModules" xsi:type="array">
<item name="vendor_module_map" xsi:type="array">
<item name="original_module" xsi:type="string">Vendor_Module</item>
<item name="compat_module" xsi:type="string">Hyva_VendorModule</item>
</item>
</argument>
</arguments>
</type>Bu kod parçası, uyumluluk modülünün şu dosyasına eklenir: etc/frontend/di.xml. Ardından modülün içinde, gereken şablonların Hyvä sürümlerini Knockout ya da jQuery yerine Alpine.js ile yazarsınız.
Layout XML ile orijinal JavaScript de kaldırılabilir; böylece Hyvä sayfasında hiç yüklenmez.
1. seçenek: uyumluluk modülünü yazmak
Eklenti önemliyse ve ön yüzü orta büyüklükteyse en temiz seçenek budur.
- Eklentiyi, arka uç mantığını ve güncelleme yolunu korursunuz.
- Yalnızca mağaza ön yüzü kısmı, Hyvä temasının geri kalanıyla aynı tarzda yeniden yazılır.
- Sonuç hafiftir, çünkü eski script’leri yüklemek yerine Hyvä’nın yaklaşımını izler.
Gereken efor, orijinal ön yüzün ne kadar JavaScript içerdiğine bağlıdır. Basit bir widget küçük bir iştir. Karmaşık bir ürün yapılandırıcı ya da ödeme adımı ise daha büyük bir iştir.
Kendiniz yazmadan önce, eklenti üreticisine bir Hyvä sürümü planlayıp planlamadığını sorun. Artık birçok üretici kendi sürümünü sunuyor.
2. seçenek: eklentiyi değiştirmek
Bazen en iyi uyumluluk modülü başka bir eklentidir. Aynı işi yapan ve zaten Hyvä uyumlu olan başka bir modül varsa, ona geçmek uyarlamaktan daha ucuz ve daha güvenli olabilir.
Bu yöntem slider, açılır pencere, sosyal medya ile giriş, ürün etiketleri ya da basit arama eklentileri gibi yaygın özelliklerde iyi sonuç verir.
Geçmeden önce veri taşımayı kontrol edin. Ayarları, içerikleri ya da müşteri verilerini bir modülden diğerine taşımak, işin gözden kaçan kısmı olabilir.
3. seçenek: yalnızca kullandığınız kısmı yeniden yazmak
Büyük eklentiler çoğu zaman bir mağazanın gerçekte kullandığından çok daha fazlasını yapar. Bir mağaza, özellik dolu bir modülün yalnızca tek bir widget'ını kullanıyor olabilir.
Bu durumda yalnızca o özelliği doğrudan Hyvä temasında ya da küçük bir özel modül olarak geliştirmek mantıklı olabilir. Magento 2 eklenti geliştirme çalışmalarımız çoğu zaman tam da bu soruyla başlar: Gerçekten hangi kısma ihtiyacınız var?
Sonuç genellikle tam bir uyarlamadan daha hafif ve bakımı daha kolay olur.
4. seçenek: bir sayfayı şimdilik Luma'da tutmak
Bunun klasik örneği ödeme sayfasıdır. Bir ödeme sağlayıcısının henüz Hyvä uyumlu entegrasyonu olmayabilir ve bir ödeme yöntemini kaybetmek kabul edilemez.
Hyvä bunun için bir yedek yaklaşım sunar. Seçilen sayfalar (çoğunlukla ödeme sayfası) Luma temasıyla oluşturulmaya devam ederken mağazanın geri kalanı Hyvä'da çalışır.
- Alışverişçiler ana sayfa, kategori ve ürün sayfalarında Hyvä hızından yararlanır.
- Ödeme sayfası, tüm ödeme yöntemleriyle birlikte eskisi gibi çalışmaya devam eder.
- Entegrasyon hazır olduğunda ödeme sayfasını daha sonra Hyvä'ya taşıyabilirsiniz.
Bu kalıcı bir çözüm değil, pratik bir köprüdür. Luma ödeme sayfası eski yapıyı yüklemeye devam eder; bu yüzden onu ne zaman ve nasıl taşıyacağınızı planlayın.
Özellikle ödeme sayfası için Hyvä Checkout'u ve diğer seçenekleri şu yazıda karşılaştırabilirsiniz: Hyvä Checkout'a geçmeye değer mi?.
5. seçenek: kaldırmak
İnceleme sırasında çoğu zaman artık kimsenin kullanmadığı eklentiler bulunur. Bazıları geçmişteki bir kampanya için kurulmuştur, bazıları ise Magento'nun artık kendi içinde sunduğu özellikleri tekrarlar.
Bunları kaldırmak, en kolay uyarlama yöntemidir. Ayrıca mağazayı daha hafif, daha güvenli ve upgrade'i daha kolay hale getirir.
Bir modülü kaldırmadan önce hala ihtiyaç duyduğunuz veri ya da ayar içermediğinden emin olun ve modülü yalnızca devre dışı bırakmak yerine Composer üzerinden düzgünce kaldırın.
Nasıl karar verilir?
Uyumluluk modülü olmayan her eklenti için dört soru sorun.
- Ödeme sayfası, sepet ya da ürün sayfaları gibi satışları doğrudan etkiliyor mu?
- Gerçekte ne kadar ön yüz JavaScript kodu içeriyor?
- Aynı işi yapan Hyvä uyumlu bir alternatif var mı?
- Tamamını mı kullanıyorsunuz, yoksa yalnızca küçük bir kısmını mı?
| Durum | Genellikle seçilen |
|---|---|
| Önemli, ön yüzü orta büyüklükte, iyi bir alternatifi yok | Uyumluluk modülünü yazın |
| Hyvä uyumlu alternatifleri olan yaygın bir özellik | Eklentiyi değiştirin |
| Büyük modül, küçük bir kısmı kullanılıyor | Yalnızca kullandığınız kısmı yeniden yazın |
| Hyvä entegrasyonu olmayan ödeme yöntemi | Entegrasyonu geliştirin ya da ödeme sayfasını şimdilik Luma'da tutun |
| Artık kullanılmıyor | Kaldırın |
Gerçek projelerin çoğunda bu beş seçeneğin bir karışımı kullanılır. Hyvä geçiş kontrol listesi ile amaç, bu kararı geliştirme başlamadan önce her modül için bir kez vermektir.
SSS
Uyumluluk modülü orijinal eklentiyi değiştirir mi?
Hayır. Uyumluluk modülü, yalnızca ön yüz şablonlarının ve kodlarının yerini alan ayrı bir modüldür. Orijinal eklenti her zamanki gibi güncellenmeye devam edebilir.
Eski bir eklentiyi çalıştırmak için Hyvä'da RequireJS'i yükleyebilir miyim?
Teoride mümkün; ancak Hyvä'nın kaldırdığı ağırlığı geri getirir ve çoğu zaman fark edilmesi zor şekillerde sorun çıkarır. Düzgün bir uyarlama ya da Luma yedeği daha güvenlidir.
Üretici daha sonra kendi Hyvä sürümünü yayınlarsa ne olur?
Bu durumda üreticinin sürümüne geçip kendi uyumluluk modülünüzü devreden çıkarabilirsiniz. Uyarlamayı ayrı tutmak bu geçişi kolaylaştırır.
Mevcut modülleri Hyvä uyumlu hale getiriyor, gerektiğinde yenilerini geliştiriyoruz. Geçişinizi planlamak için Hyvä tema geliştirme hizmetlerimize göz atın.


