setono/sylius-facebook-plugin

Sylius plugin that tracks visitors and sends the data to Facebook

Installs: 44 623

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 2

Forks: 17

Open Issues: 10

Type:sylius-plugin


README

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!