PHPackages                             adesa/smartlabel-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. adesa/smartlabel-client

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

adesa/smartlabel-client
=======================

Place and manage orders of stickers using the SmartLabel webservices

v2.0.3(5y ago)1641[1 PRs](https://github.com/smartlabel/php-sdk/pulls)PHPCI passing

Since Mar 16Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/smartlabel/php-sdk)[ Packagist](https://packagist.org/packages/adesa/smartlabel-client)[ RSS](/packages/adesa-smartlabel-client/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (2)Dependencies (1)Versions (9)Used By (0)

SmartLabel PHP SDK
==================

[](#smartlabel-php-sdk)

Le SDK SmartLabel vous permet d'intégrer rapidement et simplement les webservices d'Adesa dans vos applications PHP. Il vous permet de calculer des prix, créer des devis, les transformer en commande et uploader les fichiers

- Liste des mandrins, matériaux et finitions disponibles
- Calcul de prix
- Création de commande
- Multi-modèles
- Transfert de fichier
- Traduction et libellés commerciaux des matériaux, finitions et mandrins
- Génération du formulaire HTML
- Mise en cache des retours Webservice

Pré-requis
----------

[](#pré-requis)

`PHP >= 5.3` avec les extensions `php-soap`

Installation
------------

[](#installation)

Vous pouvez installer le SDK de trois façons :

1. En utilisant l'invite de commande composer

```
$ composer install "adesa/smartlabel-client"
```

2. En ajoutant `adesa/smartlabel-client` à vos dépendances dans le fichier `composer.json`

```
{
    "require": {
      "adesa/smartlabel-client": "*"
    }
}
```

3. En téléchargeant le tarball sur Github. *Déconseillé*

Configuration
-------------

[](#configuration)

1. Récupérer votre identifiant revendeur ainsi que vos informations de connexion FTP auprès d'Adesa.
2. Ajouter ces informations dans un fichier de configuration `.ini` ou un tableau associatif PHP

```
# ./config/smartlabel.ini

locale = {fr|en|es|…}
localeBasePath = ../locale
identifiantRevendeur = {votre identifiant revendeur}

[FTP]
host = adesaweb.adesa.fr
user = {votre login FTP}
password = {votre mot de passe FTP}
```

```
$config = \Adesa\SmartLabelClient\Config::fromIniFile(__DIR__ . "/../config/smartlabel.ini");
```

ou

```
$config = \Adesa\SmartLabelClient\Config::fromArray([
    "locale" => "fr-FR",
    "localeBasPath" => "../locale",
    "identifiantRevendeur" => "{votre identifiant revendeur}",
    "ftp" => [
        "host" => "adesaweb.adesa.fr",
        "user" => "{votre identifiant revendeur}"
        "password" => "{votre mot de passe FTP}"
    ]
]);
```

3. Instancier la classe `SmartLabel` en lui passant la configuration

```
$smartLabel = new \Adesa\SmartLabelClient($config);
```

Usage
-----

[](#usage)

### Les différents mandrins

[](#les-différents-mandrins)

Les Webservices Adesa SmartLabel proposent deux diamètres de mandrin :

- Mandrin de 40mm
- Mandrin de 76mm

Ce diamètre est particulièrement important dans le cas d'une pose automatique, car s'il est de la mauvaise taille, il ne pourra pas s'adapter sur la machine de pose.

Pour récupérer la liste des mandrins disponibles, il faut appeler la méthode suivante :

```
$smartLabel->listeMandrins(); // retourne un tableau d'objet Mandrin
```

### Récupérer la liste des matières

[](#récupérer-la-liste-des-matières)

Une matière est le support sur lequel est imprimé le visuel. Le webservice propose les supports suivants (peut évoluer) :

- Couché enlevable
- Couché permanent
- Papier de création naturel
- Papier de création perlé
- Polypropylène argent brillant
- Polypropylène blanc brillant
- Polypropylène transparent

```
$matieres = $smartLabel->listeMatieres(); // tableau d'objet Matière

$select = "";
foreach($matieres as $matiere){
    $select.= '';
    $select.= $smartLabel->label($matiere);
    $select.= '';
 }
$select.= "";
```

### Récupérer les finitions

[](#récupérer-les-finitions)

Une finition est un procédé technique qui est appliqué sur la matière après impression. Les finitions disponibles sont fonction de la matière sélectionnée (peut évoluer) Le webservice propose les finitions suivantes :

- Vernis brillant
- Pelliculage brillant
- Pelliculage mat

```
$matiere = $smartLabel->trouverMatiere($_GET['numero_matiere']);
// Les finitions disponibles sont fonctions de la matière sélectionnée
$finitions = $smartLabel->listeFinitions($matiere);

$select = "";
foreach($finitions as $finition){
    $select.= '';
    $select.= $smartLabel->label($finition);
    $select.= '';
 }
$select.= "";
```

### Demander un prix

[](#demander-un-prix)

Pour calculer le prix d'une impression d'étiquette, il faudra tout d'abord connaitre le scénario de fabrication. Pour cela, il convient d'appeler la méthode suivante :

> Le multi-modèle consite en l'impression de visuels différents sur des stickers partageant les mêmes caractéristiques : dimensions, matériau, finition, etc.

```
$scenario = $smartLabel->trouverScenario($matiere, $finition);
```

Il faut ensuite appeler la méthode `demandePrix`, qui prend les arguments suivants :

- `scenario` : le scénario qui vient d'être trouvé par la combinaison matière / finition
- `quantite` : le nombre total d'étiquettes à produire, tous modèles confondus
- `hauteur` : la hauteur en millimètres d'une étiquette (pas du visuel)
- `largeur` : la largeur en millimètres d'une étiquette (pas du visuel)
- `poseAutomatique` : si `true`, les rouleaux sont destinés à être utilisés avec une machine de pose automatique. Dans ce cas, il faut bien veiller à passer le bon diamètre de mandrin et bien vérifier le diamètre total de la bobine
- `mandrin` : le mandrin utilisé
- `nombreEtiquettesParRouleau`
- `nombreRouleaux`
- `rotation` : l'orientation du visuel aposé sur l'étiquette par rapport au sens de défilement de la bobine
- `quantitesParSerie`
- `nombreSeries`

Le webservice de demande de prix créer un dossier (devis) SmartLabel, qui contient les informations suivantes :

- `numero` : Numéro de dossier
- `prix` : Le prix d'achat de la commande, en Euro (€)
- `poids`: Le poids du colis en Kg
- `diametre`: Le diamètre des bobines **(à bien vérifier en cas de pose automatique)**

### Créer un bon de commande et ajouter des modèles

[](#créer-un-bon-de-commande-et-ajouter-des-modèles)

Une fois le dossier créé, il est temps de passer commande ! Pour cela, il vous suffit de passer l'objet Dossier à la méthode `commander`. Vous pouvez passer en argument de cette méthode un identifiant de commande externe, qui pourra vous servir d'identiant pivot pour rattacher la commande SmartLabel à votre ERP / système d'informations.

Cette méthode va créer un bon de commande SmartLabel, qui vous servira à décrire la liste des modèles et leurs fichiers :

```
$bonDeCommande = $smartLabel->commander($dossier, $myOrder->orderID);

foreach($myOrder->getAttachments() as $attachment){
    $bonDeCommande->ajouterModele($attachment['name'], $attachment['filename']);
}
```

Une fois tous les modèles ajoutés, il ne vous reste plus qu'à finaliser ce bon de commande.

```
$smartLabel->finaliserBonDeCommande($bonDeCommande);
```

> La finalisation du bon de commande dépose les fichiers sur le FTP d'Adesa et écrit les fiche de fabrication au format XML.

### Suivre l'avancement des commandes

[](#suivre-lavancement-des-commandes)

Une commande SmartLabel peut se trouver dans quatre états différents :

1. Pas pris en charge
2. En cours
3. Livraison
4. Fichier non conforme

Lorsqu'une commande est en livraison, SmartLabel retourne une URL de tracking vous permettant de suivre le colis sur le site du transporteur ainsi que des informations de livraison, au format texte.

Il est conseillé de mettre en place une tâche récurrent (dans la `crontab` par exemple), qui récupère les statuts de toutes les commandes SmartLabel qui n'ont pas encore été livrées.

```
// toutes vos commandes d'étiquettes smartlabel dans un tableau associatif
// avec pour clé le numéro de dossier
$orders = DB::fetchSmartLabelOrders();

$etats = $smartLabel->etatDossiers(array_keys($orders));

// Le tableau $etats est composé d'objets EtatDossier
foreach($etats as $numeroDossier => $etat) {
    $order = $orders[$numeroDossier];
    switch($etat->code){
        case EtatDossier::LIVRAISON:
            $order->setState("shipping");
            break;
        case EtatDossier::ERREUR_FICHIER:
            if(!$order->isInState("error")){
                $order->setState("error");
                $order->customer->sendErrorMail();
            }
            break;
    }
}
```

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance53

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 54.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~182 days

Total

5

Last Release

1981d ago

Major Versions

1.0 → 2.02019-03-28

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/112633?v=4)[romainbessuges](/maintainers/romainbessuges)[@romainbessuges](https://github.com/romainbessuges)

![](https://www.gravatar.com/avatar/c0e464e57d086b0384224261c8fa825ef258a88d16adb15fd688b8993f86702e?d=identicon)[Weggs](/maintainers/Weggs)

---

Top Contributors

[![romainbessugesmeusy](https://avatars.githubusercontent.com/u/3127404?v=4)](https://github.com/romainbessugesmeusy "romainbessugesmeusy (6 commits)")[![afasciaux](https://avatars.githubusercontent.com/u/17990469?v=4)](https://github.com/afasciaux "afasciaux (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/adesa-smartlabel-client/health.svg)

```
[![Health](https://phpackages.com/badges/adesa-smartlabel-client/health.svg)](https://phpackages.com/packages/adesa-smartlabel-client)
```

###  Alternatives

[symfony/polyfill-php82

Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions

6755.7M123](/packages/symfony-polyfill-php82)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
