ps_onepagecheckout is the native PrestaShop module that provides the one-page checkout experience.
Warning
This module is under heavy development. It is not production-ready and should not be used in live environments.
PrestaShop: 9.0.0 or later.
- checkout process injection through
actionCheckoutBuildProcess, - front office AJAX endpoints for guest initialization and address form refresh,
- back office configuration for enabling or disabling one-page checkout,
- checkout layout configuration assets and templates shipped by the module,
- checkout runtime flag exposure for the order page.
ps_onepagecheckout.php: module entry point, hook registration, runtime wiring.src/Checkout: checkout process, availability checks, AJAX handlers.src/Form: back office configuration form and checkout form helpers.controllers/front: FO endpoints used by the one-page checkout runtime.controllers/admin: BO entry point for module configuration.views/js: checkout client-side behavior.views/templates: BO templates and module-owned checkout assets.tests/php: unit and integration coverage for the module.
Before opening a PR:
- Regenerate the module autoload when PHP classes move or are added.
- Rebuild front assets when changing files under
views/js. - Run the relevant PHP tests for the area you touched.
- Use the decision log and implementation rules as the source of truth for sensitive changes.
From the repository root:
composer dump-autoload -dFrom ps_onepagecheckout/views:
npm install
npm run watch
npm run buildPHP test configuration lives in tests/php:
- unit suite:
modules/ps_onepagecheckout/tests/php/phpunit.xml - integration suite:
modules/ps_onepagecheckout/tests/php/phpunit-integration.xml - static analysis helpers:
modules/ps_onepagecheckout/tests/php/phpstan.sh
Run PHPUnit in the same isolated Docker environment locally and in GitHub Actions:
./scripts/run-tests.sh unit
./scripts/run-tests.sh integrationThe runner expects a prepared PrestaShop checkout in ../prestashop by default.
Override it with PS_ROOT_DIR_HOST=/path/to/prestashop when needed.
Integration tests provision MySQL automatically inside Docker.
For end-to-end checks, use the dedicated runbook:
- implementation rules:
docs/RULES.md - architectural decisions:
docs/DECISIONS.md - MVP product + technical documentation:
docs/MVP_DOCUMENTATION.md - contributors:
CONTRIBUTORS.md
This module is released under the Academic Free License 3.0.