DCG - Dossier de Conception Générale Arpelin

1. Objectif du document

Ce document a pour but de présenter l'architecture globale du CMS Arpelin, son environnement technique, sa cartographie fonctionnelle, et les éléments ayant un impact sur la conformité NF525 - Logiciel Gestion de l'Encaissement.

Le DCG constitue le référentiel technique du logiciel Arpelin dans le cadre de la certification NF525, conformément aux exigences du paragraphe 4.3.1 du référentiel.


2. Présentation d'Arpelin

2.1. Description générale

Arpelin est un CMS (Content Management System) cloud, accessible via navigateur web, permettant à tout client de créer et gérer un site web sans installation locale. Le CMS est entièrement hébergé sur un VPS maintenu par l'éditeur.

2.2. Positionnement fonctionnel

Arpelin combine les fonctionnalités d'un CMS traditionnel avec des modules de commerce électronique et de gestion de caisse conformes NF525 :

  • Création et gestion de contenu web

  • Boutique en ligne avec paiement sécurisé

  • Caisse enregistreuse web

  • Bornes de commande automatisées

  • Gestion complète des encaissements

2.3. Modèle de distribution

  • Hébergement : SaaS (Software as a Service)

  • Accès : Interface web sécurisée HTTPS

  • Maintenance : Centralisée par l'éditeur

  • Déploiement : Mutualisé avec isolation des données clients


3. Environnement technique

3.1. Infrastructure d'hébergement

  • Hébergeur : OVH SAS

  • Type : VPS dédié

  • Système d'exploitation : Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-60-generic x86_64)

  • Architecture : x86_64

3.2. Stack technique

  • Serveur web : Nginx 1.24

  • Langage serveur : PHP 8.3

  • Base de données : MariaDB 10.11.13 (MySQL compatible)

  • Chiffrement : HTTPS/TLS obligatoire

  • Gestion de version : Git local

3.3. Architecture mutualisée

Tous les clients partagent un répertoire de code commun (CMS), les données clients sont isolées logiquement par base de données MySQL séparée. Chaque client dispose :

  • D'une base de données dédiée avec identifiant propre

  • D'un répertoire d'assets personnalisés

  • D'un accès conditionné par nom de domaine

  • D'une séparation stricte des données utilisateurs

  • D'une traçabilité complète des actions dans chaque instance


4. Architecture détaillée

4.1. Structure des répertoires

/var/www/
├── _main/              ← Code CMS commun (versionné Git)
│   ├── core/           ← Fonctions principales
│   ├── modules/        ← Modules fonctionnels
│   ├── themes/         ← Templates d'affichage
│   └── api/            ← Interfaces API
├── _files/             ← Scripts privés PHP (versionné Git)
│   ├── config/         ← Configurations système
│   ├── security/       ← Fonctions sécurité
│   ├── database/       ← Accès base de données
│   └── payments/       ← Gestion paiements
├── cms_client1/        ← Instance client 1
│   ├── index.php       ← Point d'entrée
│   ├── images/         ← Fichiers client
│   └── pages/          ← Pages personnalisées créées
├── cms_client2/        ← Instance client 2
└── .git/               ← Dépôt Git (gestion versions)

4.2. Architecture réseau

Internet
    ↓ HTTPS/TLS
[Nginx Load Balancer]

[PHP-FPM 8.3]

[MariaDB 10.11]

[Stockage VPS OVH]

4.3. Bases de données

  • Convention nommage : cms_domaine-client_fr, cms_domaine-client2_com, cms_domaine-clientX_org

  • Taille type : ~5 MB par client actif

  • Accès : Résolution automatique via domaine appelé

  • Isolation : Base dédiée par client, pas de données partagées

  • Sauvegarde : Dump SQL quotidien de chaque base


5. Cartographie fonctionnelle

5.1. Modules principaux

5.1.1. Gestion du contenu

  • Création de pages statiques et dynamiques

  • Gestion des menus de navigation

  • Édition de blocs de contenu

  • Gestion des médias (images, documents)

  • Optimisation SEO intégrée

5.1.2. Gestion des utilisateurs

  • Système d'authentification sécurisé

  • Gestion des rôles et permissions

  • Mode invité pour navigation publique

  • Sessions sécurisées (8 heures)

5.1.3. Commerce électronique

  • Réservation en ligne : Système de booking

  • Commande en ligne : Intégration Stripe/Stancer/Offline

  • Gestion des articles : Catalogue produits

  • Panier dynamique : Gestion temps réel

5.1.4. Paramétrage général

  • Configuration de l'identité visuelle (logo, couleurs)

  • Gestion de l'identification de l'entreprise

  • Paramètres SEO avancés

  • Configuration des moyens de paiement

5.1.5. Statistiques et reporting

  • Statistiques des ventes en temps réel

  • Rapports de performance

5.2. Modules conformes NF525

5.2.1. Caisse enregistreuse web ⭐

  • Interface caissier intuitive

  • Calcul automatique TVA (défini au préalable sur les articles)

  • Génération tickets horodatés

  • Gestion moyens de paiement multiples

  • Traçabilité complète des transactions

5.2.2. Clôtures de caisse ⭐

  • Clôtures automatiques : Programmées (quotidiennes, mensuelles, anuelles)

  • Clôtures manuelles : À la demande du manager ou de l'administrateur (sur période personnalisée)

  • Récapitulatifs détaillés par période

  • Archivage automatique des données

5.2.3. Bornes de commande ⭐

  • Interface client autonome

  • Intégration avec la caisse centrale

  • Validation automatique des commandes

  • Synchronisation temps réel


6. Performances et Dimensionnement

6.1. Capacité serveur

  • Clients simultanés maximum : 50 par VPS

  • Sessions PHP : Durée de vie 8 heures

  • Architecture : Scalable horizontalement (ajout VPS supplémentaires)

  • Temps de réponse : < 2 secondes pour les opérations courantes

6.2. Dimensionnement base de données

  • Taille moyenne par client : ~5 MB (client type avec quelques mois d'activité)

  • Isolation : Une base de données MySQL dédiée par client

  • Croissance estimée : Variable selon activité client

  • Optimisation : Index sur tables critiques (transactions, logs, closures)

6.3. Métriques de référence

  • Client type : 4.77 MB (activité e-commerce quelques mois)

  • Capacité VPS : 50 clients simultanés maximum

  • Temps session : 8 heures pour maintenir continuité caisse

  • Rétention backup : 7 jours (conformité opérationnelle)


7. Sauvegarde et Continuité

7.1. Stratégie de sauvegarde

  • Fréquence : Quotidienne via script cron automatisé

  • Contenu : Données clients (bases MySQL) + pages créées + images importées

  • Rétention : 7 jours glissants

  • Localisation : VPS OVH (stockage local sécurisé)

  • Format : Dumps SQL compressés + archive fichiers

7.2. Procédure de restauration

  • Méthode : Import manuel des dumps SQL de sauvegarde

  • Temps de restauration : Selon taille base client (quelques minutes)

  • Validation : Vérification fonctionnelle post-restauration

  • Documentation : Procédure détaillée disponible

  • Tests : Validation mensuelle des sauvegardes

7.3. Plan de continuité

  • RTO (Recovery Time Objective) : 4 heures maximum

  • RPO (Recovery Point Objective) : 24 heures maximum

  • Escalade : Contact éditeur 24h/24 en cas d'urgence

  • Communication : Information clients via canaux dédiés


8. Sécurité et Monitoring

8.1. Authentification et accès

  • HTTPS : Certificat SSL/TLS obligatoire pour tous les accès

  • Authentification : Mot de passe sécurisé par client/caissier

  • Sessions : Durée 8h avec régénération automatique

  • Accès base : Accès distant possible avec identifiants phpMyAdmin

  • Chiffrement : Données sensibles chiffrées en base

8.2. Isolation des données

  • Séparation physique : Base MySQL dédiée par client

  • Accès conditionnel : Résolution par nom de domaine

  • Logs d'audit : Traçabilité complète dans table 'logs'

  • Permissions : Droits granulaires par utilisateur

  • Conformité RGPD : Gestion des données personnelles

8.3. Monitoring et surveillance

  • Charge serveur : Surveillance via htop (ligne de commande)

  • Base de données : Monitoring via interface phpMyAdmin

  • Logs système : Centralisation et analyse

  • Alertes : Surveillance manuelle de la performance, e-mail reçu lorsque stockage VPS presque plein

  • Maintenance : Intervention réactive selon besoins


9. Modèle conceptuel de données

9.1. Tables principales

Table
Description
Rôle NF525

Users

Gestion des utilisateurs et caissiers

Traçabilité des actions

Commandes

Intentions de paiement (payées et non payées)

Base des transactions

Transactions

Commandes validées et archivées

Données certifiées

Totals

Total perpétuel des encaissements

Contrôle de cohérence

Panier_utilisateur

Paniers en cours (caissiers et clients)

Gestion temps réel

Logs

Historique des modifications et suppressions

Audit NF525

Closures

Clôtures manuelles et automatiques

Archivage NF525

Categories

Catégories des articles

Organisation catalogue

Articles

Catalogue produits et services

Base commerciale

Archives

Références des archives créées sur VPS

Traçabilité NF525

9.2. Relations critiques NF525

Articles → Panier_utilisateur → Commandes → Transactions

                                  Logs (audit)

                                  Closures → Archives

9.3. Contraintes d'intégrité

  • Transactions : Non modifiables après validation

  • Logs : Ajout uniquement (pas de modification/suppression)

  • Closures : Horodatage automatique et figé

  • Archives : Références immuables des fichiers générés


10. Gestion des flux d'interfaces

10.1. Interfaces externes

Le CMS Arpelin ne expose pas d'API publique, mais communique avec :

  • Stripe API : Paiements par carte bancaire en ligne.

  • Stancer API : Paiements par carte bancaire en ligne.

  • Sumup : Paiements par carte bancaire en personne.

  • Smile&Pay : Paiements par carte bancaire en personne.

  • Webhooks : Retours automatiques de validation

10.2. Flux d'échange sécurisés

Tous les flux d'échange sont journalisés :

  • Validation de commande

  • Confirmation de paiement

  • Retour webhook des passerelles

  • Mise à jour statuts en base client

10.3. Format des données

  • API REST : JSON pour les échanges

  • Chiffrement : HTTPS/TLS pour tous les flux

  • Authentification : Clés API sécurisées

  • Logs : Horodatage et traçabilité complète


11. Modules impactés par la conformité NF525

11.1. Périmètre de certification ⭐

Caisse enregistreuse web

  • Génération automatique de tickets numérotés et horodatés

  • Tickets non modifiables après validation

  • Traçabilité complète des opérations

  • Gestion TVA automatique et conforme

Bornes de commande

  • Intégration avec la caisse centrale

  • Processus de validation identique

  • Archivage selon même processus

  • Synchronisation temps réel des données

11.2. Exigences respectées

Ces modules sont soumis aux exigences de :

  • Traçabilité : Table logs + horodatage

  • Inaltérabilité : Données figées post-validation

  • Clôture : Automatique et manuelle

  • Archivage : Conservation données conformément à la réglementation

11.3. Processus de conformité

  1. Encaissement → Enregistrement table transactions

  2. Validation → Génération ticket horodaté

  3. Archivage → Stockage immutable

  4. Clôture → Récapitulatif période + archive

  5. Audit → Accès logs complets via table logs et JET


12. Évolutions et Maintenance

12.1. Gestion des versions

  • Git : Versioning du code source (_main et _files)

  • Tags : Versions stables horodatées

  • Déploiement : Mise à jour centralisée

  • Rollback : Retour version antérieure possible

12.2. Maintenance préventive

  • Mises à jour sécurité : Automatiques (OS, PHP)

  • Optimisation base : Mensuelle

  • Nettoyage logs : Selon politique rétention

  • Tests fonctionnels : Avant chaque déploiement

12.3. Support et évolutions

  • Hotline : Support technique dédié

  • Évolutions : Roadmap produit documentée

  • Formation : Accompagnement utilisateurs par téléphone, sur place ou via des vidéos tutoriels

  • Documentation : Mise à jour continue


13. Conformité et Audit

13.1. Traçabilité NF525

  • Logs complets : Toutes actions tracées

  • Horodatage : Précision à la seconde

  • Immutabilité : Données figées après validation

  • Archivage : Conservation réglementaire

13.2. Procédures d'audit

  • Accès données : Via interface dédiée

  • Extraction : Exports conformes aux standards (Jet .CSV)

  • Vérification : Cohérence données garantie via empreinte numérique et contrôle intégrité

  • Documentation : Procédures formalisées

13.3. Mise à disposition administration

En cas de contrôle fiscal ou demande administrative :

  • Documentation technique : DCG complet

  • Accès aux données : Via outils d'extraction

  • Logs d'audit : Historique complet disponible

  • Support : Accompagnement procédures

🏛️ Mapping R13 pour la table "transactions" (ventes réalisées) - Documentation de conformité INFOCERT

Correspondance entre le dictionnaire R13 v4.2 et l'implémentation logiciel Arpelin


📊 Légende

Statut
Description

✅ CONFORME

Entièrement implémenté

⚠️ PARTIEL

Partiellement implémenté

➖ N/A

Non applicable


📋 6.1.1 - DONNÉES D'EN-TÊTE

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

1

Identifiant unique de pièce

ENC-NID

id

transactions

✅ CONFORME

Auto-incrémenté

2

Numéro unique de pièce

ENC-TIK-NUM

numero_ticket

transactions

✅ CONFORME

Format T000001

5

Version du logiciel

ENC-TIK-TAG-VER

version_logiciel

transactions

✅ CONFORME

Figée au moment de la transaction

6

Nombre d'impressions

ENC-TIK-PRN-NBR

nb_impressions_panier

transactions

✅ CONFORME

Incrémenté automatiquement

7

Nom de l'émetteur

ENC-TIK-SOC-ETS

ticket_prestataire

transactions/config

✅ CONFORME

Configuration globale

9-12

Adresse de l'émetteur

ENC-TIK-SOC-ADR

ticket_adresse_ligne_1/2/3

transactions/config

✅ CONFORME

Adresse complète

13

SIRET de l'émetteur

ENC-TIK-SOC-SIR

ticket_siret

transactions/config

✅ CONFORME

SIRET complet

23

Date et heure d'enregistrement

ENC-TIK-HOR-GDH

date_heure_enregistrement

transactions

✅ CONFORME

Format AAAAMMJJHHMMSS

24

Type d'opération

ENC-OPE-TYP

type_operation

transactions

✅ CONFORME

VENTE par défaut

25

Type de document

ENC-TIK-DOC-TYP

type_document

transactions

✅ CONFORME

TICKET par défaut

29

Signature Électronique

ENC-TIK-TAG-SIG

signature

transactions

✅ CONFORME

Base64URL

31

Restitution Signature

ENC-TIK-TAG-RET

extrait_signature

transactions

✅ CONFORME

Positions 3,7,13,19

32

Hash/condensat

ENC-TIK-HASH

current_hash

transactions

✅ CONFORME

SHA-256

33

Chaîne avant hash

ENC-TIK-ARG

chaine_hash

transactions

✅ CONFORME

Chaîne complète stockée


📝 6.1.2 - DONNÉES DES LIGNES

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

5

Désignation du produit

ENC-TIK-LIG-PRO-LIB

nom_article

transactions

✅ CONFORME

Nom complet de l'article

6

Quantité du produit

ENC-TIK-LIG-PROQTE

quantite

transactions

✅ CONFORME

Entier

7

Code TVA

ENC-TIK-LIG-TAXNID

code_tva

transactions

✅ CONFORME

Format 4 chiffres (ex: 2000)

8

Taux TVA

ENC-TIK-LIG-TAXTXX

tva

transactions

✅ CONFORME

Décimal (ex: 20.00)

11

Prix unitaire HT

ENC-TIK-LIG-PROMHT

prix_article_ht

transactions

✅ CONFORME

Calculé et stocké

12

Prix unitaire TTC

ENC-TIK-LIG-PROTTC

prix_article

transactions

✅ CONFORME

Prix de vente

16

Total HT

ENC-TIK-LIG-TOTMHT

sous_total_ht

transactions

✅ CONFORME

Quantité × Prix HT

17

Total TTC

ENC-TIK-LIG-TOTTTC

sous_total

transactions

✅ CONFORME

Quantité × Prix TTC


🧮 6.1.3 - DONNÉES RÉCAPITULATIVES

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

3

Total HT de la pièce

ENC-TIK-TOT-MHT

total_ht_ticket

transactions

✅ CONFORME

Somme des HT

4

Total TTC de la pièce

ENC-TIK-TOT-TTC

total_ttc_ticket

transactions

✅ CONFORME

Somme des TTC

3-6

Récap par taux TVA

ENC-TIK-TVA-*

ventilation_tva

transactions

✅ CONFORME

Format: 2000:3600|1000:2200


💳 6.1.4 - DONNÉES DE RÈGLEMENTS

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

3-4

Mode de règlement

ENC-TIK-REG-TYP

payment_method

transactions

✅ CONFORME

Format: Méthode:Montant

6

Montant du règlement

ENC-TIK-REG-MTN

sous_total

transactions

✅ CONFORME

Montant total payé


🔄 6.2 - TRAÇABILITÉ DES DUPLICATAS

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

4

Numéro de réimpression

ENC-DUP-PRNNUM

nb_impressions_panier

transactions

✅ CONFORME

Incrémenté à chaque impression

6

Date d'émission duplicata

ENC-DUP-HORGDH

date_derniere_impression

transactions

✅ CONFORME

Horodatage de dernière impression


📊 6.3 - GRANDS TOTAUX PERPÉTUELS

Champ R13
Label FIDELE
Champ logiciel
Table/Source
Statut
Commentaire

7

Grand Total Perpétuel Cumul Algébrique

ENC-GTT-PER-TTC

perpetual_total

totals

✅ CONFORME

GTPCA - Mis à jour à chaque vente


🔒 7. DONNÉES CONSTITUTIVES DE LA SIGNATURE ÉLECTRONIQUE

Position
Champ R13
Label FIDELE
Implémentation
Statut
Commentaire

1

Montants HT/TTC ventilés par taux TVA

TAG-TIK-TOT-TTCTVA

$ventilation_tva

✅ CONFORME

Format: 2000:3600|1000:2200

2

Montant Total de l'opération

TAG-TIK-TOT-TTC

$total_centimes

✅ CONFORME

En centimes sans décimale

3

Date et Heure enregistrement

TAG-TIK-HOR-GDH

$date_heure

✅ CONFORME

Format AAAAMMJJHHMMSS

4

Numéro de la pièce

TAG-TIK-NUM

$numero_piece

✅ CONFORME

Format T000001

5

Type d'opération

TAG-TIK-OPE-TYP

$type_operation

✅ CONFORME

VENTE par défaut

6

Indication report signature précédente

TAG-TIK-OEN

$report_signature

✅ CONFORME

N (première) ou O (suivantes)

7

Signature précédente

TAG-TIK-SIG

$previous_signature

✅ CONFORME

Chaînage des signatures


📝 CODES ÉVÉNEMENTS JET (R19)

Code
Événement R19
Implémentation
Fonction utilisée
Statut

80

Démarrage session

insertLog($conn, $user_id, "Début session paiement", 80, $role)

Début transformation note→ticket

✅ CONFORME

100

Début fonction spéciale

insertLog($conn, $user_id, "Début transformation note", 100, $role)

Début génération ticket

✅ CONFORME

105

Fin fonction spéciale

insertLog($conn, $user_id, "Fin transformation", 105, $role)

Fin génération ticket

✅ CONFORME


📋 Résumé de conformité

  • Total des exigences mappées: 34

  • Conformes: 34 (100%)

  • Partielles: 0 (0%)

  • Non applicables: 0 (0%)

🎯 Points clés de l'implémentation

  1. Signature électronique : Implémentation complète du chaînage des signatures avec SHA-256

  2. Traçabilité : Gestion des duplicatas et du Grand Total Perpétuel Cumul Algébrique (GTPCA)

  3. Événements JET : Logging complet des codes R19 pour l'audit

  4. Données fiscales : Ventilation TVA conforme au format requis

📚 Références

  • R13 v4.2 : Dictionnaire INFOCERT pour les logiciels de caisse

  • NF525 : Norme française pour les logiciels de gestion de l'encaissement

  • Logiciel : Arpelin - Version certifiée


Document établi dans le cadre de la certification NF525 Version : 2.0 Responsable : Emre KOSE

Last updated