Handle webhooks in your Sylius store

Installs: 2 500

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 6


v0.1.0 2022-09-16 06:39 UTC


Latest Version Latest Unstable Version Software License Build Status Code Coverage

Handle webhooks in your Sylius store


Step 1: Download the plugin

composer require setono/sylius-webhook-plugin

Step 2: Enable the plugin

Then, enable the plugin by adding the following to the list of registered plugins/bundles in the config/bundles.php file of your project:


return [
    // ...
    Setono\SyliusWebhookPlugin\SetonoSyliusWebhookPlugin::class => ['all' => true],
    // It is important to add plugin before the grid bundle
    Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
    // ...

NOTE that you must instantiate the plugin before the grid bundle, else you will see an exception like You have requested a non-existent parameter "setono_sylius_webhook.model.endpoint.class".

Step 3: Import routing

# config/routes/setono_sylius_webhook.yaml
    resource: "@SetonoSyliusWebhookPlugin/Resources/config/routes.yaml"

If you don't use localized URLs, use this routing file instead: @SetonoSyliusWebhookPlugin/Resources/config/routes_no_locale.yaml

Step 4: Configure plugin

# config/packages/setono_sylius_webhook.yaml
    - { resource: "@SetonoSyliusWebhookPlugin/Resources/config/app/config.yaml" }

Step 5: Update database schema

Use Doctrine migrations to create a migration file and update the database.

$ bin/console doctrine:migrations:diff
$ bin/console doctrine:migrations:migrate

Step 6: Using asynchronous transport (optional, but recommended)

All events in this plugin will extend the EventInterface. Therefore, you can route all events easily by adding this to your Messenger config:

# config/packages/messenger.yaml
            # Route all command messages to the async transport
            # This presumes that you have already set up an 'async' transport
            # See docs on how to setup a transport like that:
            'Setono\SyliusWebhookPlugin\Message\Event\EventInterface': async