creativefactoryrv/delera-api-client

Essential client library for Delera CRM API

Maintainers

Package info

github.com/CreativeFactory-di-Riva-Vigano/delera-api-client

pkg:composer/creativefactoryrv/delera-api-client

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-02-26 10:51 UTC

This package is auto-updated.

Last update: 2026-03-26 11:17:44 UTC


README

Libreria PHP per inviare eventi (ordine, cliente, lead, spedizione, carrello abbandonato, ecc.) a endpoint remoti tramite webhook.

Questo README mostra come installare e usare la libreria. Gli esempi sono tratti dal file index.php presente nella root del progetto.

Requisiti

  • PHP 7.4+
  • Client HTTP che implementa ClientInterface (es. GuzzleHttp\Client)
  • Composer

Installazione

Aggiungi il pacchetto al tuo progetto (se pubblicato su Packagist usare il nome del pacchetto). In locale puoi includere il repository direttamente nel composer.json del progetto principale e poi eseguire composer install.

Esempio rapido

1) Autoload e setup

require 'vendor/autoload.php';

use GuzzleHttp\Client;
use CreativeFactoryRV\Delera\ApiClient;
use CreativeFactoryRV\Delera\Api\{
    AbandonedCartApi,
    CustomerApi,
    DeliveryApi,
    LeadApi,
    OrderApi,
    OrderStatusApi,
    ShippingApi
};

$client = new Client();

$endpoints = [
    AbandonedCartApi::class => 'https://example.com/webhook/abandoned-cart',
    CustomerApi::class => 'https://example.com/webhook/customer',
    DeliveryApi::class => 'https://example.com/webhook/delivery',
    LeadApi::class => 'https://example.com/webhook/lead',
    OrderApi::class => 'https://example.com/webhook/order',
    OrderStatusApi::class => 'https://example.com/webhook/order-status',
    ShippingApi::class => 'https://example.com/webhook/shipping',
];

$apiClient = new ApiClient($endpoints, $client);

2) Invio dati ai webhook di Delera

use CreativeFactoryRV\Delera\Customer\Customer;
use CreativeFactoryRV\Delera\Customer\Address;
use CreativeFactoryRV\Delera\Order\{Item, Items, AbandonedCart, Order, Shipping, Delivery, OrderStatus};
use CreativeFactoryRV\Delera\Lead\Lead;

// Esempi di costruzione degli oggetti
$customerId = 10;
$cartId = 1000;
$orderId = 100;
$leadId = 10000;

$customer = new Customer($customerId, 'Anita', 'Gobbetti', null, 'IT', 'anita@email.it', '1234567890');

$items = [
    new Item(1, 101, 'Product 1', 9.99, 2),
    new Item(2, 202, 'Product 2', 19.99, 1),
];

$abandonedCart = new AbandonedCart(
    $cartId,
    $customer,
    new Items(...$items),
    new DateTime('now'),
    200.99,
    'https://www.website.com/checkout?id=1',
    'google',
    'cpc'
);

$apiClient->abandonedCart->send($abandonedCart);

// Lead
$billingAddress = new Address(null, null, null, null, 'Italia', 'Lombardia', 'MI', 'Milano', '20100', 'Via Roma 5', null, null, null);
$customer = new Customer(null, 'Anita', 'Gobbetti', null, 'IT', 'anita@email.it', '1234567890', $billingAddress);
$lead = new Lead($leadId, new DateTime(), 'Messaggio di prova', $customer, 'https://example.com', 'google', 'cpc');

$apiClient->lead->send($lead);

// Ordine
$shippingAddress = new Address('Marco Rossi', null, null, null, 'Italia', 'Lombardia', 'MI', 'Milano', '20100', 'Piazza Mazzini 11', null, null, 'Note di test');
$billingAddress = new Address(null, 'Azienda', 'CF123456789', '123456789', 'Italia', 'Lombardia', 'MI', 'Milano', '20100', 'Via Roma 5', 'test@pec.it', 'SDI12345', null);
$customer = new Customer($customerId, 'Anita', 'Gobbetti', null, 'IT', 'anita@email.it', '1234567890', $billingAddress, $shippingAddress);
$order = new Order(1, $customer, new Items(...$items), new DateTime('now'), 'Bonifico bancario anticipato', 'In attesa di pagamento', 200.99, 10.50, 'NATALE2025', 'google', 'cpc');

$apiClient->order->send($order);

// Spedizione
$shipping = new Shipping($orderId, new DateTime('now'), new DateTime('+5 days'), 'DHL', 'TRACK12345', 'https://tracking.example.com/TRACK12345');
$apiClient->shipping->send($shipping);

// Consegna
$delivery = new Delivery($orderId, new DateTime('+5 days'));
$apiClient->delivery->send($delivery);

// Aggiornamento stato ordine
$orderStatus = new OrderStatus(1, 'Cancellato');
$apiClient->orderStatus->send($orderStatus);

// Aggiornamento anagrafica cliente
$customer = new Customer($customerId, 'Anita', 'Gobbetti', null, 'IT', 'anita@email.it', '+39 1234567890');
$apiClient->customer->send($customer);

Note su eccezioni e gestione errori

Tutte le chiamate possono sollevare eccezioni; raccomandiamo di avvolgere gli invii in un blocco try/catch e gestire i messaggi di errore/loggandoli.

Licenza

Consulta il file LICENSE nella root del pacchetto.