Skip to content

justbetter/laravel-akeneo-client

Repository files navigation

Package banner

Laravel Akeneo Client

Tests Coverage Analysis Total downloads

Connect to your Akeneo instance using the official akeneo/api-php-client. This package will ease configuration, dependency injection and testing for Laravel.

It also has an endpoint available to receive Akeneo events, if enabled.

Example usage

<?php

use JustBetter\AkeneoClient\Client\Akeneo;

public function __construct(Akeneo $akeneo)
{
    $product = $akeneo->getProductApi()->get('1000');
}

Installation

Install the composer package.

composer require justbetter/laravel-akeneo-client

By default, this package will require the latest version of akeneo/api-php-client. You should take a look at the compatibility table to see what version you need for your project.

composer require akeneo/api-php-client "^9.0"

Setup

Optionally, publish the configuration of the package.

php artisan vendor:publish --provider="JustBetter\AkeneoClient\ServiceProvider" --tag=config

Configuration

Add the following values to your .env file.

AKENEO_URL=
AKENEO_CLIENT_ID=
AKENEO_SECRET=
AKENEO_USERNAME=
AKENEO_PASSWORD=

AKENEO_EVENT_SECRET=

Events

If you have enabled the event subscription in Akeneo you will be to listen to these events.

The event webhook is /akeneo/event. This can be configured using the prefix in your akeneo config file.

All events are available.

<?php

use Illuminate\Support\Facades\Event;
use JustBetter\AkeneoClient\Events\ProductCreatedEvent;

Event::listen(function (ProductCreatedEvent $event): void {
    //
});

Testing

This package makes testing and mocking Akeneo calls very easily.

<?php

use Illuminate\Support\Facades\Http;
use JustBetter\AkeneoClient\Client\Akeneo;

// This will fake Akeneo credentials and a sign in.
Akeneo::fake();

// Fake the specific call you will be using
Http::fake([
    'akeneo/api/rest/v1/products/1000' => Http::response([
        'identifier' => '1000',
        'enabled' => true,
        'family' => 'hydras',
        'categories' => [],
        'groups' => [],
        'parent' => null,
        'values' => [
            'name' => [
                [
                    'locale' => 'nl_NL',
                    'scope' => 'ecommerce',
                    'data' => 'Ziggy',
                ],
            ],
        ],
    ]),
]);

// Get the product with the fake response
$response = $akeneo->getProductApi()->get('1000');

Quality

To ensure the quality of this package, run the following command:

composer quality

This will execute three tasks:

  1. Makes sure all tests are passed
  2. Checks for any issues using static code analysis
  3. Checks if the code is correctly formatted

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Package footer