KommandhubClickAndPickSW adds a complete click-and-collect flow to Shopware:
- pickup location selection in checkout,
- a dedicated
Pay on pickuppayment method, - a dedicated
Self pick-upshipping method, - pickup-related order state and mail flow automation.
- Shows a pickup location selector during checkout for the plugin shipping method.
- Filters selectable locations by active status and sales channel assignment.
- Shows location details (address, open days/hours, optional contact details).
- Persists selected pickup location in the sales channel context.
- Adds a
Pickup Locationsmodule under Content. - Lets you create/edit pickup locations and assign them to sales channels.
- Supports open days (
openDays), opening/closing hours, contact details, geo fields, and active state.
- Creates a
Pay on pickuppayment method on install. - Creates a
Self pick-upshipping method via migration. - Restricts
Pay on pickupto the plugin shipping method. - Saves selected pickup location ID into order custom fields.
- Dispatches
pickup.order.placedfor pickup orders.
- Adds delivery state
ready_for_pickupand related transitions. - Creates mail templates and flow entries for:
- customer pickup-ready mail,
- admin pickup-order-placed notification.
From plugin metadata and local setup files:
- Shopware core:
~6.7.0(seecomposer.json) - PHP: compatible with Shopware 6.7 (local Dockerfile uses PHP 8.3)
- Composer
- Node/npm only if you are developing frontend assets
Ensure plugin code is available at:
custom/plugins/KommandhubClickAndPickSW
Run from your Shopware project root (where bin/console exists):
bin/console plugin:refresh
bin/console plugin:install --activate KommandhubClickAndPickSW
bin/console cache:clearbin/console plugin:refresh
bin/console plugin:update KommandhubClickAndPickSW
bin/console cache:clearIf you changed plugin JS/Twig/Admin code, rebuild assets according to your environment. In this repository, a common path is:
bin/build-storefront.shIf your setup uses a watcher or CI build pipeline, use your project-specific asset build commands.
In Administration:
- Go to Extensions > My Extensions (or your plugin management area).
- Open
Kommandhub Click and Pickconfig. - Set:
Enable pickup location selectionShow street name in pickup location selectionShow contact details in pickup location info
These options are defined in src/Resources/config/config.xml.
After install, plugin creates methods, but you still need to ensure assignment/availability in your sales channel configuration:
- Shipping method technical name:
kommandhub_self_pickup - Payment method technical name:
kommandhub_pay_on_pickup
In Administration, open Content > Pickup Locations and add entries.
Recommended minimum fields:
- Name
- Street
- Postal code
- City
- Sales channels
- Active = true
Useful optional fields:
- Phone number
- Additional address lines
- Open days (array of weekday keys, e.g.
monday,tuesday) - Opening/closing hours
- Latitude/longitude
- Location code
A pickup location is selectable in checkout only when:
- location is active,
- location is mapped to the current sales channel.
- Customer selects
Self pick-upshipping method in checkout. - Customer selects a pickup location.
- Customer can use
Pay on pickup(enforced to pickup shipping context). - Order is placed with selected pickup location persisted in custom fields.
- Process order as usual.
- Move delivery state to
ready_for_pickup. - Customer receives pickup-ready email via created flow.
Main entity: kommandhub_pickup_location
- includes address/contact/opening metadata,
- includes
open_daysJSON field, - many-to-many mapping to
sales_channel.
The selected location ID is saved to order custom fields using key:
kommandhub_pickup_location_id
Controller: SalesChannelPickupLocationController
- list route:
frontend.kommandhub.sales-channel.pickup-locations.index - details route:
frontend.kommandhub.sales-channel.pickup-locations.show
Plugin root: custom/plugins/KommandhubClickAndPickSW
cd custom/plugins/KommandhubClickAndPickSW
composer installcd custom/plugins/KommandhubClickAndPickSW
./vendor/bin/phpstan analyse src -c phpstan.dist.neon --memory-limit=1G
./vendor/bin/php-cs-fixer fix --dry-run --diffcd custom/plugins/KommandhubClickAndPickSW
./vendor/bin/phpunit -c phpunit.dist.xmlThe plugin contains its own docker-compose.yml, Dockerfile, and Makefile.
cd custom/plugins/KommandhubClickAndPickSW
make up-quick
make testNote: current Makefile default CONTAINER_NAME differs from docker-compose.yml container name. If needed, override it:
cd custom/plugins/KommandhubClickAndPickSW
make CONTAINER_NAME=kommandhub-click-and-pick-shopware test- Confirm plugin config enables pickup selection.
- Confirm location is active.
- Confirm location is assigned to current sales channel.
- Clear cache and rebuild storefront assets.
- Ensure storefront JS was rebuilt after changes.
- Confirm data attributes exist on rendered shipping method markup.
- Ensure plugin is active.
- Ensure selected shipping method is
Self pick-up. - Verify payment method is active and assigned in sales channel settings.
- Verify plugin migrations executed successfully.
- Check Flow Builder entries created by migration.
- Confirm state transition to
ready_for_pickupoccurs on order delivery.
- Uninstall behavior keeps payment method record but deactivates it to avoid historical order integrity issues.
- If uninstall is executed without keeping user data, pickup location tables are dropped.
- Plugin package version:
1.0.0 - Target Shopware core:
~6.7.0 - License: Proprietary
- Vendor: Kommandhub Limited
- Support: https://www.kommandhub.com
- Website: https://www.kommandhub.com