Knowledge Hub & Magazine / PrestaShop

PrestaShop Module Updates: Check Compatibility, Backups and Functionality

A practical PrestaShop module update guide covering technical module versions, compatible packages, store and database backups, upgrade scripts and focused checks.

Author: Kiljano · Updated on: · Reading time: 13 min

A PrestaShop module update is not finished merely because a newer version number appears in the admin. Modules provide functions such as collection filtering, search results, product information blocks, forms and connections to external services. First establish exactly which installed module and shop are involved, then compare the function it performs before and after the update. A compatible package, a matching backup of store files and database, and an isolated test store make that comparison useful.

This practical guide to PrestaShop 9 module updates explains the difference between a module archive and a restorable store backup, how versioned upgrade scripts can change data, and why reset or reinstall should not be confused with an update. It then provides a function-specific comparison grid and clear criteria for correcting the new version, applying it, or restoring the previous working state. There is no need to complete a live purchase simply to assess an unrelated module.

Identify the exact store, technical module and installed version

Start with the shop's actual domain and its PrestaShop installation. A business running several stores may have similar admin interfaces and different releases of the same module. Record the exact store, environment, PrestaShop version, running PHP version, technical module name and the installed version number. A module's display title can be different from the identifier used by its files. Both the technical name and the version are necessary for finding the correct update package and comparing dependencies.

Read the module author's release notes and compatibility information for the intended update. Confirm that the offered package is meant for the installed PrestaShop version, the running PHP environment and any specific dependency listed by the author. A newer package number does not by itself establish compatibility with your shop. If the new release requires a related module or a changed configuration, record that requirement before starting the update rather than discovering it after the storefront changes.

An update notification in the PrestaShop module manager can be useful, but it does not replace a direct comparison with the author's current release. An extension distributed outside the same marketplace or update channel may have a newer package even though the admin shows no update badge. Check the version actually installed and the version of the package you intend to use. A missing update notification should not be treated as a verified record of everything the module author has published.

The official PrestaShop Help Center article on updating modules describes module-manager updates and adding a downloaded package. The PrestaShop user guide for module management provides broader context; some descriptions of admin controls originate from earlier interface versions, so work from the controls actually available in your current installation rather than relying on a rigid sequence of old labels.

Define what the module genuinely does in this shop. For a search extension, test search terms and resulting products. For a navigation block, inspect the links and submenu behaviour. For a product-information extension, check its content and placement. If the module changes a checkout form, include those related form fields and validation; otherwise, a full checkout test is not automatically relevant. This early classification makes every later regression check purposeful and proportionate to the module's actual role.

Create a recoverable backup of files, database and relevant settings

A module ZIP normally contains the module release, not all the information required to restore an entire PrestaShop store. Module data or configuration may be stored in the shop database, while templates, overrides and other custom work can be held in files. A meaningful recovery point includes matching copies of the store files and database, together with the settings and customisations required for the module's operation. Copying an old module directory alone does not necessarily recover the previous database state.

Create a consistent snapshot of the shop's files and the corresponding database. Record the store domain or environment, the timing of the copy and the installed module version it represents. Capture settings relevant to this module: enabled functions, display positions, registered hooks, configurable options, important language settings or scheduled processing. This inventory makes it possible to compare the configuration after the update even if the newer release presents the settings differently.

Confirm that the recovery materials work by restoring them into a separate mirror environment. A backup archive is only one part of recovery; you also need to know whether the shop starts and the relevant module functionality can be restored from that saved state. The official PrestaShop backup instructions cover store files and database and explicitly recommend testing a restore on a mirror of the store. That restores your confidence in the baseline before you change code or execute migrations.

List any modifications made directly to the module or to connected parts of the theme. These may include custom templates, CSS, module file changes, overrides or integrations with other modules. Updating a module can replace locally changed files. Know which modifications support customer-facing functionality and whether they still need to exist in the new version. After the update, the meaningful check is not simply whether a file exists but whether its intended function still works.

Store the backup securely and keep operational data out of reports and public examples. Names, order details and access credentials do not need to appear in a functional regression note. If the mirror contains data from the operational store, restrict access and isolate the external actions it can initiate. A test shop must not unexpectedly send genuine messages, create shipments or perform live payment and integration operations while you are evaluating a module update.

Versioned upgrade scripts can modify data and hook registrations

Updating module files is not always the full change. PrestaShop modules can include versioned upgrade scripts in an upgrade/ directory. Depending on the installed and target versions, PrestaShop runs the applicable scripts in version order. An extension moving across multiple releases may therefore execute several separate upgrade steps. The starting version matters: the script sequence for a shop upgrading from an older version can differ from one that was already partly updated.

These scripts can change configuration values, introduce fields, migrate stored data or register additional hooks. A modified hook association may change where a block appears in the storefront, and a migrated setting may affect how an updated form interprets existing options. This is why a successful file transfer cannot serve as the only acceptance check. Compare what the module actually does with the relevant data after each intended upgrade route.

The PrestaShop 9 developer guidance on module upgrade scripts documents the versioned upgrade/ folder and filenames such as upgrade-1.2.3.php. It also describes the ordered execution of scripts newer than the currently installed module. Understanding this mechanism helps explain what may change between releases without requiring a merchant to run direct database commands.

An upgrade that changes database records or hook registrations cannot necessarily be reversed by putting yesterday's PHP files back in place. The database may retain the new structures and converted values. For a coherent return to the older state you need the corresponding recovery point of files and database, as tested on the mirror. This distinction is particularly important when deciding whether a fault comes from a configuration difference, missing custom code or data migration.

An update is also not equivalent to Reset, Uninstall or reinstall. Those actions can have different effects on configuration, existing records and module registrations. Do not use one of them as a routine substitute for assessing a failed upgrade. First determine which version was installed, what the update actually changed and whether the module's functions behave as expected. Then choose correction or restoration according to the observed result.

Rehearse the update in a mirror separated from live integrations

A meaningful mirror contains a compatible copy of the actual shop state, not only a clean installation with the newest module ZIP. Starting from the previous version lets you test how existing settings and any migration scripts behave. Confirm that the current module function works in the mirror before applying the update. Then install the intended compatible release there and record the resulting module version and settings.

Separate the mirror from real payment operations, outgoing customer mail, shipping labels, stock feeds, live webhooks and other connected services. Use test destinations where supported or restrict testing to safe local behaviour. A form test should not send a message to a real customer, and checking the cart should not create a paid order. When a module relies on an external provider, its test configuration should be clearly distinguishable from the live connection.

Choose an observable baseline. A filter module might be checked with one collection and a selected value that narrows the product list. A navigation module can be checked through a submenu and destination link. A form module can be inspected for field labels, required values and local validation without submitting an external request. For a block-rendering module, compare its placement, text and usability on a representative page.

Update modules one at a time where practical, and test the affected function before moving to another extension. This keeps the observed change attributable to the correct update. If several modules and their dependencies are changed together, isolating the cause of a difference becomes harder. After the module update, check the version recorded in the admin and any new settings, but also repeat the original customer or administrator task in the updated mirror.

Repeat the function test on a phone if the module presents interactive storefront elements. Where text is translated, compare the labels in the published languages relevant to the feature. A change in the width of a product block can be harmless, while a filter control that can no longer be reached on mobile requires attention. These observations provide far more useful evidence than a general statement that the installation finished successfully.

Choose checks based on the module's actual responsibilities

Different module types require different tests. A collection-filter extension should be checked for selecting a value, narrowing the product list and clearing the choice. A navigation module calls for checking menus, nested links and the destination pages. A product-card module should be reviewed for the correct image, product label, price and link. If the module changes back-office settings, the test may instead involve saving a configuration value and verifying it remains set when the relevant screen is opened again.

For forms, compare visible fields, labels, required-input validation and where error messages appear. A module changing the customer checkout form deserves a targeted test of that form and its accessible steps, without creating an actual order. If the module does affect a mobile guest checkout, the related guide Mobile Checkout: Guest Form Errors and Usability explains the customer-facing checks. A module that only displays an informational block does not need the same order-form test.

Interactive modules should also be tried on a narrow phone screen and with the keyboard when appropriate. A menu that works with a mouse may still have an inaccessible submenu, and a filter drawer may become difficult to close on a phone. For multilingual content, open the actual relevant languages and compare meaningful labels. The result should reflect the specific function the extension provides rather than unrelated parts of the shop.

Use a before-and-after table to record a concrete regression

Record what worked with the previous module release and what actually happens in the updated mirror. Each observed difference should be paired with a precise next action. A changed margin may simply follow a new layout; a nonresponsive control deserves a functional correction. The fictional sample table below uses a module that manages collection blocks and filtering. It demonstrates the recording method, not an outcome measured from a particular live store.

Keep the action reproducible: use the same collection, selected value or configuration panel before and after the update. Include the device or language if it affects the result. When a change is intentional and usable, the observed result may be acceptable even though it differs visually. After an actual correction, follow exactly the same sequence again to establish whether the expected behaviour has returned.

FunctionBefore updateAfter updateAction
Collection filterColour selection refines productsvalue cannot be selectedCheck filter control and hook
Product blockProduct card opens correct itemlink opens another itemInspect block data and linking
Mobile panelPanel opens and closesclose control inaccessibleReview mobile template
ConfigurationSelected option remains savedvalue reverts after saveCompare configuration and migration
Translated labelText visible in both languagesone label missingInspect translation and template

Make the apply, correct or restore decision from observed behaviour

An updated module is ready to be applied when its target version is compatible, the recovery point has been tested and the functions it actually manages behave as intended in the mirror. A deliberate change in the placement of a block need not prevent release, provided the customer can still use it. By contrast, a broken filter, missing mandatory input or configuration value that no longer saves calls for correction before the new version is activated on the live shop.

Record a reproducible issue with the module's technical name and version, tested store environment, relevant page or admin feature, exact steps and resulting behaviour. Avoid copying customer information, order content or secret access values into the record. A note such as ‘after saving option A, it returns to Off when the page reopens’ is enough to identify a functional mismatch. Repeat the same operation after fixing the cause.

If a problem remains in the mirror, revise the identified compatibility, configuration or theme integration and test again. When a return to the earlier state is required, restore the matching files and database rather than only the former module folder. Restoring module files alone does not undo database migrations already performed by upgrade scripts. On a live store, a database restore also has to account for legitimate new data created since the recovery point. This makes the timing and scope of the restoration decision important.

Kiljano offers a focused PrestaShop Module Review for up to 3 Modules, evaluating documented versions and compatibility within the agreed scope and supplied materials, with findings in a PDF report. For broader customer-facing readiness, Webshop Launch Readiness – 30 Checks covers thirty publicly reviewable points and provides a PDF with observations and priorities plus an optional TXT checklist in ZIP. Each service answers a different, practical question.

Frequently asked questions about PrestaShop module updates

Is a module ZIP enough to restore my store?

No. It contains the module distribution. A useful store recovery point includes matching files and database, relevant settings and a tested restore on a separate mirror.

How do I check whether an update is compatible?

Compare the technical module name, installed version, target release, author documentation and compatibility with your exact PrestaShop and PHP versions.

Does the absence of an update badge prove that my module is current?

Compare the installed version with the author's current release and distribution package, including updates supplied through a separate channel.

Are updating, resetting and reinstalling equivalent?

No. An update can run versioned migrations, while reset, uninstall and reinstall are separate actions with different implications for configuration and data.

Can I roll back by restoring old module files only?

Old module files do not reverse executed database changes. Use a tested recovery point and account for business data added since that snapshot.

Should every module be tested through the entire checkout?

No. Test the actual functions the module controls. Include relevant checkout fields only when that module changes the order or customer form.

When is the updated module ready for use?

When the target version and dependencies are compatible, the recovery point is verified and the relevant functions have passed the same pre- and post-update checks.

Loading...
Back to top