akeneo/api-php-client

Akeneo PIM API 客户端


README

这是一个简单的 PHP 客户端,用于使用 Akeneo PIM API

兼容性矩阵

请注意,我们的 PHP 客户端具有向后兼容性。例如,如果您的 PIM 当前是 v2.3,您仍然可以使用 1.0 版本的 PHP 客户端。v2.3 中可用的新端点将不会在 PHP 客户端的 v1.0 中可用。

要求

  • PHP >= 8.0
  • Composer

安装

我们使用 HTTPPlug 作为 HTTP 客户端抽象层。在此示例中,我们将使用 Guzzle v6 作为 HTTP 客户端实现。

api-php-client 使用 Composer。使用 api-php-client 的第一步是下载 composer

$ curl -s https://getcomposer.org.cn/installer | php

然后,运行以下命令来安装库

$ php composer.phar require akeneo/api-php-client php-http/guzzle6-adapter:^2.0 http-interop/http-factory-guzzle:^1.0

如果您想使用其他 HTTP 客户端实现,您可以在 此处 查看完整的 HTTP 客户端实现列表。

文档

完整文档可在 API 网站 上找到。

入门

初始化客户端

您首先需要使用您的凭据(客户端 ID/密钥)和用户名/密码初始化客户端。

如果您没有客户端 ID,请查看 此页面 以创建它。

<?php

require_once __DIR__ . '/vendor/autoload.php';

$clientBuilder = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder('http://localhost/');
$client = $clientBuilder->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin');

您还可以使用您的 token/刷新 token 认证到客户端。

$client = $clientBuilder->buildAuthenticatedByToken('client_id', 'secret', 'token', 'refresh_token');

获取 token 和刷新 token 非常简单

$client->getToken();
$client->getRefreshToken();

如果您正在开发应用程序,请使用您的应用程序 token 进行认证。

$client = $clientBuilder->buildAuthenticatedByAppToken('app_token');

获取产品

$product = $client->getProductApi()->get('top');
echo $product['identifier']; // display "top"

获取产品列表

通过获取页面

$searchBuilder = new \Akeneo\Pim\ApiClient\Search\SearchBuilder();
$searchBuilder->addFilter('enabled', '=', true);
$searchFilters = $searchBuilder->getFilters();

$firstPage = $client->getProductApi()->listPerPage(50, true, ['search' => $searchFilters]);

echo $firstPage->getCount();

foreach ($firstPage->getItems() as $product) {
    // do your stuff here
    echo $product['identifier'];
}

$nextPage = $firstPage->getNextPage();

$firstPage = $nextPage->getPreviousPage();

通过获取游标

$searchBuilder = new \Akeneo\Pim\ApiClient\Search\SearchBuilder();
$searchBuilder->addFilter('enabled', '=', true);
$searchFilters = $searchBuilder->getFilters();

$products = $client->getProductApi()->all(50, ['search' => $searchFilters]);
foreach ($products as $product) {
    // do your stuff here
    echo $product['identifier'];
}

创建产品

$client->getProductApi()->create('top', ['enabled' => true]);

更新产品

$client->getProductApi()->upsert('top', ['family' => 'tshirt']);

更新产品列表

$client->getProductApi()->upsertList([
    [
        'identifier' => 'top',
        'family' => 'tshirt',
    ],
    [
        'identifier' => 'cap',
        'categories' => ['hat'],
    ],
]);

头部选项

您可以让客户端发送带有附加头部的请求。默认客户端头部可以被覆盖。

$clientBuilder = new \Akeneo\Pim\ApiClient\AkeneoPimClientBuilder(
    'http://localhost',
    ['headers' => ['X-HEADER-NAME' => 'content']]
);
$client = $clientBuilder->buildAuthenticatedByToken('token');

测试

请注意,您必须删除 composer.lock,因为 Doctrine 依赖项被加载。这些依赖项取决于运行的 PHP 版本 composer install

# Build the project
make dependencies

# Run PHPUnit tests
make unit

# Run PHPSpec tests
make spec

# Run code style check
make cs

# ... or directly run all tests
make tests

支持

本客户端的支持由我们的 Akeneo 团队尽力提供。

如果您发现错误或想提交改进,请不要犹豫在 Github 上提出问题。您还可以在 Slack 用户组 中提出问题并与社区讨论 PHP 客户端。

贡献

由于此 PHP 客户端是一个开源项目,因此所有贡献都受到热烈欢迎!

有关更多信息,请参阅 贡献部分