Track ecommerce events in your store and send them to Facebook to enable your marketing efforts inside Facebook.
composer require setono/sylius-facebook-plugin
Then, enable the plugin by adding it to the list of registered plugins/bundles
in config/bundles.php
file of your project before (!) SyliusGridBundle
:
<?php
$bundles = [
// the plugin must be added ABOVE the SyliusGridBundle
Setono\SyliusFacebookPlugin\SetonoSyliusFacebookPlugin::class => ['all' => true],
Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
// used for filtering bot requests
Setono\BotDetectionBundle\SetonoBotDetectionBundle::class => ['all' => true],
// this is the underlying bundle we use to track events
Setono\MetaConversionsApiBundle\SetonoMetaConversionsApiBundle::class => ['all' => true],
// OPTIONAL: See note below
// Setono\ConsentBundle\SetonoConsentBundle => ['all' => true],
];
OPTIONAL: If you want to enable consent (i.e. cookie / GDPR) you can install the consent bundle.
# config/packages/setono_sylius_facebook.yaml
imports:
- { resource: "@SetonoSyliusFacebookPlugin/Resources/config/app/config.yaml" }
# Uncomment next line if you want to load some example pixels via fixtures
# - { resource: "@SetonoSyliusFacebookPlugin/Resources/config/app/fixtures.yaml" }
# config/routes/setono_sylius_facebook.yaml
setono_sylius_facebook:
resource: "@SetonoSyliusFacebookPlugin/Resources/config/routes.yaml"
Either you can install the default ones :
composer require kriswallsmith/buzz nyholm/psr7
Or write your own HTTP client and call :
Client::setHttpClient()
Client::setRequestFactory()
Client::setResponseFactory()
Client::setStreamFactory()
$ php bin/console doctrine:migrations:diff
$ php bin/console doctrine:migrations:migrate
When you create a pixel in Facebook you receive a pixel id.
Now create a new pixel in your Sylius shop by navigating to /admin/facebook/pixels/new
.
Remember to enable the pixel and enable the channels you want to track.
The events that are tracked are located in the EventSubscriber folder, but here's a list:
ViewContent
(i.e. product page views)AddToCart
InitiateCheckout
Purchase
ViewCategory
(this is a custom event that tracks taxon views)
- https://developers.facebook.com/docs/marketing-api/audiences/guides/dynamic-product-audiences/#setuppixel
- https://developers.facebook.com/docs/marketing-api/conversions-api
- https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api
- https://developers.facebook.com/docs/marketing-api/conversions-api/guides/business-sdk-features
- https://github.com/facebook/facebook-php-business-sdk
Ways you can contribute:
- Translate messages to your mother tongue
- Create new event subscribers that handle Facebook events which are not implemented
Thank you!