How to Test PrestaShop 9.2 RC1 in an Isolated Staging Environment
A release-candidate environment should be realistic enough to expose incompatibilities and isolated enough that a mistake cannot become a real order, shipment or campaign. Copying a production database to another hostname does not achieve that isolation by itself.
The RC1 announcement instructs testers to use a fresh installation and states that Update Assistant does not provide a beta-to-RC1 or RC1-to-final upgrade path. As of September 26, 2026, this is a pre-release evaluation, not a production upgrade rehearsal with a guaranteed continuation path. Official RC1 testing instructions.
The procedure below builds a disposable environment and an evidence trail. It does not explain how to migrate a version 8 shop to version 9.
For each dependency introduced into staging, request evidence for PrestaShop 9.2 module compatibility instead of relying only on a declared maximum version.
Isolate side effects before introducing store data
List every system the shop can contact: email delivery, payment providers, shipping services, marketing platforms, search services, analytics, ERP connections and scheduled integrations. Include callbacks and background processes, not just visible module settings.
Create separate credentials or documented sandbox configurations where available. Route mail to a test sink. Keep shipping and marketing operations from reaching real recipients. If an integration has no safe sandbox, disable its external effects and document which behavior cannot be exercised.
Use access control to keep the environment private. Search-engine directives alone do not restrict access or protect customer data. Limit who can reach the test shop and who can administer it.
Also check inbound events. A copied callback URL or a provider account shared with production can make one environment consume events intended for another. Give each environment a clear identity and verify the provider configuration before enabling an integration.
If you use production-derived data later, minimize and anonymize it through your approved process. A realistic catalog rarely requires real customer emails, addresses or credentials. Preserve relational consistency so the anonymization does not create artificial failures.
Prove the recovery material is usable
Backups are still relevant even though the candidate starts fresh. Preserve the stable store’s recovery material through its normal operating process, and separately capture the candidate’s baseline so tests can be reset.
A usable snapshot pairs the database with the corresponding files and configuration. Module versions, media references and database state can become inconsistent if captured at unrelated times. Record what the snapshot contains and how it was produced.
Restore the candidate baseline into another disposable instance or reset point before relying on it. Verify that the administration interface opens, fixture products exist and external effects remain isolated. A backup file’s existence does not establish that it can be restored correctly.
Do not use the candidate installation to overwrite a production database in order to “try the schema.” Keep the experiment’s database credentials and paths distinct enough that ordinary operator mistakes are easier to catch.
Write the reset procedure before destructive tests. A predictable reset makes the subsequent evidence reproducible and avoids progressively contaminating every test with the previous one’s data.
Establish a clean RC1 baseline
Use the official release asset appropriate to the distribution you intend to evaluate. Record the downloaded artifact, version and any available checksum verification. Distinguish an installation package from a source checkout that requires its own build process.
Install into a fresh database. Record runtime and database versions without turning the evaluation into a generic hosting exercise. The purpose is to know what was tested and to compare it with the intended supported environment.
Before adding customizations, perform a short baseline check: Back Office login, a product view, cart creation and a simple sandbox order if the installed payment setup permits it. Save the resulting snapshot and version inventory.
Record feature flags explicitly. The default state is part of the test environment. If a later case enables a migrated page or another experimental feature, the report should say so rather than attributing all behavior to the core version alone.
Never assume the candidate’s successful installation creates an update path to the final release. Treat its database as disposable test data unless later official instructions explicitly establish another supported process.
Introduce dependencies in controlled groups
Add the theme and modules according to the workflows they affect. A useful sequence is storefront presentation, checkout dependencies, Back Office extensions and background integrations. This makes a newly introduced failure easier to attribute.
Keep a dependency register:
| Component | Exact version | Critical workflow | Evidence needed |
|---|---|---|---|
| Theme or child theme | Installed package revision | Product and checkout interaction | Rendering and interaction results |
| Payment module | Vendor version | Payment and notification lifecycle | Sandbox outcomes |
| Carrier module | Vendor version | Eligibility and fulfillment metadata | Delivery cases |
| Custom module | Build identifier | Named business operation | Regression result |
| Integration worker | Deployed revision | Scheduled synchronization | Controlled job outcome |
If a component has no 9.2 support statement, label that uncertainty. You may still investigate it in staging, but the absence of a failure in a short test is not a support commitment from its maintainer.
Custom overrides deserve special attention. Record what they change and why. A customization that no longer activates can silently remove a business rule while leaving the page functional.
Cover the store lifecycle beyond checkout
Checkout is critical, but it is not the entire store. A candidate can accept an order and still fail during an import, administrative edit or scheduled reconciliation.
For catalog operations, create and edit products, combinations and translated content relevant to the shop. Use representative constraints and unusual but valid values. For imports, exercise a small batch, a validation failure and a restart rather than loading the entire catalog immediately.
For scheduled tasks, confirm the intended shop context and that test workers cannot call production services. Run a job twice if duplicate execution is a meaningful risk. Observe whether the second run safely recognizes completed work.
For APIs, retain schema and response samples for the operations your clients actually consume. Do not assume all endpoints are installed merely because the core version is new. Record resource-module versions alongside the core.
For multistore, use distinct fixture values in at least two shops and inspect both after a write. For translated routes and content, test the languages that the business actually publishes. Include a non-default employee language when Back Office extensions use translated labels or messages.
Finish with post-order operations: document generation, status changes, shipment handling and the external integration handoff. Each case should have an expected business result, not only an expected screen.
Report regressions so someone else can reproduce them
A useful report contains a minimal fixture, exact versions, active flags, action sequence, expected result and actual result. Attach sanitized logs or screenshots only where they clarify the issue.
Try to reproduce the failure from the clean baseline with the smallest necessary dependency set. This does not mean stripping away the affected module if it is essential to the problem. It means removing unrelated configuration that obscures the trigger.
Distinguish a regression from an unsupported assumption. If a private integration relies on an undocumented selector, the report should state that dependency. If a documented operation returns the wrong result on a clean installation, show that directly.
Keep security-sensitive information out of public issue reports. A minimal synthetic example is often more useful than a production database extract anyway. Follow the project’s appropriate reporting channel for security issues rather than publishing exploit details in an ordinary compatibility report.
Keep a test-data receipt
For each imported fixture set, record its origin, preparation date and purpose. Note which data was synthesized, which relationships were preserved and which external identifiers were replaced. This helps explain failures caused by an unrealistic fixture instead of the candidate.
A catalog with every product in stock cannot exercise unavailable-item behavior. A customer set with one country cannot expose destination-dependent delivery rules. A multistore copy containing only shared values cannot establish isolation. Select representative differences deliberately rather than copying volume for its own sake.
Keep the fixture receipt beside the environment inventory. When a later tester rebuilds the environment, they should be able to recreate the important conditions without receiving a production database. That also makes upstream bug reports easier to reduce to a safe minimal example.
If a fixture changes during investigation, give the revised set a new identifier. Otherwise, two reports that claim to use the same baseline can contain different starting conditions and produce misleading comparisons.
Close the evaluation deliberately
The outcome should name what passed, what failed, what was not exercised and what remains unsupported. Give each blocking issue an owner and a reproduction reference.
Before ending the environment, preserve the evidence needed for retesting. Export fixture definitions, version inventory and sanitized results. Revoke temporary integration credentials and disable scheduled activity so an abandoned test installation does not continue contacting external services.
When a later candidate or stable release arrives, create a fresh evaluation baseline according to its official instructions and rerun the cases affected by the changes. Do not silently carry forward a pass result from a different module or flag configuration.
The value of RC testing is early, reproducible knowledge. A carefully isolated installation can reveal exactly what needs work while keeping the production store and its customers outside the experiment.
For the underlying platform context, see our safe PrestaShop 8-to-9 upgrade guide and apply the version-specific checks above to the installation you are evaluating.