Le fichier du client, tel qu’il est.
Un import se casse sur le fichier réel, jamais sur l’exemple : colonnes déplacées, accents mal encodés, dates au format local, lignes vides à la fin. Un script qui refuse tout le fichier pour une ligne fautive est un script qu’on n’utilisera pas.
CSVExcelSFTPLes étapes, dans l’ordre.
- On part du fichier réel. Pas d’un modèle propre. C’est lui qui révèle l’encodage, le séparateur, les cellules fusionnées et la ligne de total qu’il ne faut pas importer.
- Strict à l’écriture, tolérant à la lecture. On accepte les variantes qui ne prêtent pas à confusion — une date, une virgule décimale, un en-tête en majuscules — et on REFUSE ce qui demanderait de devine une intention.
- Le rapport, ligne par ligne. Ce qui est entré, ce qui a été refusé, avec le numéro de ligne et la raison. Un import qui dit « 412 erreurs » sans dire lesquelles ne sert à rien.
- Rejouable, et sans doublon. On relance le même fichier corrigé : les lignes déjà entrées ne se dédoublent pas. C’est la deuxième exécution qui compte.
À la fin, vous avez ça.
- Le script d’import ou d’export, commité et rejouable
- Le rapport par ligne : accepté, refusé, et la raison
- La règle d’unicité qui empêche les doublons à la relance
- La planification, quand l’export doit partir tout seul chaque mois
Les fonctionnalités qui servent ici.
Les questions qu’on nous pose.
Et s’il en manque une, le Discord répond plus vite que cette page.
Peut-on importer depuis un fichier Excel plutôt qu’un CSV ?
Oui. Le CSV est plus simple à relire, mais le fichier Excel est celui que votre client a : on lit le fichier réel, on ne demande pas une conversion qui introduira ses propres erreurs.
Que fait-on des lignes refusées ?
Elles ressortent dans un fichier à part, avec leur raison, prêt à être corrigé et relancé. Les garder dans un journal que personne n’ouvre revient à les perdre.
Et les données personnelles dans ces fichiers ?
Elles ne descendent pas sur un poste en clair : la recette locale exige une commande d’anonymisation, et sans elle le téléchargement est refusé avant d’avoir commencé. L’archive atterrit dans un dossier ignoré par git.
Dans la même famille.
Connecteurs CRM et ERP
Clients, commandes et stocks synchronisés entre le site et les outils de gestion.
Automatisations et webhooks
Une commande arrive, un formulaire part : l’action qui suit se fait seule.
Tableaux de bord
Les chiffres qui comptent, lus directement dans votre base, sans export manuel.