PHPackages                             prestashop/ps\_onepagecheckout - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. prestashop/ps\_onepagecheckout

ActivePrestashop-module[Utility &amp; Helpers](/categories/utility)

prestashop/ps\_onepagecheckout
==============================

PrestaShop module ps\_onepagecheckout

212[9 PRs](https://github.com/PrestaShop/ps_onepagecheckout/pulls)PHPCI passing

Since Mar 5Pushed 1mo agoCompare

[ Source](https://github.com/PrestaShop/ps_onepagecheckout)[ Packagist](https://packagist.org/packages/prestashop/ps_onepagecheckout)[ RSS](/packages/prestashop-ps-onepagecheckout/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (8)Used By (0)

One-page checkout (`ps_onepagecheckout`)
========================================

[](#one-page-checkout-ps_onepagecheckout)

About
-----

[](#about)

`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.

Compatibility
-------------

[](#compatibility)

PrestaShop: `9.0.0` or later.

What the module owns
--------------------

[](#what-the-module-owns)

- 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.

Code map
--------

[](#code-map)

- [`ps_onepagecheckout.php`](./ps_onepagecheckout.php): module entry point, hook registration, runtime wiring.
- [`src/Checkout`](./src/Checkout): checkout process, availability checks, AJAX handlers.
- [`src/Form`](./src/Form): back office configuration form and checkout form helpers.
- [`controllers/front`](./controllers/front): FO endpoints used by the one-page checkout runtime.
- [`controllers/admin`](./controllers/admin): BO entry point for module configuration.
- [`views/js`](./views/js): checkout client-side behavior.
- [`views/templates`](./views/templates): BO templates and module-owned checkout assets.
- [`tests/php`](./tests/php): unit and integration coverage for the module.

Contributing
------------

[](#contributing)

Before opening a PR:

1. Regenerate the module autoload when PHP classes move or are added.
2. Rebuild front assets when changing files under `views/js`, and commit the generated bundles from `views/public` (including `.LICENSE.txt` files).
3. Run the relevant PHP tests for the area you touched.
4. Use the decision log and implementation rules as the source of truth for sensitive changes.

Local development
-----------------

[](#local-development)

### PHP autoload

[](#php-autoload)

From the repository root:

```
composer dump-autoload -d
```

### Front assets

[](#front-assets)

From `ps_onepagecheckout/views`:

```
npm install

# Development: rebuild assets on every change under views/js
npm run watch

# Production build: generate bundles consumed by the module
npm run build
```

When you change any file under `views/js`:

- run `npm run build` to regenerate:
    - `views/public/opc-guest-init.bundle.js`
    - `views/public/opc-address.bundle.js`
    - their corresponding `*.LICENSE.txt` files,
- and commit both the source changes and the updated files in `views/public`.

> The CI workflow `js.yml` runs `npm run build` to ensure the assets remain buildable, and the shared `build-release` workflow packages the module using the files present in the repository (including the generated bundles).

Testing
-------

[](#testing)

PHP test configuration lives in [`tests/php`](./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 integration
```

The 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:

- [`docs/E2E_RUNBOOK.md`](./docs/E2E_RUNBOOK.md)

Project references
------------------

[](#project-references)

- implementation rules: [`docs/RULES.md`](./docs/RULES.md)
- architectural decisions: [`docs/DECISIONS.md`](./docs/DECISIONS.md)
- contributors: [`CONTRIBUTORS.md`](./CONTRIBUTORS.md)

License
-------

[](#license)

This module is released under the [Academic Free License 3.0](https://opensource.org/licenses/AFL-3.0).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance59

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity18

Early-stage or recently created project

 Bus Factor1

Top contributor holds 76.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b2919c3e1996b6ab5cb88d77183334f92c4ae8318e02860bd04320c3d6628147?d=identicon)[nicosomb](/maintainers/nicosomb)

---

Top Contributors

[![ThbPS](https://avatars.githubusercontent.com/u/109082310?v=4)](https://github.com/ThbPS "ThbPS (16 commits)")[![dylanDenizonPresta](https://avatars.githubusercontent.com/u/119846866?v=4)](https://github.com/dylanDenizonPresta "dylanDenizonPresta (4 commits)")[![kpodemski](https://avatars.githubusercontent.com/u/2137763?v=4)](https://github.com/kpodemski "kpodemski (1 commits)")

---

Tags

native-moduleprestashop-module

### Embed Badge

![Health badge](/badges/prestashop-ps-onepagecheckout/health.svg)

```
[![Health](https://phpackages.com/badges/prestashop-ps-onepagecheckout/health.svg)](https://phpackages.com/packages/prestashop-ps-onepagecheckout)
```

###  Alternatives

[tigitz/php-spellchecker

Provides an easy way to spellcheck multiple text source by many spellcheckers, directly from PHP

309498.4k1](/packages/tigitz-php-spellchecker)[shweshi/opengraph

A Laravel package to fetch website Open Graph metadata.

168736.5k1](/packages/shweshi-opengraph)[hashandsalt/kirby3-schema

Kirby 3 - Schema

171.7k1](/packages/hashandsalt-kirby3-schema)[wbrowar/craft-grid

A field that lets you content manage CSS Grid in Craft CMS.

171.1k](/packages/wbrowar-craft-grid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
