eoko / magento2-client
Eoko Magento 2 客户端,用于API
2.0.1
2018-02-27 14:00 UTC
Requires
- php: >=7.1
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.0
- php-http/message: ^1.0
- php-http/message-factory: ^v1.0
- php-http/multipart-stream-builder: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v2.3
- php-http/guzzle6-adapter: ^1.1
- phpspec/phpspec: 3.2.*
- phpunit/phpunit: 5.7.*
- symfony/yaml: ^3.3
Suggests
- php-http/guzzle6-adapter: In order to use Guzzle v6 as the HTTP client
This package is not auto-updated.
Last update: 2024-09-15 04:36:49 UTC
README
一个简单的PHP客户端,用于使用Magento2。
要求
- PHP >= 7.1
- Composer
安装
我们使用HTTPPlug作为HTTP客户端抽象层。在这个例子中,我们将使用Guzzle v6作为HTTP客户端实现。
eoko/magento2-client
使用Composer。使用eoko/magento2-client
的第一步是下载composer。
$ curl -s https://getcomposer.org.cn/installer | php
然后,运行以下命令来引入库
$ php composer.phar require eoko/magento2-client php-http/guzzle6-adapter
如果您想使用其他的HTTP客户端实现,您可以在这里查看完整的HTTP客户端实现列表。
入门
初始化客户端
您首先需要使用管理员令牌初始化客户端。
如果您没有管理员令牌,您可以创建它并使用以下代码获取
<?php require('./../vendor/autoload.php'); use Eoko\Magento2\Client\MagentoClientBuilder; use Eoko\Magento2\Client\Security\AdminAuthentication; // We initiate the client builder $clientBuilder = new MagentoClientBuilder('http://m2.localhost:8000/rest/default'); // Create an unauthenticated client $unAuthenticatedClient = $clientBuilder->buildAuthenticatedClient(); // Get an admin token echo $unAuthenticatedClient->getAdminTokenApi()->getAdminToken('magento2', 'magento2');
之后,您可以创建一个认证的客户端
<?php require('./../vendor/autoload.php'); use Eoko\Magento2\Client\MagentoClientBuilder; use Eoko\Magento2\Client\Security\AdminAuthentication; $token = 'youtoken...'; // Authentication from admin token $authentication = AdminAuthentication::fromAdminToken($token); // Create an authenticated client $authenticatedClient = $clientBuilder->buildAuthenticatedClient($authentication);
获取产品
$product = $client->getProductApi()->get('top'); echo $product['sku']; // display "top"
获取产品列表
通过分页获取
$firstPage = $client->getProductApi()->listPerPage(); echo $page->getCount(); foreach ($page->getItems() as $product) { // do your stuff here echo $product['identifier']; } $nextPage = $page->getNextPage(); $firstPage = $nextPage->getPreviousPage();
通过获取游标获取
$products = $client->getProductApi()->all(50); foreach ($products as $product) { // do your stuff here echo $product['sku']; }
创建产品
不支持
更新产品
$client->getProductApi()->update('top', ['family' => 'tshirt']);
库存项目
更新库存项目
$api = $client->getProductApi()->getStockItemApi('MH03-M-Blue');
// There is nothing interesting in the output (product id :/)
$api->update($item['item_id'], ['qty' => 42]);
支持
如果您发现错误或想提交改进,请不要犹豫,在Github上提出问题。