Search by

odiseoteam / sylius-brevo-plugin

odiseo

Brevo integration for Sylius: contacts, newsletter, ecommerce sync and tracking

Package info

github.com/odiseoteam/sylius-brevo-plugin

Type:sylius-plugin

pkg:composer/odiseoteam/sylius-brevo-plugin

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 2


README

Odiseo Sylius Brevo Plugin

Version Downloads Build status Sylius versions PHP version License

Introduction

This plugin connects each Sylius channel to a Brevo account and keeps both in sync: customers, newsletter, catalog, orders and shop events, so marketing works in Brevo with the store's real data.

What makes this plugin different?

  • ✅ Per channel - Each channel has its own Brevo account, API key, sender and modules, or shares one with other channels
  • ✅ Never in the way - Every call runs in the background through Symfony Messenger: a Brevo failure never breaks a request or a checkout
  • ✅ Contacts that stay up to date - Customers and guests, with addresses and order stats, sent whenever they change, from the shop, the admin, the API or the CLI
  • ✅ Newsletter with double opt-in - A Brevo list, a cacheable subscription section in the shop and an API endpoint for headless shops
  • ✅ Brevo Ecommerce filled in - Taxons, product variants and orders, sent only when they change and converted to the account currency
  • ✅ Tracker and events - Page views and identified visitors with consent, plus cart, order and customer events to trigger automations
  • ✅ Built to extend - Tagged providers for every payload, decorators for every rule, Twig hooks in the admin and the shop
  • ✅ Tested on the whole matrix - Sylius 2.0 to 2.3, Symfony 6.4 and 7.4, PHP 8.2 to 8.4, MySQL and PostgreSQL
Screenshots

A channel's Brevo configuration

Contacts
Contacts: Customers, guests and their Brevo list
Newsletter
Newsletter: A Brevo list, with double opt-in
Transactional emails
Pro, emails: Sylius emails with Brevo templates, per language
Sent emails
Pro, sent emails: Every email with its delivery status

Getting Started

Install it in 4 steps ⚡

  1. ✅ Require the plugin (the Flex recipe registers it)
  2. ✅ Run the migrations
  3. ✅ Add a Brevo configuration to your channel, with its API key
  4. ✅ Turn on the modules you need

👉 Follow the installation guide

Quick Example

composer require odiseoteam/sylius-brevo-plugin
bin/console doctrine:migrations:migrate

Then go to Brevo > Configuration in the admin, add the channel's API key, turn on its modules and send what the store already has:

bin/console odiseo:brevo:sync

Important

By default Brevo calls run right after each response, in the same PHP process. In production, set ODISEO_BREVO_MESSENGER_TRANSPORT_DSN to an async transport and run bin/console messenger:consume odiseo_brevo.

Modules

Each feature is a module, turned on per channel:

Module What reaches Brevo
Contacts Customers and guests as contacts, with names, phone, address, group and order stats
Newsletter Subscribers in the channel's list, from the shop form, the account, the admin or the API
Catalog Taxons as categories and product variants as products, with price, stock and image
Orders Completed orders, with their status, products and totals
Tracking The Brevo tracker, page views, identified visitors and the shop events

Learn more about each module →

Brevo Pro

Brevo Pro is the paid add-on that builds on this plugin. It concentrates the features where a bug costs sales, with screens for the marketing team:

  • ✉️ Transactional emails - Sylius emails designed in the Brevo editor, per language, with previews, test sends and Twig as fallback
  • 📬 Sent emails - Every email with its delivery status, blocked addresses and one-click unblocking
  • 🛒 Cart and payment recovery - Signed links that bring back a guest's cart, and payment links for unpaid orders, with UTM
  • 📦 More events - Order awaiting payment, shipped, cancelled and refunded, and product reviews
  • 🔁 Webhooks - Unsubscriptions made in Brevo back in Sylius
  • 🗂️ Past orders - The order history imported into Brevo Ecommerce
  • ⚙️ Admin settings - Contact attributes and events per channel, without YAML

One price, perpetual license, every Pro module included.

👉 Compare Free and Pro · Get Brevo Pro

Documentation

The full documentation lives at docs.brevo.odiseo.io:

Compatibility

Plugin Sylius PHP Symfony Database
^1.0 2.0 · 2.1 · 2.2 · 2.3 8.2 · 8.3 · 8.4 (Sylius 2.3 needs 8.3) 6.4 · 7.4 MySQL · PostgreSQL

Only the latest minor is supported. Security fixes land on master.

Professional Support

This plugin is maintained by Odiseo. Need help with it, or with any Sylius project?

License

MIT.