millancore / alegra
Alegra SDK
Requires
- php: >=7.2
- doctrine/annotations: ^1.10
- guzzlehttp/guzzle: 6.3
- laminas/laminas-eventmanager: ^3.2
- psr/log: ^1.1
- symfony/options-resolver: ^5.0
Requires (Dev)
- phpunit/phpunit: 7.5
This package is auto-updated.
Last update: 2024-10-10 07:28:29 UTC
README
Importante!! Este SDK solo cuenta con metodos para administrar Inventario a traves de la API de Alegra, si usted necesita usar otros endpoints, este SDK fue creado modularmente lo que le permitira usarlo como marco de trabajo facilitandole la integracion.
Alegra SDK
Este es un SDK para para la API de alegra.com que busca simplificar la integracion con proyectos en PHP.
Instalacion
PHP 7.2 o superior
composer require millancore/alegra
Configuracion
use Alegra\Alegra; use Alegra\Support\Country; $alegra = Alegra::setCredentials([ 'email' => 'alegrauser@email.com', 'token' => 'tokenAuthApiAccess', 'country' => Country::COL ]);
Logger (Opcional)
Es posible que se desee tener logs de la interacion con la API, para ello puede setear un Logger que cumpla con PSR-3. (Monolog, Laravel, Symfony etc)
$alegra->setLogger($PSRLogger);
Eventos (Opcional)
Los procesos mas criticos dentro de este SDK [Request, Error, Response] lanzan eventos, usted puede agregar un Listener para estos eventos de una manera sencilla permitiendole tomar deciciones en cada caso. (notificaciones, stats, error tracking etc.)
Para crear un clase Listener solo debe implementar Alegra\Contract\ListenerInterface
y agregar el listener a la instancia de Alegra.
$alegra->addListener($myListener);
Cada evento despachado cuenta con dos metodos pricipales para acceder al contenido del evento $event->getName()
y $event->getParams()
.
Uso
Alegra cuenta con una variedad de endpoints, lo mas probable es que necesite hacer uso de estos desde diferentes puntos, en este SDK hemos pensando en facilitar esta tarea implementando Facades para cada grupo.
Asi que para traer un producto por Id es tan simple como esto.
use Alegra\Support\Facade\Item; $product = Item::get(12);
Aqui una lista de los Facades disponibles, cada uno cuenta con la lista de metodos asi como ejemplos sencillos de uso.
Entidades
Cuando hacemos llamadas a la API de Alegra a traves de este SDK obtenemos entidades, podemos acceder a las propiedades de cada entidad de la siguiente manera.
$product = Item::get(12); $product->id $product->name $product->...
Siguendo el mismo esquema de nombres que esta presente en la documentacion de la API.
Las entidades tambien cuenta con metodos que nos permiten manejar sus datos de diferentes maneras.
Array
$arrayProduct = $product->toArray();
Json
$jsonProduct = json_encode($product);
Colecciones
Algunas propiedades del las entidades son colecciones de otras, las colecciones son objetos iterables que nos permiten recorrerlos para hacer uso de las entidades almacenadas.
Iterar
foreach($product->price as $price) { #Price Entity }
Contar
$product->price->count();
Array
$arrayPriceList = $product->price->toArray();
Json
$jsonPriceList = json_encode($product->price);
Manejo de Excepciones
Este SDK maneja una serie de excepciones segun diferentes posibles casos de error o validacion,
sin embargo todas extienden de Alegra\Exception\AlegraException
lo que simplifica el manejo
de excepciones.
use Alegra\Support\Facade\Item; use Alegra\Exception\AlegraException; try { $product = Item::get(12); } catch (AlegraException $exception) { #.... }