Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

PrestaShop 1.6’dan 8’e: 1.7 üzerinden mi, sıfırdan mı

Resmi güncelleme aracıyla PrestaShop 1.6 ile 8 arasında doğrudan bir atlama yoktur: en azından geçici olarak 1.7 üzerinden geçmek ya da sıfır kurulumdan başlayıp yalnızca verileri taşımak gerekir. İşte iki yöntem, yol boyunca neyin bozulduğu ve aralarında nasıl seçim yaptığım.

Sorunumu anlatayım Mesaj gönderin

PrestaShop 8’e neden kısayol olmadığı

Resmi autoupgrade eklentisi (eski adıyla 1-Click Upgrade), dosyaları ve veritabanını yedekler, ardından bir ana sürümden diğerine geçmek için gereken şema güncelleme betiklerini çalıştırır. Bu aracın 1.6’dan doğrudan 8’e atlayabilen bir sürümü yoktur: veritabanı yapısı her ana sürümde değişir, yeni tablolar ve yeniden adlandırılmış sütunlar eklenir; resmi betikler de tek seferde tek bir adım için yazılmıştır.

İki yöntem mümkündür. Her adımda tam yedekleme ve tema yeniden inşasıyla geçişleri zincirlemek: 1.6’dan 1.7’ye, ardından 1.7’den 8’e. Ya da sıfır bir PrestaShop 8 kurulumundan başlayıp yalnızca verileri (katalog, müşteriler, siparişler) taşımak: 1.6 teması ve eklentilerinin zaten yeniden yapılması gerekiyorsa genellikle daha hızlıdır.

PHP açısından, PrestaShop 8 en az 7.2.5 gerektirir; PHP 8.0 ve 8.1’i destekler, Eylül 2024’ten itibaren de 8.2’yi. 1.6 ise en fazla PHP 7.1’e kadar çalışır: PHP sürüm atlaması, ayrı bir seçenek değil, geçişin kendisinin bir parçasıdır.

1.6’dan 8’e geçişte tipik olarak neler bozulur

  • Hâlâ displayPayment (1.6) hook’unu kullanan bir ödeme eklentisi, yalnızca paymentOptions’ın çağrıldığı 8’de ödeme adımında artık hiç görünmez.
  • Süslü parantezli eski dizi erişim söz dizimini kullanan eklentiler (örneğin $array{0}), PHP 8’de kaldırıldığı için ölümcül hatalar verir.
  • Yalnızca Default ve Smarty üzerine kurulu 1.6 teması, 8’in hibrit Symfony/Twig mimarisinde doğrudan bir karşılığa sahip değildir: kopyalanması değil, yeniden inşa edilmesi gerekir.
  • Yalnızca 1.7.8’e kadar uyumluluk bildiren bir eklenti (config.xml, $ps_versions_compliancy), PrestaShop 8’e kurulumda engellenir.

Yöntemi nasıl seçiyor ve geçişi nasıl yürütüyorum

  1. Mevcut ekosistemin denetimi

    Eklentileri, sürümlerini ve 8 ile bildirilen uyumluluğunu listeliyor, temanın durumunu da değerlendiriyorum.

  2. Yöntemin seçilmesi

    Tema ve eklentilerin geçme ihtimali yüksekse zincirleme (1.6 → 1.7 → 8); yeniden inşa zaten kaçınılmazsa sıfır bir 8 kurulumu.

  3. Her adımdan önce tam yedekleme

    Dosyalar, tam veritabanı dökümü ve kritik eklentilerin yapılandırması, autoupgrade’in kendi yedek klasörünün dışında yedeklenir.

  4. Test ortamında geçiş veya veri aktarımı

    Asla üretimde değil. Bir sonrakine geçmeden önce her adımı doğruluyorum.

  5. Temanın yeniden inşası ve uyumsuz eklentilerin değiştirilmesi

    Tema Classic üzerine yeniden inşa edilir; geçiş yapamayan her eklenti için çalışan bir karşılık arıyorum ya da yeniden yazıyorum.

  6. Kontrol, ardından üretime geçiş

    Test mağazası onaylandıktan sonra, geçişi düşük trafikli bir zaman dilimine planlıyorum.

Neyi yedekliyorum, hiçbir şeyin eksik olmadığını nasıl kontrol ediyorum

İlk adımdan önce, tüm dosya ağacını, tam bir veritabanı dökümünü, eklentilerin sürümleriyle kesin listesini ve ödeme ile taşıyıcı eklentisi yapılandırmasını yedekliyorum. Bu ilk yedek, autoupgrade’in her ara adımda oluşturduğu yedeklerden bağımsız tutulur; çünkü bunlar üzerine yazılabilir.

Son geçişten sonra, sipariş, müşteri ve katalog ürünü sayısının önceki durumla eşleştiğini, ana URL’lerin doğru durum koduyla yanıt verdiğini, yönlendirmelerin çalıştığını kontrol ediyor ve paymentOptions hook’uyla çalıştığını doğrulamak için eksiksiz bir test siparişi veriyorum.

config.xml
<compatibility>
  <min>1.7</min>
  <max>8.99.99</max>
</compatibility>

Bu geçişi hazırlamak veya tamamlamak için

  • PHP 5.2 – 7.1 PrestaShop 1.6
  • En az PHP 7.2.5, 8.2’ye kadar PrestaShop 8

devdocs.prestashop-project.org

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

version-depart
version-arrivee
catalogue
modules-tiers (facultatif)
conserver (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

PrestaShop 1.6’dan güncelleme eklentisiyle doğrudan 8’e geçebilir miyim?
Tek bir çalıştırmayla değil. autoupgrade basamakları sırayla geçer ve hiçbirini atlamaz; 1.6’yı işleyebilen eklenti sürümü de 1.7’de durur: önce 1.7’ye ulaşmak, sonra 8’e gitmek için aracı yeniden çalıştırmak gerekir. Diğer yol, sıfır bir 8 kurulumundan başlayıp verileri ayrıca taşımaktır.
1.7 üzerinden mi geçmek daha iyi, yoksa sıfır bir 8 kurulumundan mı başlamalı?
Tema ve eklentilerin durumuna bağlıdır. Çoğu ara adımları geçme ihtimaline sahipse geçişleri zincirlerim. Zaten yeniden yapılacaklarsa, sıfır bir 8’den başlayıp yalnızca verileri taşımak genellikle daha hızlıdır.
PrestaShop 8 için hangi PHP sürümü gerekir?
En az 7.2.5. PHP 8.0 ve 8.1 çıkıştan itibaren, PHP 8.2 Eylül 2024’ten itibaren desteklenir.
1.6 eklentilerim PrestaShop 8’de çalışır mı?
Uyarlama yapılmadan nadiren çalışır. Her eklenti, uyumluluğunu config.xml’de ve $ps_versions_compliancy özelliğinde bildirmelidir. 1.6 için yazılan birçok eklenti, PHP 8’de kaldırılan süslü parantezli dizi erişim söz dizimini de kullanır; bu da ölümcül hatalara yol açar.
Bu geçişte temam ne olur?
Kopyalanması değil, yeniden inşa edilmesi gerekir: varsayılan tema değişir (Classic, Default’un yerini alır) ve mimari, tek başına Smarty’den hibrit bir Symfony/Twig tabanına geçer. Ayrıca fiyatlandırılması gereken, başlı başına bir iş.