oxid-esales / mollie-payment
Mollie Payment Module for OXID eShop 7 — built on the Smart-Contract payment-base
Package info
github.com/OXID-eSales/mollie-payment
Type:oxideshop-module
pkg:composer/oxid-esales/mollie-payment
Requires
- php: ^8.2
- ext-json: *
- doctrine/dbal: ^2.13 || ^3.0
- mollie/mollie-api-php: ^2.0
- oxid-esales/payment-base: >=v1.2
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/console: ^6.4 || ^7.0
Requires (Dev)
- oxid-esales/developer-tools: dev-b-7.4.x
- oxid-esales/oxideshop-ce: dev-b-7.4.x
- phpmd/phpmd: ^2.15
- phpstan/phpstan: ^2.0.2
- phpunit/phpunit: ^11.4
- squizlabs/php_codesniffer: ^3.10
Suggests
None
Provides
None
Conflicts
- oxid-esales/oxideshop-ce: <7.4
Replaces
None
- dev-b-7.4.x
- v1.0.0-rc.1
- dev-b-7.4.x-VR-26-mollie-release
- dev-b-7.4.x-VR-26-mollie-audit
- dev-b-7.4.x-VR-mollie-release-w6
- dev-b-7.4.x-VR-mollie-pb-wave6
- dev-b-7.4.x-VR-mollie-release-w4
- dev-b-7.4.x-VR-mollie-pb-wave4
- dev-b-7.4.x-VR-mollie-pb-wave3
- dev-b-7.4.x-VR-mollie-release-w2
- dev-b-7.4.x-VR-mollie-pb-wave2
- dev-b-7.4.x-VR-mollie-r6-w5
- dev-b-7.4.x-VR-20-mollie-one-commit-path
- dev-b-7.4.x-VR-19-mollie-shared-guards
- dev-b-7.4.x-VR-21-mollie-refund-ledger
- dev-b-7.4.x-VR-17-mollie-dead-code
- dev-b-7.4.x-VR-21-mollie-refund-hotfixes
- dev-b-7.4.x-psp-switch-replay
- dev-b-7.4.x-pay10-entry-points-superadmin-secrets
- dev-b-7.4.x-admin-payment-plugins
- dev-b-7.4.x-ci-graphql-matrix
- dev-feature/graphql-comply
- dev-ci/payment-base-b-7.4.x
- dev-main
This package is auto-updated.
Last update: 2026-11-05 07:59:21 UTC
README
A Mollie payment module for OXID eShop 7.4+, built on the shared payment-base
Smart-Contract payment core. Mollie follows the PayPal reference architecture: segregated
adapter interfaces behind one lazy SDK adapter, redirect-first checkout, webhook verification by
re-fetching the payment from the Mollie API (Mollie sends no signature), and a shared admin
"Payment" tab owned by payment-base. The module owns no database migrations — all tables
come from payment-base.
Status: under active construction (see
docs/dev_day_log/). The scaffold, DevOps spine, and adapter/checkout/webhook layers are built sprint-by-sprint.
Requirements
- OXID eShop CE 7.4+ (
dev-b-7.4.x), PHP 8.2+ oxid-esales/payment-basemollie/mollie-api-php ^2
Install & activate
Registered as a Composer path repository in the shop and required like the sibling modules:
# from the shop root (inside the php container)
composer update oxid-esales/mollie-payment --with-all-dependencies
bin/oe-console oe:module:activate oe_payments_mollie
bin/oe-console oe:module:deactivate oe_payments_mollie
Configure the module in the admin under Extensions → Modules → Mollie Payment: choose the mode
(test/live), paste the matching API key (test_… / live_…), set the webhook URL, and pick the
log level.
Quality gates
From the module root (run inside the php container, tools resolved from the shop vendor):
composer phpcs # PSR-12 composer phpstan # PHPStan level max — no baseline entries composer phpmd # PHP Mess Detector composer phpunit # PHPUnit (tests/phpunit.xml) composer style # phpcs + phpstan + phpmd # aggregate gate (phpcs → phpunit → phpstan → phpmd) ./bin/pre-commit-check.sh # Unit tests only ./bin/pre-commit-check.sh --full # Unit + Integration (needs MySQL) ./bin/pre-commit-check.sh --no-phpunit # style only
Run a single test:
docker compose exec -w /var/www/extensions/mollie-payment php \
/var/www/vendor/bin/phpunit -c tests/phpunit.xml --filter testName tests/Unit/Path/To/Test.php
Architecture & docs
- Build plan & daily logs:
docs/dev_day_log/ - Architecture analysis:
docs/dev_day_log/20260629/reports/01-mollie-architecture-analysis.md - Contributor guidance for AI agents:
CLAUDE.md
All Mollie SDK imports are confined to src/Mollie/Adapter/; the contract is never mutated via a
generic setState() — only through the named transitions on the payment-base contract. Both
rules are enforced by regression tests.
GraphQL / headless checkout
The module exposes mollieCheckoutStart / mollieCheckoutReturn / mollieCheckoutCancel to the GraphQL Storefront
(payment-base's headless checkout, GRAPH-QL epic); Mollie's webhook ends the order. Try it from the command line:
SHOP_URL=https://<your shop>/ bin/graph-ql-cli-test.sh demo
How it works, every command and example output: bin/graph-ql-cli-test.md.
Installing for a headless storefront (including the oe:graphql:cache-clear step after every activation or update):
docs/for_developer/04-headless-graphql-setup.md.