shopwell / platform
The Shopwell e-commerce core
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- composer-runtime-api: ^2.1
- ext-ctype: *
- ext-curl: *
- ext-dom: *
- ext-fileinfo: *
- ext-filter: *
- ext-gd: *
- ext-intl: *
- ext-json: *
- ext-libxml: *
- ext-mbstring: *
- ext-openssl: *
- ext-pdo: *
- ext-pdo_mysql: *
- ext-session: *
- ext-simplexml: *
- ext-sodium: *
- ext-xml: *
- ext-xmlreader: *
- ext-zip: *
- ext-zlib: *
- async-aws/core: ^1.22
- cocur/slugify: ^4.7.0
- composer/class-map-generator: ^1.7
- composer/composer: ^2.9.3
- composer/semver: ^3.4.0
- doctrine/dbal: ~4.4.0
- doctrine/inflector: ^2.0
- dompdf/dompdf: ~3.1.6
- dragonmantank/cron-expression: ^3.3
- ezyang/htmlpurifier: ^4.16
- guzzlehttp/guzzle: ^7.5.0
- guzzlehttp/promises: ^2.5
- guzzlehttp/psr7: ^2.4
- horstoeko/zugferd: ^1.0.104
- lcobucci/jwt: ^5.5
- league/flysystem: ^3.13.0
- league/flysystem-local: ^3.29.0
- league/flysystem-memory: ^3.10.3
- league/mime-type-detection: ^1.13.0
- league/oauth2-server: ^9.3
- mcp/sdk: ^0.8.1
- meyfa/php-svg: ^0.16.1
- monolog/monolog: ^3.3.1
- nikic/php-parser: ^5.8.0
- nyholm/psr7: ^1.5
- opensearch-project/opensearch-php: ^2.6.0
- pentatrion/vite-bundle: ^8.1
- php-http/discovery: ^1.20
- phpseclib/phpseclib: ^3.0
- psr/cache: ^3.0.0
- psr/clock: ^1.0.0
- psr/container: ^2.0.2
- psr/event-dispatcher: ^1.0.0
- psr/http-client: ^1.0.3
- psr/http-factory: ^1.0.1
- psr/http-message: ^1.1 || ^2.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0.0
- psr/simple-cache: ^3.0.0
- ramsey/uuid: ^4.7
- scssphp/scssphp: v1.12.0
- setasign/fpdi: ^2.3.7
- setasign/tfpdf: ^1.33
- shopwell/conflicts: 0.6.3
- shyim/opensearch-php-dsl: ^1.1.4
- squirrelphp/twig-php-syntax: ^1.13.0
- symfony/asset: ~7.4.0
- symfony/cache: ~7.4.12
- symfony/cache-contracts: ~3.6.0
- symfony/clock: ~7.4.0
- symfony/config: ~7.4.0
- symfony/console: ~7.4.0
- symfony/debug-bundle: ~7.4.0
- symfony/dependency-injection: ~7.4.0
- symfony/deprecation-contracts: ~3.6.0
- symfony/doctrine-messenger: ~7.4.0
- symfony/dotenv: ~7.4.0
- symfony/error-handler: ~7.4.0
- symfony/event-dispatcher: ~7.4.0
- symfony/event-dispatcher-contracts: ~3.6.0
- symfony/filesystem: ~7.4.0
- symfony/finder: ~7.4.0
- symfony/framework-bundle: ~7.4.0
- symfony/http-client: ~7.4.0
- symfony/http-client-contracts: ~3.6.0
- symfony/http-foundation: ~7.4.0
- symfony/http-kernel: ~7.4.12
- symfony/intl: ~7.4.0
- symfony/lock: ~7.4.0
- symfony/mailer: ~7.4.12
- symfony/mcp-bundle: ~0.13.0
- symfony/messenger: ~7.4.12
- symfony/mime: ~7.4.12
- symfony/monolog-bridge: ~7.4.12
- symfony/monolog-bundle: ~3.11.0
- symfony/options-resolver: ~7.4.0
- symfony/password-hasher: ~7.4.0
- symfony/polyfill-mbstring: >=1.34.0
- symfony/polyfill-php83: >=1.34.0
- symfony/polyfill-php84: >=1.34.0
- symfony/polyfill-php85: >=1.34.0
- symfony/polyfill-php86: >=1.34.0
- symfony/process: ~7.4.0
- symfony/property-access: ~7.4.0
- symfony/property-info: ~7.4.0
- symfony/proxy-manager-bridge: ~6.4.8
- symfony/psr-http-message-bridge: ~7.4.0
- symfony/rate-limiter: ~7.4.0
- symfony/routing: ~7.4.12
- symfony/runtime: ~7.4.12
- symfony/scheduler: ~7.4.0
- symfony/security-core: ~7.4.12
- symfony/serializer: ~7.4.0
- symfony/service-contracts: ~3.6.0
- symfony/stopwatch: ~7.4.0
- symfony/string: ~7.4.0
- symfony/translation: ~7.4.0
- symfony/translation-contracts: ~3.6.0
- symfony/twig-bridge: ~7.4.12
- symfony/twig-bundle: ~7.4.0
- symfony/uid: ~7.4.9
- symfony/ux-twig-component: ~2.35.0
- symfony/validator: ~7.4.0
- symfony/var-exporter: ~7.4.0
- symfony/yaml: ~7.4.12
- twig/intl-extra: ^3.26.0
- twig/string-extra: ^3.24.0
- twig/twig: ^3.29.0
- zircote/swagger-php: ^6.4
Requires (Dev)
- ext-tokenizer: *
- ext-xmlwriter: *
- bamarni/composer-bin-plugin: ^1.8.2
- doctrine/sql-formatter: ^1.5.4
- dominikb/composer-license-checker: ^2.5
- ergebnis/phpunit-slow-test-detector: ^2.4
- friendsofphp/php-cs-fixer: 3.95.15
- league/flysystem-async-aws-s3: ^3.29.0
- league/flysystem-google-cloud-storage: ^3.10.3
- opis/json-schema: ^2.3.0
- phpat/phpat: 0.12.4
- phpbench/phpbench: ^1.6.1
- phpdocumentor/reflection-docblock: ^5.6.4
- phpdocumentor/type-resolver: ^1.7.1
- phpstan/extension-installer: ^1.4.3
- phpstan/phpdoc-parser: ^2.0.0
- phpstan/phpstan: 2.2.13
- phpstan/phpstan-deprecation-rules: 2.0.5
- phpstan/phpstan-phpunit: 2.0.18
- phpstan/phpstan-strict-rules: 2.0.12
- phpstan/phpstan-symfony: 2.0.20
- phpunit/phpunit: ^11.5.19
- predis/predis: ^2.2
- rector/type-perfect: 2.2.0
- shipmonk/composer-dependency-analyser: ^1.8
- shopwell/dev-tools: ^1.3
- shopwelllabs/phpstan-shopwell: 0.3.0
- smalot/pdfparser: ^2.2.2
- symfony/browser-kit: ~7.4.0
- symfony/doctrine-bridge: ~7.4.14
- symfony/dom-crawler: ~7.4.12
- symfony/phpunit-bridge: ~7.4.0
- symfony/var-dumper: ~7.4.0
- symfony/web-profiler-bundle: ~7.4.12
- symplify/phpstan-rules: 14.10.0
Suggests
- league/flysystem-async-aws-s3: Required to use the Flysystem S3 driver (^3.10.3)
- league/flysystem-google-cloud-storage: Required to use the Flysystem Google cloud driver (^3.10.3)
- shopwell/dev-tools: For development tools, profiler, faker, etc
Provides
None
Conflicts
None
Replaces
- shopwell/administration: v6.7.16.0
- shopwell/core: v6.7.16.0
- shopwell/elasticsearch: v6.7.16.0
- shopwell/storefront: v6.7.16.0
This package is auto-updated.
Last update: 2026-11-11 08:35:45 UTC
README
Shopwell is an open-source commerce platform for building storefronts, managing products and orders, and extending business workflows. The source code is available under the Apache License 2.0. Third-party copyright and license notices are collected in NOTICE.
Choose your starting point
| Goal | Starting point |
|---|---|
| Build a shop | Follow the development setup in CONTRIBUTING.md. |
| Build an extension or theme | Use the extension model that fits your deployment below. |
| Contribute to the platform | Read CONTRIBUTING.md, AGENTS.md, and the coding guidelines. |
Build your commerce experience
Shopwell combines a product catalog, cart, checkout, order management, and an Administration interface. Experience Studio provides component-based content layouts. Themes and API-based frontends can shape the shopping experience, while events and Flow Builder support custom workflows.
Technology
| Part | Technology |
|---|---|
| Backend | PHP, Symfony, Doctrine DBAL |
| Storefront | Twig, Bootstrap |
| Administration | Vue, TypeScript |
| Data | MySQL or MariaDB, with the Shopwell Data Abstraction Layer |
| Integrations | Admin API, Store API, and Sync API |
Use the dependency manifests and development setup for the requirements of this development baseline. English and Simplified Chinese are built-in languages.
Extend Shopwell
| Approach | Use it for |
|---|---|
| Theme | Change Storefront presentation and templates. |
| App | Integrate services through APIs and webhooks. |
| Plugin | Add in-process PHP behavior through supported extension points. |
| Headless frontend | Build a shopping experience with the Store API. |
Read the architecture decisions and coding guidelines before changing an extension point.
Develop locally
Follow CONTRIBUTING.md to install dependencies and configure a local development environment. The Shopwell CLI provides project development tooling. Use the URLs and credentials configured for your own environment.
Work with coding agents
Agents can inspect the project instructions and development skills before proposing a change. Ask for a small implementation using the existing extension points and meaningful tests. Review and test generated changes before deploying them. A coding agent working on project files has different access from an agent connected to a running shop through MCP.
Contribute
Report reproducible issues through GitHub Issues. Follow the contribution guide for code, tests, documentation, and translations. Report security concerns according to the security policy.