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-main
- dev-fix/opc-delivery-address-hash-passthrough
- dev-main-psp-payment-method-STRP-TBD
- dev-fix/strp-168-expire-committed-guard
- dev-sprint-10-module-config-secret-masking
- dev-worktree-mollie-config-secret-masking
- dev-fix-mollie-manual-capture-gating
- dev-feat-capture-cancel-e2e
- dev-worktree-mollie-admin-e2e
This package is auto-updated.
Last update: 2026-09-16 13:54:25 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.