Étendre StillDeep avec des extensions
Des extensions .NET qui s'accrochent aux actions de vente, ajoutent sections et pages à l'Admin, fournissent des articles et s'installent du registre.
Ce qu'une extension peut faire
- S'accrocher aux actions de vente. Passer avant une action (ajouter un article, choisir un mode de paiement, finaliser) pour la laisser continuer, la refuser, l'annuler ou poser une question au caissier ; passer après pour réagir au résultat.
- Ajouter des sections et des pages à l'Admin. Champs de plus dans les formulaires de l'Admin, entrées de menu, rapports et tâches planifiées sur le serveur.
- Fournir des articles au catalogue. Une extension peut ajouter ses propres articles, réalignés à chaque démarrage et soustraits à la modification à la main.
- Tenir ses données à jour. Les migrations de données passent une seule fois par version, sous verrou, pour tous les hôtes du serveur à la fois.
L'extension d'arrondi canadien du comptant est un exemple complet : elle ajoute une ligne d'arrondi quand le comptant est choisi en dollars canadiens et gère les remboursements.
L'hôte ne croit rien
Tout ce qu'une extension écrit ou rend est validé par l'hôte. Une extension qui lève une exception, dépasse son délai ou écrit une donnée invalide est arrêtée, ses inscriptions sont retirées, l'échec est journalisé et la vente continue avec la suivante.
Deux côtés
- Côté poste : une classe qui implémente
IStillDeepPlugininscrit ses crochets de vente et ses gestionnaires d'interaction à son démarrage. - Côté serveur : une classe qui implémente
IServerPlugininscrit ses sections de l'Admin, menus, rapports, tâches et crochets d'entité, et met ses données à jour.
Les abstractions publiques (StillDeep.Intelligence.Plugins.Abstractions, StillDeep.Server.Plugins.Abstractions, StillDeep.Extensions.Abstractions) sont tout ce qu'une extension référence.
Installer et distribuer
Les extensions s'installent depuis l'Admin, à la page Extensions, à partir d'un catalogue public : les dépendances s'activent ensemble, l'empreinte SHA-256 du catalogue est vérifiée et le serveur prépare un paquet pour les postes. Chaque poste récupère les extensions actives après avoir vidé sa file d'envoi, et garde ce qu'il a quand il est hors ligne. Un paquet peut aussi s'ajouter à la main.
La signature des paquets et la licence par poste sont en cours.
Pilotes de matériel
Les pilotes de périphériques et les intégrations optionnelles de tiers sont aussi des extensions. Les paiements par carte vont toujours du terminal au processeur, jamais par une extension qui verrait des numéros de carte.