Una implementación no oficial de la API para Intelimotor.
Esta librería NO está relacionada con Intelimotor de ninguna manera y/o forma. Es simplemente un trabajo derivado para poder utilizar la API de Intelimotor de una manera práctica y sencilla mediante modelos POPO (Plain Old PHP Objects).
Esta librería depende de un cliente HTTP que implemente el estándar PSR-18 y una librería que implemente el estándar PSR-7 y PSR-17. Puede instalar las librerías de referencia para esta implementación de la siguiente manera:
composer require symfony/http-client
composer require nyholm/psr7
La instalación del cliente es simple, solo debes ejecutar el siguiente comando:
composer require instacar/intelimotor-api-client
Para usar el cliente puedes crear una instancia por defecto que se encargará de crear el cliente HTTP basado en Symfony y la implementación PSR-7 de Nyholm con las configuraciones recomendadas. El cliente tiene un método por cada punto final de la API de Intelimotors. Por ejemplo, para solicitar las marcas de vehículos:
use Instacar\IntelimotorApiClient\IntelimotorClient;
$cliente = IntelimotorClient::createDefault($apiKey, $apiSecret);
$marcas = $cliente->getBrands();Nota: Para crear mensajes en el CRM de Intelimotor primero debe obtener una clave de API específica para el canal y configurar un alias para el canal en el cliente de Intelimotor:
$cliente->setChannel('contacto', 'abcdef1234567890...')Cada entidad de la API está modelada con una clase PHP que tiene getters para cada una de las propiedades, con el fin de proporcionar ayuda a los IDEs y autocompletar mejor, además de proporcionar tipos estrictos a cada una de las propiedades. Siguiendo con el ejemplo anterior:
foreach ($marcas as $marca) {
echo $marca->getId(); // El ID de la marca
echo $marca->getName(); // El nombre de la marca
}Si desea ver los métodos y modelos implementados, por favor, consulte la documentación.
Si deseas utilizar tus propias implementaciones del cliente HTTP PSR-18 o PSR-7, puedes instanciar directamente el
IntelimotorClient con las dependencias necesarias.
use Instacar\IntelimotorApiClient\IntelimotorClient
$cliente = new IntelimotorClient($psr18HttpClient, $psr17RequestFactory, $psr17StreamFactory, $apiKey, $apiSecret);Esta librería utiliza la licencia Lesser General Public Licence Version 3 (LGPLv3). Puede consultarla en el archivo LICENSE.
- Se mejoró las excepciones para derivar de la interfaz ClientExceptionInterface.
- Se agregó una nueva excepción para el estatus HTTP 404 No encontrado.
- Se eliminó la excepción ForbiddenHttpException.
- Se migró el código para utilizar los estándares PSR-7, PSR-17 y PSR-18 para las llamadas HTTP a la API de Intelimotor.
- Se actualizó la versión mínima de PHP a 8.1 y de Symfony a 5.4.
- Se simplificó el código para normalizar las estampas de tiempo.
- Se declaró la zona horaria UTC para las estampas de tiempo.
- Se actualizaron las dependencias a las últimas disponibles.
- Se actualizaron las dependencias de los componentes de Symfony para soportar Symfony 6.
- Se actualizaron las dependencias de interfaces de Symfony para soportar PHP 8.1.
- Se implementaron los puntos finales para extraer las unidades vendidas y no vendidas únicamente.
- Se implementaron los puntos finales para extraer las unidades únicamente de una unidad de negocio.
- Se corrigió el método "hasCustomTrim" para volverlo público y accesible.
- Se corrigió un getter que decía "getSold" en vez de "isSold".
- Se agregó la funcionalidad para crear mensajes de contacto en el CRM de Intelimotors.
- Se mejoró la extracción de información de las unidades con más campos extraídos de Intelimotors.
- Se depreció el configurar manualmente el serializador, debido a que está fuertemente acoplado con el funcionamiento interno de la librería, y no hay una necesidad real de reemplazarlo de parte del usuario.
- Se actualizaron las librerías del proyecto.
- Soporta BusinessUnits, Colors, Brands, Models, Years, Trims y Units.
- Soporta operaciones sobre items, colecciones y archivos CSV.
- Utiliza clases PHP para representar los Modelos.