Skip to content
The Events API Bundle for Akeneo PIM delivers catalog changes as events to a 3rd party systems.
PHP
Branch: master
Clone or download
psw1986 Merge pull request #6 from cplaetzinger/patch-1
Corrects event type names for delete events
Latest commit f803623 Jan 7, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DependencyInjection
EventSubscriber
EventType APEA-22 Move resolving of EventType into EventTypeConfiguration Oct 3, 2019
Guzzle
HttpClient APEA-37 Get rid of HttpClientInterface Oct 14, 2019
Job APEA-28 'event_time' property in OuterEvent Oct 15, 2019
Model
OuterEvent
Resources
Tests/Unit
Transport APEA-28 'event_time' property in OuterEvent Oct 15, 2019
.gitignore
LICENSE
README.md Corrects event type names for delete events Dec 13, 2019
TrilixEventsApiBundle.php APEA-25 Rename RegisterEventTypesPass Oct 14, 2019
composer.json bump dev version Nov 21, 2019
phpunit.xml.dist

README.md

Akeneo PIM Events API

The Events API is a smooth and easy way to build integrations that respond to activities in Akeneo PIM. All you need is PIM Events API Bundle and an endpoint where to send Akeneo PIM events.

Table of contents

Getting Started

Requirements

  • Akeneo PIM >= 3.0 (CE & EE)

Installation

Install via composer:

php composer.phar require trilix/akeneo-events-api-bundle:^0.5.0

To enable the bundle add to the app/AppKernel.php file in the registerProjectBundles() method:

$bundles = [
    // ...
    new \Trilix\EventsApiBundle\TrilixEventsApiBundle(),
]

Add the following line at the end of app/config/parameters.yml:

events_api_request_url: 'your_request_url'

where your_request_url is a target location where all the events (see event types) will be delivered.

Add the following lines at the end of app/config/config.yml:

trilix_events_api:
    transport:
        factory: "pim_events_api.transport_factory.http"
        options:
            request_url: "%events_api_request_url%"

Run the following command to create a job to deliver events to consumer:

php bin/console akeneo:batch:create-job 'Deliver outer event to consumer' deliver_outer_event_to_consumer internal deliver_outer_event_to_consumer

Clear cache:

php bin/console cache:clear --env=prod

Make sure Akeneo job queue daemon is running. For more information read Setting up the job queue daemon.

Functionality

How it works

Some event(s) happens in Akeneo PIM. This triggers a mechanism to send those event(s) as HTTP POST request to your Request URL. Each request contains event, with correspondent event type presented in JSON format (see example).

Events API sends one request per one event, and sending of requests happens in real-time.

Event types delivered over Events API

Event Description
category_created New category was created
category_updated Existing category was updated
category_removed Existing category was deleted
attribute_created New attribute was created
attribute_updated Existing attribute was updated
attribute_removed Existing attribute was deleted
family_created New family was created
family_updated Existing family was updated
family_removed Existing family was deleted
product_created New product was created
product_updated Existing product was updated
product_removed Existing product was deleted
product_model_created New product model was created
product_model_updated Existing product model was updated
product_model_removed Existing product model was deleted

Example of category_updated event

{
  "event_type": "category_updated",
  "payload": {
    "code": "cameras",
    "labels": {
      "de_DE": "Cameras",
      "en_US": "Cameras new name",
      "fr_FR": "Caméras"
    },
    "parent": "master"
  },
  "event_time": 1565021907
}

Event Type Structure

Field Type Description
event_type String Type of event which happened (see event types)
payload Object Contains information which represents the event
event_time Integer Timestamp in seconds when the event was created

Attention ❗️

If Akeneo family contains variants, then during family update (or it's variants as well), Akeneo will re-save related products. It will trigger sending product_updated events.

License

This project is licensed under the MIT License - see the LICENSE file for details

You can’t perform that action at this time.