DSF - Dossier de Spécifications Fonctionnelles Arpelin
1. Objectif du document
Ce document décrit les spécifications fonctionnelles détaillées du logiciel Arpelin, en particulier les modules de caisse enregistreuse et bornes de commande soumis à la certification NF525. Il constitue le référentiel fonctionnel du logiciel dans le cadre de la conformité aux exigences de la Partie 10 du référentiel NF525.
2. Vue d'ensemble fonctionnelle
2.1. Périmètre fonctionnel NF525
Arpelin intègre deux modules principaux soumis à la certification NF525 :
Caisse enregistreuse web : Interface de vente au comptoir
Bornes de commande : Interface de commande autonome client
Ces modules respectent les exigences de traçabilité, inaltérabilité, clôture et archivage des données fiscales.
HTTPS obligatoire : Chiffrement de toutes les communications
Session sécurisée : Token de session régénéré
Droits granulaires : Permissions selon le rôle utilisateur
3.2. Interface principale de caisse
3.2.1. Organisation de l'écran
L'interface principale se compose de deux sections principales :
Panel Préparations :
Commandes internet (non payées/payées/faites)
Commandes bornes (non payées/payées/faites)
Commandes caisse (non payées/payées/faites)
Statut temps réel de toutes les commandes
Les commandes marquées comme retirées ne sont pas affichées dans le panel préparations.
Section Caisse :
Zone d'ajout d'articles au panier
Visualisation du panier en cours
Interface d'encaissement et validation
Génération de tickets
3.2.2. Workflow de vente
3.3. Gestion des articles
3.3.1. Ajout d'articles au panier
Saisie manuelle : Sélection depuis catalogue
Code-barres : Scan QR code dans champ dédié
Quantités : Modification possible avant validation
3.3.2. Informations article
Prix TTC : Affichage obligatoire TTC
TVA : Taux défini par article (5.5%, 10%, 20%...)
Stock : Contrôle disponibilité si activé
Catégorie : Classification pour s'y retrouver plus facilement
3.3.3. Restrictions tarifaires
Pas de remises : Système sans remises programmables, mais remise possible manuellement depuis la caisse.
Prix fixes : Tarifs définis en back-office uniquement
TVA obligatoire : Taux TVA requis par article
3.4. Processus d'encaissement
3.4.1. Moyens de paiement supportés
Moyen
Type
Validation
Intégration
Espèces
Manuel
Caissier
Saisie montant
CB Manuel
Manuel
Caissier
TPE externe, saisie montant
CB Auto SumUp
Automatique
API
Intégration directe
CB Auto Smile&Pay
Automatique
API
Intégration directe
Titres Restaurant
Manuel
Caissier
Saisie montant
Satispay
Manuel
Caissier
Saisie montant
3.4.2. Validation paiement
Paiement total : Un seul moyen de paiement
Paiement fractionné : Plusieurs moyens possibles
Montant restant : Affichage temps réel
Trop-perçu : Montant négatif affiché, impossibilité de valider (pas de gestion rendu)
3.4.3. Workflow validation
3.5. Génération de tickets ⭐
3.5.1. Format et impression
Format : Optimisé imprimantes thermiques 80mm
Compatibilité : Toute imprimante compatible navigateur
Contenu : Conforme réglementation fiscale française
Horodatage : Date/heure précise au moment de validation
3.5.2. Numérotation
Incrémentation automatique : Numéro séquentiel par client (ID Panier)
Gestion duplicatas : Système anti-collision
Unicité garantie : Un numéro = une transaction unique
Traçabilité : Lien avec table transactions
3.5.3. Contenu ticket obligatoire
3.5.4. Réimpression
Accès : Managers, Caissiers, Administrateurs
Mention obligatoire : "DUPLICATA" visible avec numéro duplicata
Traçabilité : Log de réimpression enregistré
Limite : Période de conservation des données
3.6. Traçabilité et logs - JET⭐
3.6.1. Enregistrement des actions
Chaque action de caisse génère un enregistrement :
Utilisateur : Identification du caissier
Horodatage : Précision à la seconde
Action : Type d'opération effectuée
Données : Détail complet de la transaction
3.6.2. Table Logs (audit NF525)
Champ
Type
Rôle NF525
id
int(11)
Identifiant unique log
user_id
varchar(255)
Traçabilité utilisateur
action
text
Type d'action effectuée
function
varchar(50)
Fonction système appelée
log_date
datetime
Horodatage précis
signature
text
Empreinte de validation
current_hash
varchar(64)
Hash action actuelle
previous_hash
varchar(64)
Chaînage avec log précédent
Le JET (journal d'évènements techniques) est consultable et téléchargeable depuis l'onglet Ventes > JET
🛒 Gestion des commandes
ORDER_PICKUP- Commande retirée
ORDER_DELETE- Commande supprimée
UNPAID_ORDER_DELETE- Commande non payée supprimée
CANCEL_ENTRY- Annulation d'entrée
💰 Gestion des prix
PRICE_MODIFY- Modification de prix
DISCOUNT_ITEM- Remise sur article
DISCOUNT_GLOBAL- Remise globale
🛍️ Gestion du panier
CART_VIEW- Consultation panier
CART_UPDATE- Mise à jour panier
CART_GLOBAL- Action globale panier
📚 Documentation du système JET
🔗 Système de chaînage blockchain
Principe : Chaque log est lié au précédent par un hash cryptographique, créant une chaîne inviolable.
Hash actuel :Empreinte SHA-256 de toutes les données du log
Hash précédent :Référence au hash du log précédent
Signature :Signature cryptographique des données
📍 Toute modification d'un log casse la chaîne et est détectable.
📊 Hash de contrôle d'export
Définition : Empreinte numérique calculée sur l'ensemble des données exportées.
Utilité :
Vérifier l'intégrité du fichier exporté
Prouver qu'aucune modification n'a eu lieu
Garantir la conformité lors d'audits
💡 Comme un "cachet de cire numérique" pour vos exports.
🔍 Vérification d'intégrité
Processus : Contrôle automatique de toute la chaîne de logs.
Vérifications effectuées :
Continuité du chaînage entre logs
Validité des signatures cryptographiques
Intégrité des hash calculés
Rapport détaillé des anomalies
⚠️ Une chaîne brisée indique une tentative de falsification.
📋 Format d'export CSV
Contenu du fichier :
Métadonnées d'export (date, utilisateur, type)
Dictionnaire des codes d'action
Données complètes des logs
Statistiques de l'export
Hash de contrôle pour vérification
🎯 Format prêt pour audits et conformité réglementaire.
Une vérification automatique de la chaîne est possible depuis la page JET. Vous pouvez trier le journal d'évènements techniques par utilisateur, date ou code fonction.
4. Module Bornes de Commande ⭐
4.1. Interface client autonome
4.1.1. Caractéristiques
100% autonome : Aucune intervention requise
Interface tactile : Optimisée pour écran tactile
Catalogue dynamique : Synchronisé avec back-office
Multilangue : Support plusieurs langues si configuré
4.1.2. Processus de commande
4.2. Gestion des commandes
4.2.1. Types de paiement
Paiement comptoir : Statut "Non payée" → Traitement en caisse
Paiement CB borne : Statut "Payée" → Traitement direct
Validation automatique : Intégration API paiement
4.2.2. Synchronisation temps réel
Transmission immédiate : Commande visible en caisse instantanément
Statuts partagés : Mise à jour temps réel (non payée/payée/faite)
Base unique : Même table de données que caisse manuelle
4.3. Intégration avec la caisse
4.3.1. Workflow intégré
4.3.2. Traçabilité unifiée
Même processus : Validation et archivage identiques
Même numérotation : Tickets séquentiels unifiés
Mêmes logs : Table d'audit commune
Mêmes clôtures : Inclus dans rapports automatiques
5. Gestion des Stocks et Articles
5.1. Administration des articles
5.1.1. Création/modification
Interface : Onglet "Articles" du back-office
Saisie manuelle : Tous champs modifiables
Import codes-barres : Scan direct dans champ dédié
Validation : Contrôles obligatoires (prix, TVA)
5.1.2. Informations requises
5.2. Gestion des stocks
5.2.1. Activation optionnelle
Par défaut : Gestion stock désactivée
Activation : Par article individuellement
Contrôle : Vérification disponibilité à la vente
Alertes : Stock bas configurable
5.2.2. Mouvement de stock
Décrémentation automatique : À chaque vente validée
Correction manuelle : Via back-office (tracée)
Inventaire : Mise à jour globale possible
Historique : Tous mouvements tracés
5.3. Codes-barres et scanning
5.3.1. Support technique
Format : QR Code principalement
Compatibilité : Codes-barres standards
Saisie : Champ dédié dans interface caisse
Recherche : Correspondance automatique article
5.3.2. Workflow scanning
6. Système de Clôtures ⭐
6.1. Clôtures automatiques
6.1.1. Programmation
Quotidienne : Tous les jours à 00h00 (minuit)
Mensuelle : Premier jour du mois à 00h00
Annuelle : Premier janvier à 00h00
Exécution : Script automatisé (cron)
6.1.2. Contenu rapport automatique
Basé sur l'exemple fourni (Rapport #194) :
6.2. Clôtures manuelles
6.2.1. Droits d'accès
Managers : Clôture manuelle autorisée
Administrateurs : Clôture manuelle autorisée
Caissiers : Clôture manuelle interdite
Période : Configurable (journée, période personnalisée)
6.2.2. Déclenchement manuel
Interface : Back-office, section clôtures
Validation : Confirmation obligatoire
Génération : Rapport identique aux automatiques
Traçabilité : Utilisateur et horodatage enregistrés
6.3. Sécurisation et intégrité ⭐
6.3.1. Système de hashage
Hash précédent : Référence clôture antérieure
Hash actuel : Empreinte données actuelles
Chaînage cryptographique : Intégrité de la séquence
1. EN-TÊTE
- Numéro clôture incrémental
- Période (date début/fin)
- Date génération
2. RÉSUMÉ VENTES
- Total brut TTC des ventes
- Total TTC des remboursements
- Total TTC net
- Total net TVA
- Total net des ventes HT
3. DÉTAILS TVA
- Par taux (5.5%, 10%, 20%...)
- Montant TVA par taux
4. MÉTHODES PAIEMENT
- Nombre transactions par moyen
- Total par moyen de paiement
- Répartition complète
5. DONNÉES HASHAGE ⭐
- Hash précédent (chaînage)
- Hash actuel (intégrité)
- Signature cryptographique