romansh / laravel-creem-store-simulator
Standalone Creem API simulator for local testing of laravel-creem, laravel-creem-cli and laravel-creem-agent packages.
Package info
github.com/romansh/laravel-creem-store-simulator
Type:project
pkg:composer/romansh/laravel-creem-store-simulator
v1.0.2
2026-03-28 21:03 UTC
Requires
- php: ^8.2
- laravel/framework: ^11.0 || ^12.0
- laravel/octane: ^2.17
- laravel/tinker: ^2.10.1
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.50
README
Standalone Laravel application that simulates the subset of the Creem payment API used by:
The goal is deterministic local testing for agent demos and heartbeat logic.
Installation
composer create-project romansh/laravel-creem-store-simulator
cd laravel-creem-store-simulator
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
Capabilities
- Creem-like HTTP endpoints under
/api/v1 - Search endpoints such as
/subscriptions/searchand/transactions/search - Multi-store resolution by
x-api-key - SQLite-backed products, customers, subscriptions, transactions, and checkouts
- Demo seeders and scenario commands
- Optional signed webhook delivery into an agent app
- FrankenPHP-friendly runtime
List responses mirror Creem pagination and include items, pagination, and a compatibility total alias.
Quick start
cp .env.example .env sqlite_db="${DB_DATABASE:-database/database.sqlite}" && mkdir -p "$(dirname "$sqlite_db")" && touch "$sqlite_db" php artisan key:generate php artisan migrate --seed php artisan serve --host=0.0.0.0 --port=80
Point your agent app to the simulator:
CREEM_TEST_MODE=true CREEM_API_KEY=creem_test_demo_default CREEM_WEBHOOK_SECRET=whsec_demo_default CREEM_TEST_API_URL=http://simulator:80/api/v1 CREEM_API_URL=http://simulator:80/api/v1
Main commands
php artisan simulator:seed-demo— create a realistic baseline datasetphp artisan simulator:advance— append fresh activity for the next heartbeat cyclephp artisan simulator:send-webhook payment.failed— push a signed webhook to the configured agent app
Docker
See the laravel-creem-agent-demo repository for a Docker Compose setup that runs this simulator alongside the agent app.
Testing
php artisan test
License
MIT