定制 somosyampi/yampi-php-sdk 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

somosyampi/yampi-php-sdk

Composer 安装命令:

composer require somosyampi/yampi-php-sdk

包简介

SDK oficial da API da plataforma de e-commerce Yampi.

关键字:

README 文档

README

SDK oficial da plataforma de e-commerce Yampi.

Principais Recursos

  • Recurso de Login com JWT e Tokens de usuário.
  • Recurso de Requests.

Dependências

  • PHP >= 7.1

Instalação via Composer

$ composer require somosyampi/yampi-php-sdk

Utilizando a SDK

Você pode autenticar sua aplicação utilizando 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.
}

Caso você você já possua um 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);

Outra maneira de autenticação é pelo token de usuário:

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.
}

Uma vez autenticado, você já pode consumir a API da Yampi utilizando este SDK.

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

Métodos que facilitam os recursos de pesquisa e filtros.

// 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

Se preferir, pode encadear todas as chamadas diretamente:

$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();

Paginação

// ...
$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

Change Log

Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.

Contribuições

Consulte CONTRIBUTING para obter mais detalhes.

Segurança

Se você descobrir quaisquer problemas relacionados à segurança, envie um e-mail para security@yampi.com.br em vez de usar as issues.

somosyampi/yampi-php-sdk 适用场景与选型建议

somosyampi/yampi-php-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 19.98k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2020 年 08 月 20 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「dooki」 「yampi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 somosyampi/yampi-php-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 somosyampi/yampi-php-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 somosyampi/yampi-php-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

与 somosyampi/yampi-php-sdk 相关的其它包

同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:

统计信息

  • 总下载量: 19.98k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 0
  • Forks: 7
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-08-20