lucashtc / yampi-php-sdk
Yampi电商平台API的非官方SDK。
dev-master
2024-08-11 17:38 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^7.8
- shrikeh/teapot: dev-master
Requires (Dev)
- larapack/dd: ^1.1
- phpunit/phpunit: ~7
- squizlabs/php_codesniffer: ~2.3
This package is not auto-updated.
Last update: 2024-09-22 18:10:15 UTC
README
Yampi电商平台官方SDK。Yampi.
主要功能
- 使用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联系,而不是使用问题跟踪。