Automatiser l’impression d’étiquettes à codes-barres avec l’API LPSNG
Si votre équipe exporte encore les données de commande, ouvre un modèle d’étiquette, colle les références SKU et clique sur Imprimer une fois par colis, le goulot d’étranglement n’est pas l’imprimante. C’est l’étape manuelle intermédiaire entre vos données et l’étiquette. L’API de service Web LPSNG supprime cette étape : vous soumettez des travaux d’impression par programmation, générez des étiquettes individuelles en PDF ou PNG pour l’aperçu, et envoyez les travaux directement vers des imprimantes thermiques ou standard.
Ce guide couvre les aspects pratiques : la configuration OAuth2 unique, un pipeline automatisé de base, la gestion des échecs et les bonnes pratiques qui maintiennent la fiabilité d’un système d’automatisation d’étiquettes à mesure que le volume augmente.
Configuration unique : connecter votre application à LPSNG
Avant de pouvoir envoyer une seule étiquette, vous devez connecter votre application à LPSNG. LPSNG utilise un protocole d’enregistrement OAuth2 simplifié pour les systèmes externes. Au lieu d’un long processus manuel d’application développeur, la connexion est établie avec une seule URL d’enregistrement.
Le flux fonctionne comme suit :
- Lancez l’enregistrement OAuth2 entre votre application et LPSNG.
- Approuvez la connexion.
- Stockez les identifiants renvoyés dans votre environnement d’intégration.
- Utilisez ces identifiants pour demander des jetons porteurs pour les appels API.
Le même modèle d’enregistrement à URL unique est utilisé pour les systèmes externes tels que les stations de base ESL. Une fois que votre équipe l’a câblé une fois, le schéma est reproductible pour d’autres intégrations.
L’endroit où vous pointez l’API dépend de votre déploiement. L’édition cloud multi-utilisateur hébergée et l’édition embarquée exposent toutes deux l’interface de service Web. Si vous avez besoin d’un chemin en ligne de commande hors ligne ou à haut volume, le LPSNG Player est un moteur d’impression autonome qui prend en charge les entrées de colis et de données et produit une sortie PDF, PNG, JSON, impression ou ESL.
Pour les non-développeurs ou les processus fortement basés sur des feuilles de calcul, le module complémentaire Google Sheets et l’interface Excel sont des voies sans code utiles. Si vous automatisez à partir d’une feuille de calcul plutôt qu’à partir de code, consultez Comment imprimer des étiquettes depuis Google Sheets avec LPSNG avant de créer un client API personnalisé.
Gardez vos identifiants d’intégration hors du contrôle de source :
# .env — stockez dans votre gestionnaire de secrets ou le stockage de secrets CI/CD
LPSNG_BASE_URL=https://<votre-instance-lpsng>
LPSNG_CLIENT_ID=<depuis-l-enregistrement-oauth2>
LPSNG_CLIENT_SECRET=<depuis-l-enregistrement-oauth2>
Construire le pipeline automatisé : des données à l’étiquette imprimée
La boucle principale est simple : votre système de commandes, d’inventaire ou d’expédition contient des enregistrements. Vous regroupez ces enregistrements dans une charge utile de travail et la soumettez à l’API de service Web LPSNG. LPSNG génère les étiquettes à l’aide des modèles que vous avez conçus, et le résultat est soit un travail d’impression sur une imprimante configurée, soit un fichier généré.
Cela vous donne trois modèles utiles :
- Imprimer directement : soumettez le travail et laissez LPSNG l’envoyer à l’imprimante cible.
- Générer pour approbation : générez une étiquette individuelle en PDF ou PNG pour l’aperçu, la pièce jointe d’e-mail ou l’archivage.
- Imprimer et archiver : combinez les deux chemins afin que l’étiquette physique soit imprimée et qu’une preuve PNG/PDF soit stockée dans votre système.
Une intégration Python minimale peut ressembler à ceci. Les chemins d’endpoint et les champs de charge utile sont intentionnellement conceptuels ici — utilisez le guide de l’API de service Web pour les formes exactes des requêtes.
import os
import requests
LPSNG_BASE_URL = os.environ["LPSNG_BASE_URL"]
def get_token():
# Échangez les identifiants d'enregistrement OAuth2 contre un jeton porteur.
# Consultez le guide OAuth2 pour les champs exacts de requête et de réponse.
...
def render_label_preview(template_id: str, record: dict, output_format: str = "png"):
token = get_token()
response = requests.post(
f"{LPSNG_BASE_URL}/<endpoint-de-rendu>", # chemin exact dans le guide de l'API de service Web
headers={"Authorization": f"Bearer {token}"},
json={
"template_id": template_id,
"data": record,
"format": output_format,
},
timeout=30,
)
response.raise_for_status()
return response.content
def submit_print_job(template_id: str, records: list[dict]):
token = get_token()
response = requests.post(
f"{LPSNG_BASE_URL}/<endpoint-de-travaux>",
headers={"Authorization": f"Bearer {token}"},
json={
"template_id": template_id,
"records": records,
},
timeout=30,
)
response.raise_for_status()
return response.json()
Votre charge utile de travail ne doit contenir que les données variables dont votre modèle d’étiquette a besoin. Laissez le modèle responsable de la mise en page, du formatage des codes-barres et du contenu statique.
Pour le contenu dynamique des étiquettes, LPSNG inclut une API de script de champ Python. Vous pouvez attacher des blocs de script Python aux champs d’étiquette afin qu’ils puissent accéder aux valeurs des champs et les modifier avant l’impression. Cela est utile pour le formatage, le nettoyage des données d’entrée ou l’application d’une logique conditionnelle directement dans l’étiquette au lieu de construire toute cette logique dans votre application.
# Script de champ conceptuel attaché à un champ de code-barres ou de texte.
if record.get("country_code") == "DE":
value = value.strip().upper()
La même logique d’automatisation s’étend au-delà des étiquettes papier. Pour les étiquettes électroniques de rayon, LPSNG fournit une interface de fichier JSON neutre vis-à-vis des fournisseurs appelée ESLSEND et une API de liaison ESL. Si votre projet inclut des étiquettes de prix numériques, consultez Que sont les étiquettes électroniques de rayon et comment fonctionnent-elles ? pour le contexte plus large.
Surveillance et gestion des échecs
Un pipeline d’automatisation fiable ne traite pas un travail soumis comme un travail imprimé. Après avoir soumis une demande d’impression, suivez le travail jusqu’à ce qu’il atteigne un état terminal.
L’interface Web LPSNG inclut une file d’attente de travaux, ce qui donne aux opérateurs un point de supervision manuel. Cette file d’attente est utile pour repérer les travaux échoués, vérifier pourquoi une étiquette n’a pas été imprimée et réimprimer sans soumettre à nouveau les données d’origine.
Dans votre code d’intégration, construisez une petite interrogation d’état :
import time
def wait_until_terminal(job_reference: str, timeout: int = 120):
deadline = time.time() + timeout
while time.time() < deadline:
state = get_job_state(job_reference) # depuis l'API ou la file d'attente de travaux
if state in ("printed", "completed", "failed"):
return state
time.sleep(2)
raise TimeoutError(
f"Le travail {job_reference} n'a pas atteint un état terminal en {timeout}s"
)
Pour les nouvelles tentatives, soyez prudent après les délais d’attente réseau. Un délai d’attente ne vous dit pas si le travail a été accepté. Avant de soumettre à nouveau, interrogez la file d’attente de travaux pour votre tentative précédente. Si vous pouvez joindre une référence de travail générée par le client, gardez-la stable entre les nouvelles tentatives afin qu’une soumission en double soit détectable.
En production, journalisez au moins ces champs :
- référence du travail ou ID renvoyé par l’API
- ID du modèle
- identifiants d’enregistrement, tels que le numéro de commande ou la référence SKU
- imprimante ou route de sortie
- statut HTTP et corps d’erreur
Ensuite, alertez sur les travaux échoués plutôt que uniquement sur les erreurs au niveau du service. Une étiquette qui échoue silencieusement est pire qu’un service qui signale une exception.
Bonnes pratiques pour l’automatisation des étiquettes
- Concevez des modèles autour d’espaces réservés de données variables. Plus vous gardez la mise en page, le type de code-barres et l’image de marque statique dans le modèle, moins vous devez modifier de code d’application plus tard.
- Utilisez l’API de script de champ Python pour les transformations au niveau de l’étiquette. Le formatage d’un code-barres, la suppression des espaces d’entrée ou la modification conditionnelle du texte appartiennent au script d’étiquette lorsqu’ils sont spécifiques à l’étiquette.
- Utilisez l’interface Excel pour les tables de correspondance et la validation des données. Si votre application dépend déjà de feuilles de calcul pour les données produit, le mappage ou la validation, LPSNG peut utiliser des fichiers Excel comme fichiers de données et fichiers de correspondance.
- Envisagez l’édition embarquée pour les environnements sur site ou à faible latence. Elle fournit LPSNG complet sur un ordinateur monocarte tel qu’un Raspberry Pi, ce qui est utile lorsque les étiquettes doivent être imprimées même si la connectivité cloud est interrompue.
- Examinez la solution en marque blanche pour les constructions OEM ou revendeur. Si l’impression d’étiquettes est intégrée dans un produit plus vaste, l’édition en marque blanche est conçue pour les fabricants d’imprimantes, les fabricants de papier et les intégrateurs de systèmes.
Dans le studio d’étiquettes du système d’impression d’étiquettes de nouvelle génération, les modèles réutilisables sont la clé de la maintenabilité à long terme. Une bonne règle empirique : si deux étiquettes ne diffèrent que par les données, elles doivent constituer un seul modèle.
FAQ
Quelle méthode d’authentification l’API LPSNG utilise-t-elle ?
LPSNG utilise OAuth2 avec un protocole d’enregistrement simplifié. Vous enregistrez votre application via une URL unique et recevez des identifiants pour authentifier les appels API.
Puis-je générer des aperçus d’étiquettes sans imprimer ?
Oui, l’API de service Web peut générer des étiquettes individuelles sous forme de fichiers PDF ou PNG. Ces fichiers peuvent être utilisés pour les aperçus, les pièces jointes d’e-mail ou l’archivage.
L’API prend-elle en charge tous les formats de codes-barres ?
LPSNG prend en charge une large gamme de formats de codes-barres 1D et 2D. Consultez la documentation sur les formats de codes-barres pour la liste complète.
Existe-t-il une option hors ligne ou sur site pour l’automatisation ?
Oui, le LPSNG Player est un moteur d’impression autonome en ligne de commande qui peut s’exécuter localement, et l’édition embarquée fournit une installation LPSNG complète sur un ordinateur monocarte comme un Raspberry Pi.
Conclusion : commencez à automatiser dès aujourd’hui
L’impression d’étiquettes pilotée par API élimine la copie, le collage et les clics manuels qui causent des expéditions lentes et des envois mal étiquetés. Avec l’API de service Web LPSNG, les mêmes données qui pilotent votre système de commandes ou d’inventaire peuvent produire des étiquettes imprimées, des aperçus PDF et des mises à jour d’étiquettes électroniques de rayon sans personne au milieu.
Commencez petit : choisissez un type d’étiquette, connectez une application et exécutez-la en parallèle de votre processus existant jusqu’à ce que vous ayez confiance dans le résultat. Le système d’impression d’étiquettes de nouvelle génération géré vous donne l’édition cloud et le lecteur autonome pour évaluer le flux de travail sans construire d’abord une salle d’impression entière.
Pour les détails d’implémentation, commencez par la documentation de l’API de service Web et le guide OAuth2.
Articles connexes
- Que sont les étiquettes électroniques de rayon et comment fonctionnent-elles ?
- Comment imprimer des étiquettes depuis Google Sheets avec LPSNG
- Tarification LPSNG : quelle édition correspond à vos besoins ?
