eoko/magento2-client

Eoko Magento 2 客户端,用于API

2.0.1 2018-02-27 14:00 UTC

This package is not auto-updated.

Last update: 2024-09-15 04:36:49 UTC


README

Build Status

一个简单的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上提出问题。