Upgraden of herbouwen: wat doet u met een oude module op PrestaShop 9?

Uw webshop gaat naar PrestaShop 9, maar één module wordt niet meer onderhouden. Wanneer is een upgrade van de bestaande code genoeg, en wanneer kunt u hem beter laten herbouwen?

Door Presta Support Gepubliceerd Gecontroleerd

Een oude modulekaart die splitst in twee routes: een limoengroene upgradekaart met een pijl omhoog en een gestippelde kaart met nieuwe bouwblokken, naast een PrestaShop 9-badge

Uw webshop gaat naar PrestaShop 9, maar één module wordt niet meer onderhouden door de ontwikkelaar. Laat u hem upgraden of herbouwen? Wij hebben tientallen modules geüpgraded die geschreven zijn voor PrestaShop 1.5 tot en met 8. In dit artikel leest u op welke signalen wij letten, vindt u een korte zelftest en ziet u wat elke route betekent voor uw webshop.

Waarom oude modules breken op PrestaShop 9

PrestaShop 9 is een grotere stap dan de meeste versie-updates. Een module die prima werkte op 1.7 of 8, kan de installatie stoppen, een pagina breken of in het ergste geval de hele back-office meenemen. De oorzaken zijn bijna altijd dezelfde:

  • Een nieuwere PHP-versie. PrestaShop 9 vraagt PHP 8.1 of nieuwer. Code die geschreven is voor PHP 5 of 7 loopt tegen strengere types, verwijderde functies en waarschuwingen aan die nu fouten zijn.
  • Een nieuwere Symfony. PrestaShop 9 draait op Symfony 6.4 (PrestaShop 8 op Symfony 4.4). Modules die Symfony-services, -formulieren of -routes uit de oude versie gebruiken, moeten worden aangepast.
  • Verwijderde coremethodes en constanten. Functies die al jaren verouderd waren, zoals Tools::displayPrice() of ajaxDie(), zijn weg. Een module die ze nog aanroept, faalt zodra die code draait.
  • Bibliotheken die niet meer worden meegeleverd. Oudere modules leunen soms op bibliotheken die PrestaShop zelf vroeger meeleverde, zoals Guzzle 5 of SwiftMailer. Op PrestaShop 9 zijn die er gewoon niet meer.
  • Overrides van gewijzigde klassen. Een override vervangt een deel van een coreklasse. Verandert die klasse, dan kan de override de webshop breken of stilletjes een fix ongedaan maken.

Lees meer over de wijzigingen zelf in PrestaShop 9: wat is er nieuw en PrestaShop 9.2.

Een upgrade is meestal genoeg als

  • de module vandaag installeert en werkt op PrestaShop 1.7 of 8;
  • de problemen verwijderde methodes en constanten zijn (zoals Tools::displayPrice() of ajaxDie());
  • de module zijn eigen logica in zijn eigen bestanden houdt en weinig overrides heeft;
  • de templates Smarty of Twig op de gewone manier gebruiken, zodat de weergave kan blijven zoals hij is;
  • u tevreden bent over wat de module doet en hij alleen moet blijven werken.

De meeste van deze aanpassingen zijn mechanisch: de module blijft precies hetzelfde doen, alleen de code die hij aanroept wordt bijgewerkt. Ook modules die geschreven zijn voor PrestaShop 1.5 en 1.6 laten zich vaak goed upgraden. Uw instellingen en gegevens blijven staan, en de module ziet er hetzelfde uit en werkt hetzelfde als voorheen.

Overweeg herbouwen als

  • de module veel HTML in PHP opbouwt en die zonder escaping toont: dat veilig maken betekent de hele weergavelaag naar templates verhuizen;
  • hij meerdere coreklassen overschrijft waarvan de methodes in PrestaShop 9 zijn veranderd;
  • hij afhangt van een andere module die niet geüpgraded is (bijvoorbeeld een basismodule voor betalingen);
  • hij oude bibliotheken meelevert die PrestaShop 9 niet meer bevat, zoals Guzzle 5 of SwiftMailer;
  • hij erg groot is en ook door de PrestaShop Validator moet komen;
  • u toch nieuwe functies wilt, zodat u een groot deel van de code hoe dan ook verandert.

Herbouwen betekent niet dat de oude module slecht was. Soms is de code in de loop der jaren zo gegroeid dat een nette upgrade meer werk is dan opnieuw beginnen vanuit een helder ontwerp.

Korte zelftest

Wat u ziet Wijst op
De module werkt op PrestaShop 8 en faalt alleen op 9 Upgraden
Foutmeldingen noemen een verwijderde methode of klasse Upgraden
De module heeft geen of weinig overrides Upgraden
Pagina's van de module worden als HTML-tekst in PHP opgebouwd Herbouwen, of een grote upgrade
Meerdere overrides van coreklassen Herbouwen, of een grote upgrade
Hij heeft een andere module nodig zonder versie voor PrestaShop 9 Eerst naar die module kijken
U wilt veranderen wat de module doet Herbouwen

Dit zijn signalen, geen regels. Een module kan op één punt richting herbouwen wijzen en toch zonder problemen te upgraden zijn. Daarom testen wij voordat we een prijs geven.

Wat u controleert voordat u beslist

  1. Vraag het eerst aan de ontwikkelaar. Kijk op de modulepagina of op PrestaShop Addons: misschien is er al een versie voor PrestaShop 9.
  2. Zet op een rij wat de module voor u doet. Welke functies gebruikt u echt? Bij herbouwen kan weg wat niemand nodig heeft.
  3. Controleer de afhankelijkheden. Heeft de module een andere module, een themafunctie of een externe dienst nodig?
  4. Bekijk de overrides. In de back-office onder Geavanceerde parameters > Informatie ziet u of er overrides actief zijn.
  5. Plan het samen met de upgrade van uw webshop. Gaat uw hele webshop naar PrestaShop 9, test dan alle modules samen op een kopie. Lees hoe wij dat aanpakken bij PrestaShop upgraden.

Wat wij doen

Als u een module uploadt, testen wij hem eerst in een afgeschermde PrestaShop 9.2-webshop en geven we een prijs op basis van wat we vinden. Is een module beter af met herbouwen, dan laten we u dat weten voordat u betaalt. Laat uw module upgraden of vraag ons om hem te controleren.

  • PrestaShop 9
  • Modules
  • Upgrades