Frameworks
Drupal 10 — Intégration Scell.io
Module Drupal via SDK PHP + Hook System
Le SDK PHP `scell/sdk` v3.5.0 s'intègre dans un module Drupal 10 via `composer require` au niveau racine. Service défini dans `mymodule.services.yml`, injecté dans les controllers/services via dependency injection. Hook `hook_entity_insert()` pour générer une facture sur création d'une commande Commerce. Compatible Drupal Commerce 3.
À retenir
- `composer require scell/sdk` à la racine Drupal
- Service défini dans `mymodule.services.yml`
- Hook `hook_entity_insert()` pour Commerce orders
- Configuration via `Drupal::config('mymodule.settings')`
- Compatible Drupal 10.2+, PHP 8.2+
Exemple de code
use Scell\Sdk\Client;
use Drupal\commerce_order\Entity\OrderInterface;
function mymodule_commerce_order_insert(OrderInterface $order) {
$apiKey = \Drupal::config('mymodule.settings')->get('scell_api_key');
$client = new Client($apiKey);
$builder = $client->invoices()->builder()->facturX();
foreach ($order->getItems() as $item) {
$builder->addLine($item->getTitle(), (int)$item->getQuantity(), (float)$item->getTotalPrice()->getNumber(), 20.0);
}
$invoice = $builder->create();
$order->set('field_scell_invoice', $invoice->id)->save();
}