Skip to content

Setono/SyliusFacebookPlugin

Repository files navigation

Sylius Facebook Plugin

Latest Version Software License Build Status

Track ecommerce events in your store and send them to Facebook to enable your marketing efforts inside Facebook.

Installation

Step 1: Download the plugin

composer require setono/sylius-facebook-plugin

Step 2: Enable the 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.

Step 3: Configure plugin

# 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" }

Step 4: Import routing

# config/routes/setono_sylius_facebook.yaml
setono_sylius_facebook:
    resource: "@SetonoSyliusFacebookPlugin/Resources/config/routes.yaml"

Step 5: Choose your HTTP client implementation

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()

Step 6: Update your database schema

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

Step 7: Create a pixel

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.

Step 8: You're ready!

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)

Related links

Contribute

Ways you can contribute:

  • Translate messages to your mother tongue
  • Create new event subscribers that handle Facebook events which are not implemented

Thank you!