fullmetrix / sylius-plugin
Fullmetrix connector for Sylius. Syncs orders, customers, products, promotions and tracks visitor events to Fullmetrix.
Package info
github.com/Fullmetrix/sylius-plugin
Type:sylius-plugin
pkg:composer/fullmetrix/sylius-plugin
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- doctrine/doctrine-bundle: ^2.10
- doctrine/orm: ^2.15 || ^3.0
- sylius/sylius: ^1.13 || ^2.0
- symfony/event-dispatcher: ^6.4 || ^7.0
- symfony/framework-bundle: ^6.4 || ^7.0
- symfony/http-foundation: ^6.4 || ^7.0
- symfony/http-kernel: ^6.4 || ^7.0
- symfony/security-bundle: ^6.4 || ^7.0
- symfony/twig-bundle: ^6.4 || ^7.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-symfony: ^1.3
- phpunit/phpunit: ^10.5
This package is not auto-updated.
Last update: 2026-05-31 19:19:29 UTC
README
Connects a Sylius store to Fullmetrix. Streams orders, customers, products, categories and promotions, dispatches realtime entity webhooks and visitor tracking events, and supports remote coupon management.
Compatible with Sylius 1.13 LTS and Sylius 2.0 (PHP 8.1+, Symfony 6.4 or 7.x).
Installation
composer require fullmetrix/sylius-plugin
Register the bundle in config/bundles.php:
return [ Fullmetrix\SyliusPlugin\FullmetrixPlugin::class => ['all' => true], ];
Import the plugin routes in config/routes.yaml:
fullmetrix: resource: '@FullmetrixPlugin/Resources/config/routing.yaml'
Run the migrations to create the plugin tables:
bin/console doctrine:schema:update --force
Clear the cache:
bin/console cache:clear
Configuration
The plugin works without configuration. Defaults point to https://fullmetrix.com. To override, add to config/packages/fullmetrix.yaml:
fullmetrix: api_base: 'https://fullmetrix.com/api/plugin' webhook_endpoint: 'https://fullmetrix.com/api/webhooks/ecommerce' events_endpoint: 'https://fullmetrix.com/api/webhooks/events' tracker_origin: 'https://fullmetrix.com'
Usage
- Go to
Admin -> Fullmetrix. - Enter the connection code provided by Fullmetrix (format
FMTX-XXXX-XXXX-XXXX). - Click Connect. The plugin registers with Fullmetrix and receives an HMAC secret.
- Fullmetrix performs an initial historical sync and then receives realtime webhooks.
Exposed endpoints
All endpoints require an HMAC signature in the headers (X-Fullmetrix-Signature, X-Fullmetrix-Timestamp, X-Fullmetrix-Connection-Code).
GET /fullmetrix/api/export?type=orders|customers|products|categories|coupons|settingsGET /fullmetrix/api/stream(NDJSON stream of every entity)GET /fullmetrix/api/stream/{entity}GET /fullmetrix/api/countsGET /fullmetrix/api/updated?type=orders&days=30POST /fullmetrix/api/command(coupon.create, coupon.update, coupon.delete)
Architecture
ConfigStoreandLoggerpersist config keys and dedup-logged entries in dedicated tables.HmacSignersigns every outbound request and verifies every inbound request, with a 300s tolerance.WebhookQueuebuffers entity changes during the request and flushes them onkernel.terminate, fire-and-forget.TrackingQueuebuffers visitor events and flushes them onkernel.terminate, readingfm_vid/fm_sid/fm_cidcookies.EntityWebhookSubscriberlistens to DoctrinepostPersist/postUpdate;OrderStateMachineSubscriberadds Sylius state machine transitions.TrackerInjectionSubscriberinjects the Fullmetrix JS tracker into storefront responses.CartRecoveryControllerrebuilds an abandoned cart from a signed URL.
License
Proprietary. See LICENSE.