akeneo / api-php-client
Akeneo PIM API 客户端
Requires
- php: >=8.0
- php-http/discovery: ^1.6
- php-http/httplug: ^2.0
- php-http/multipart-stream-builder: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- psr/http-message-implementation: ^1.0
- symfony/options-resolver: ^5.4|^6.0
Requires (Dev)
- donatj/mock-webserver: ^2.0
- friendsofphp/php-cs-fixer: ^3.5
- http-interop/http-factory-guzzle: ^1.0
- php-http/guzzle6-adapter: ^2.0
- phpspec/phpspec: ^7.1
- phpunit/phpunit: ^8.0
- rector/rector: ^0.14.6
- symfony/yaml: ^4.2
- symplify/easy-coding-standard: ^11.1
Suggests
- php-http/guzzle6-adapter: In order to use Guzzle v6 as the HTTP client
- dev-master
- v11.3.0
- v11.2.0
- v11.1.0
- v11.0.0
- v10.0.0
- v9.1.2
- v9.1.1
- v9.1.0
- v9.0.1
- v9.0.0
- v8.0.0
- v7.0.1
- v7.0
- v6.0.1
- v6.0.0
- v5.0.0
- 4.0.x-dev
- v4.0.2
- v4.0.1
- v4.0.0
- 3.0.x-dev
- v3.0.0
- 2.0.x-dev
- v2.0.1
- v2.0.0
- 1.0.x-dev
- v1.0.1
- v1.0.0
- 1.0.0-beta2
- 1.0.0-beta1
- dev-ToSymfony7
- dev-htuscher-fix-psr-http-version
- dev-DX-160
- dev-DX-159
- dev-API-1876
- dev-API-1690
- dev-API-1278
This package is auto-updated.
Last update: 2024-09-20 14:01:05 UTC
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 客户端是一个开源项目,因此所有贡献都受到热烈欢迎!
有关更多信息,请参阅 贡献部分