millancore/alegra

v0.0.4 2020-06-09 21:49 UTC

This package is auto-updated.

Last update: 2024-05-10 06:32:56 UTC


README

68747470733a2f2f63646e322e616c656772612e636f6d2f776562736974652f4c6f676f735f416c656772612f4c6f676f7469706f2d416c656772612e706e67

Build Status 68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f31303637346532343865393038616564633765342f6d61696e7461696e6162696c697479 68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f31303637346532343865393038616564633765342f746573745f636f766572616765

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) {
    #....
}