somosyampi / yampi-php-sdk
Yampi电商平台API的官方SDK。
2.0.7
2023-09-06 14:56 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^6.0|^7.0
- shrikeh/teapot: dev-master
Requires (Dev)
- larapack/dd: ^1.1
- phpunit/phpunit: ~7
- squizlabs/php_codesniffer: ~2.3
README
Yampi电商平台Yampi的官方SDK。
主要资源
- 支持JWT和用户令牌的登录功能。
- 请求资源。
依赖项
- PHP >= 7.1
通过Composer安装
$ composer require somosyampi/yampi-php-sdk
使用SDK
您可以使用JWT(JSON Web Tokens)来验证您的应用程序。
require 'vendor/autoload.php'; use Yampi\Api\AuthRequest; use Yampi\Api\Exceptions\RequestException; use Yampi\Api\Exceptions\ValidationException; // Configure seu ambiente. $yampiApi = AuthRequest::production(); // Configure sua loja. $yampiApi->setMerchant('aliasDeSuaLoja'); try { // Faz o login por credenciais. $auth = $yampiApi->login(['email' => 'email@sualoja.com.br', 'password' => 'senha']); $type = $auth->getAuthTokenType(); // bearer $JWT = $auth->getAuthToken(); //eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... } catch (ValidationException $e) { // Erro de validação dos inputs // Mensagens de erros $errors = $e->getErrors(); } catch (RequestException $e) { // Credenciais inválidas. }
如果您已经拥有JWT。
use Yampi\Api\AuthRequest; // Seu JWT. $JWT = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'; // Configure seu JWT, seu ambiente e faz o login por JWT. $yampiApi = AuthRequest::production()->setJwt($JWT);
另一种验证方法是使用用户令牌
require 'vendor/autoload.php'; use Yampi\Api\AuthRequest; use Yampi\Api\Exceptions\RequestException; // Configure seu ambiente. $yampiApi = AuthRequest::production(); // Configure sua loja. $yampiApi->setMerchant('aliasDeSuaLoja'); // Configure seu token de usuário. $yampiApi->setUserToken('seuTokenDeUsuário'); try { // Requests... } catch (RequestException $e) { // Token de usuário inválido. }
一旦验证通过,您就可以使用此SDK来消费Yampi的API。
use Yampi\Api\AuthRequest; // Busque seu JWT. $jwt = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'; // Configure seu JWT, seu ambiente e sua loja. $yampiApi = AuthRequest::production() ->setJwt($jwt); ->setMerchant('aliasDeSuaLoja'); // Busca o catalogo de produtos da sua loja na Yampi. $response = $yampiApi->request('GET', '/catalog/products'); // Ou $response = $yampiApi->catalog()->products()->get(); $response->getData(); // array
便于搜索和过滤资源的方法。
// Busque seu JWT. $jwt = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'; // Configure seu JWT, seu ambiente e sua loja. $yampiApi = AuthRequest::production() ->setJwt($jwt) ->setMerchant('aliasDeSuaLoja'); // Filtra por página. $yampiApi->page(2); // Filtra por qualquer campo e altera o formato de busca dos campos sendo filtrados (LIKE). $yampiApi->search(['name' => 'Roupa de Cama']); $yampiApi->searchFields(['name' => 'like']); // Filtra por data de criação (created_at)... $yampiApi->period('2018-01-01', '2018-01-31'); // ...ou por qualquer campo de data. $yampiApi->period('2018-01-01', '2018-01-31', 'any_date_field'); // Ordena por qualquer campos e altera a direção de orderação dos campos sendo ordenados. $yampiApi->orderBy('name'); $yampiApi->sortedBy('desc'); // Altera o limite da paginação (máximo é 100). $yampiApi->limit(20); // Ignora o cache. $yampiApi->skipCache(); // Retorna os produtos do catálogo com os filtros aplicados $response = $yampiApi->request('GET', '/catalog/products'); // Ou $response = $yampiApi->catalog()->products()->get(); $response->getData(); // array
如果您愿意,可以直接链式调用所有调用
$catalogProducts = AuthRequest::production() ->setJwt($jwt) ->setMerchant('aliasDeSuaLoja') ->page(2) ->search(['name' => 'Roupa de Cama']) ->searchFields(['name' => 'like']) ->period('2018-01-01', '2018-01-31', 'created_at') ->orderBy('name') ->sortBy('desc') ->limit(20) ->skipCache() ->get();
分页
// ... $response = $response->getData(); $pagination = $response->pagination(); $pagination->getTotal(); // Retorna o total de registros $pagination->getPerPage(); // Retorna o total de registros por página $pagination->getCurrentPage(); // Retorna a página atual $pagination->getTotalPages(); // Retorna a quantidade total de páginas $pagination->getNextLink(); // Retorna a URL da próxima página $pagination->getPreviousLink(); // Retorna a URL da página anterior
变更日志
请查阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请查阅CONTRIBUTING以获取更多详细信息。
安全性
如果您发现任何与安全性相关的问题,请通过security@yampi.com.br发送电子邮件,而不是使用问题报告。