malina141 / sylius-wishlist-plugin
Wishlist plugin for Sylius
Package info
github.com/Malina141/SyliusWishlistPlugin
Type:sylius-plugin
pkg:composer/malina141/sylius-wishlist-plugin
Requires
- php: ^8.3
- sylius/sylius: ^2.1
Requires (Dev)
- behat/behat: ^3.16
- bitbag/coding-standard: ^3.0
- dbrekelmans/bdi: ^1.4
- dmore/behat-chrome-extension: ^1.4
- dmore/chrome-mink-driver: ^2.9
- friends-of-behat/mink: ^1.11
- friends-of-behat/mink-browserkit-driver: ^1.6
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.7
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.1
- friends-of-behat/symfony-extension: ^2.6
- friends-of-behat/variadic-extension: ^1.6
- lchrusciel/api-test-case: ^5.3
- nyholm/psr7: ^1.8
- phpstan/phpstan: ^1.12
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^10.5
- sylius-labs/coding-standard: ^4.4
- sylius-labs/suite-tags-extension: ~0.2
- sylius/sylius-rector: ^2.0
- sylius/test-application: ^2.1.0@alpha
- symfony/browser-kit: ^6.4 || ^7.4
- symfony/debug-bundle: ^6.4 || ^7.4
- symfony/dotenv: ^6.4 || ^7.4
- symfony/http-client: ^6.4 || ^7.4
- symfony/intl: ^6.4 || ^7.4
- symfony/runtime: ^6.4 || ^7.4
- symfony/web-profiler-bundle: ^6.4 || ^7.4
- symfony/webpack-encore-bundle: ^2.2
Conflicts
- api-platform/symfony: >=4.3.8 <4.4
This package is auto-updated.
Last update: 2026-06-07 17:41:38 UTC
README
Wishlist plugin for Sylius 2 applications.
Features
- Shop wishlist page for the current customer or guest wishlist.
- Add-to-wishlist buttons for product list and product details pages.
- Wishlist sharing and unsharing.
- Bulk wishlist item deletion.
- Bulk add-to-cart from wishlist.
- Admin wishlist grid and wishlist details view.
- Shop API resource for wishlist operations.
Compatibility
| Sylius version | Symfony version | PHP version |
|---|---|---|
| ^2.1 | ^6.4 or ^7.4 | ^8.3 |
Manual Installation
1. Install the Plugin via Composer
composer require malina141/sylius-wishlist-plugin
2. Enable the Bundle
Symfony Flex should add this entry automatically. Check config/bundles.php after installation and add it manually if it is missing:
// config/bundles.php return [ // ... Malina141\SyliusWishlistPlugin\Malina141SyliusWishlistPlugin::class => ['all' => true], ];
3. Import Configuration
# config/packages/_sylius.yaml imports: # ... - { resource: "@Malina141SyliusWishlistPlugin/config/config.yaml" }
This imports the plugin Twig hooks, grids, and workflow metadata.
4. Import routes
# config/routes.yaml # ... malina141_sylius_wishlist: resource: "@Malina141SyliusWishlistPlugin/config/routes.yaml"
5. Register frontend controllers
On Sylius Standard 2.1+ with Symfony Flex enabled, the plugin frontend package should get registered automatically by Symfony UX package synchronization.
The generated controller configuration should contain:
{
"controllers": {
"@malina141/sylius-wishlist-plugin": {
"clipboard-copy": {
"enabled": true,
"fetch": "lazy"
},
"wishlist-bulk-actions": {
"enabled": true,
"fetch": "lazy"
}
}
},
"entrypoints": []
}
If your application does not use Flex package synchronization, install the frontend package manually:
yarn add @malina141/sylius-wishlist-plugin@file:vendor/malina141/sylius-wishlist-plugin/assets
Then add the controller block above to the controllers file used by your shop Stimulus bridge. In Sylius Standard 2.1+ this is usually assets/controllers.json; in Sylius 2.0 it may be assets/shop/controllers.json.
Sylius Standard 2.0 uses a separate Sylius shop asset build that starts the shop Stimulus application. To register the wishlist controllers in that existing application, point the Sylius shop webpack config at your shop controllers file:
// webpack.config.js const shopConfig = SyliusShop.getWebpackConfig(path.resolve(__dirname)); shopConfig.resolve.alias['@symfony/stimulus-bridge/controllers.json'] = path.resolve(__dirname, './assets/shop/controllers.json');
6. Install and build assets
bin/console assets:install
yarn install --force
yarn encore dev # or yarn encore prod
7. Run Doctrine Migrations
The plugin comes with database changes. Check the migrations and then run:
bin/console doctrine:migrations:migrate # add `-e prod` for production
8. Clear the Symfony Cache
Finally, clear the Symfony cache to ensure changes are applied:
bin/console cache:clear
Docker Installation
docker compose exec php composer require malina141/sylius-wishlist-plugin docker compose exec php bin/console assets:install docker compose run --rm --entrypoint yarn nodejs install --force docker compose run --rm --entrypoint yarn nodejs encore dev docker compose exec php bin/console doctrine:migrations:migrate docker compose exec php bin/console cache:clear
Adjust service names if your project does not use php and nodejs.
Configuration
Default configuration can be inspected with:
bin/console config:dump-reference malina141_sylius_wishlist
Example override:
malina141_sylius_wishlist: cookie: secure: true bulk_add_to_cart: redirect_route: sylius_shop_cart_summary