# Créer un produit

Créer des unités une par une, par lignes saisies à la main ou depuis un fichier CSV, et prévisualiser ce qui sera écrit en chaîne.

Source : https://docs.sealtrust.io/console/creer-un-produit/

---

C'est ici que sont créées de nouvelles unités, une à la fois, par lignes saisies à la main, ou depuis un fichier. Le porteur choisi décide de la suite : les lignes à puce partent dans la file de préparation des tags, les lignes en code imprimé seul partent à la frappe.

![L'écran de création de produits, avec ses trois onglets et le sélecteur de méthode d'authentification](/console/creer-un-produit.fr.webp)

## Ce que l'écran affiche

Trois onglets : « Produit unique », « Lot (plusieurs produits) » et « Depuis CSV ». Un bandeau bleu « Métadonnées auto-générées » rappelle que les métadonnées partent sur IPFS et que leur URI est inscrite en chaîne.

En mode unique : nom du produit, marque, catégorie, modèle produit (optionnel) et un sélecteur NFC, QR ou NFC + QR.

En mode lot : un tableau numéroté, une ligne par unité, avec un bouton « Ajouter une ligne ».

En mode CSV : les colonnes requises et optionnelles, un aperçu des 5 premières lignes acceptées, le compte des lignes valides et des lignes refusées, et le choix du mode de frappe. Au plus 20 lignes refusées sont détaillées, les suivantes sont résumées par un compte.

Après l'envoi, un bandeau vert compte séparément les lignes parties en encodage et celles parties en frappe.

## Ce que vous pouvez y faire

« Prévisualiser ce qui sera écrit en chaîne » affiche l'image de couverture, le JSON exact des métadonnées et des avertissements : modèle manquant, modèle sans image, catégorie manquante, aucun contrat actif enregistré. L'aperçu n'envoie rien en chaîne et ne charge aucun fichier, il appelle les mêmes fonctions de calcul que la frappe. Une réserve : l'image y figure sous son adresse d'origine, alors que la frappe l'épingle d'abord sur IPFS et inscrit l'adresse `ipfs://` à la place.

Vous pouvez ajouter et retirer des lignes dans le tableau du mode lot. En mode CSV, charger un fichier CSV, corriger le fichier à partir des refus numérotés par ligne, puis importer. Les colonnes requises sont `product_name`, `brand_id` et `category_id`, les optionnelles `external_ref`, `metadata_uri`, `owner_email`, `product_model_id`, `product_batch_id` et `auth_method`. Vous choisissez la méthode d'authentification par défaut des lignes qui ne la précisent pas, puis le mode de frappe : une transaction par produit, ou un regroupement annoncé jusqu'à 50 produits par transaction. Ce choix part avec la demande et vaut pour cet import seulement, il ne modifie aucun réglage du serveur.

La préparation d'un lot crée ses articles au statut `ready_to_scan`.

## Ce qui conditionne l'accès

Le bouton de création reste inactif tant que le nom, la marque et la catégorie ne sont pas renseignés, et en mode lot une seule ligne incomplète suffit à le garder inactif. Le bouton d'aperçu reste inactif tant qu'aucune marque n'est choisie. La dernière ligne du tableau du mode lot ne peut pas être supprimée. Le lien « Encoder les tags NFC » du bandeau de succès est réservé à certains profils de marque. Le brouillon du formulaire et l'onglet actif sont conservés, un retour à la connexion ne les efface pas.

À la frappe, le serveur vérifie, marque par marque, que l'offre est active, que le quota mensuel de produits n'est pas dépassé, et que la méthode d'authentification demandée est autorisée par l'offre. Pour les lignes en code imprimé seul, l'identifiant est généré par le serveur, il n'est jamais accepté depuis le navigateur.

## Ce que l'écran refuse

- Un nom manquant, avant l'envoi : « Le nom du produit est requis pour chaque ligne. » Une marque manquante : « La marque est requise. » Une catégorie manquante : « La catégorie est requise. »
- Plus de 10 000 lignes dans un même envoi : 400, avec la consigne de découper le fichier.
- Une méthode d'authentification que l'offre n'autorise pas : 403, code `AUTH_METHOD_NOT_ALLOWED`, avec la liste des méthodes autorisées.
- Un dépassement de quota : 403, code `QUOTA_EXCEEDED`, avec le compte courant, le nombre demandé et le plafond mensuel.
- Un CSV auquel il manque une colonne requise : « Le CSV n'a pas les colonnes requises », et rien n'est importé. Un CSV dont deux colonnes portent le même nom une fois les espaces enlevés est refusé en entier.
- Une ligne CSV dont une valeur est illisible : elle est listée avec son numéro de ligne, sa colonne et la valeur écrite dans le fichier, et elle n'est pas importée.

Quand une erreur mentionne l'offre, un lien vers la page de facturation de la marque concernée est ajouté sous le message.
