Version 0.3.43, 30 septembre 2026
- Mode caisse enregistreuse : vente au comptoir (scan EAN13, remises ligne et panier, client comptoir ou client existant, paiements multiples avec rendu de monnaie), commande PrestaShop créée à l'encaissement, ticket imprimable, duplicata et annulation ; journal de caisse inaltérable (écritures chaînées et signées, grand total perpétuel, clôtures journalières, mensuelles et annuelles automatiques, événements techniques, archives signées, copie sur la boutique) ; caisse verrouillée (code 4 chiffres) et retour à l'administration (code 6 chiffres) ; mot de passe au lancement du logiciel ; onglets Système › Caisse et Sécurité ; moyens de paiement de la boutique synchronisés (module 0.30.0)
Version 0.3.42, 30 septembre 2026
- Rapports : colonnes triables (croissant / décroissant) ; Import : « Coller depuis Excel » (cellules copiées, rapprochées par référence ou EAN) ; modification en masse : prix d'achat cité dans « Affecter une valeur » ; séparateur de milliers lisible (espace insécable au lieu de l'espace fine)
Version 0.3.41, 30 septembre 2026
- Sécurité : clés d'appairage limitées aux ressources du module, pont PrestaShop 1.6 avec droits vérifiés par ressource (Commandes, Clients), import d'images par URL réservé aux adresses publiques ; comptabilité et clients d'un produit lus par lots (grosses boutiques) ; journal des changements borné même sans lecture par l'app (module 0.29.1)
Version 0.3.40, 30 septembre 2026
- Picking sur le cache local (verrous relus en direct) et contrôle du colis à la main ; filtres EAN, prix d'achat et sous le prix d'achat par déclinaison (module 0.29.0) ; conditions de filtre isolées (doublons + catégorie)
Version 0.3.39, 30 septembre 2026
- Commandes et clients : barre de sélection flottante ; picking : le scan ne vole plus le focus ; barre latérale repliable (Système replié) ; tableau de bord : contrôle « Sans prix d'achat », période du CA, plus de chiffres d'une autre boutique au changement
Version 0.3.38, 30 septembre 2026
- Tableau de bord : chiffres relus à la fin de la synchro complète (ventes comprises)
Version 0.3.37, 30 septembre 2026
- Catalogue : « Modifier en masse » et toutes les actions depuis une plage de cellules (sans resélectionner les lignes)
Version 0.3.36, 30 septembre 2026
- Tableau de bord : ventes et clients synchronisés après le catalogue (ouverture, bouton, synchro auto)
Version 0.3.35, 30 septembre 2026
- Licence : un jeton neuf du serveur lève la révocation locale (licence réactivée dans l'administration)
Version 0.3.34, 30 septembre 2026
- Menus macOS traduits : À propos, Édition, Fenêtre, Aide ; navigation (licence valide) comme la barre latérale
Version 0.3.33, 30 septembre 2026
- Achat : paiement Stripe dans une fenêtre de l'app ; abandon détecté (fenêtre fermée ou retour)
Version 0.3.31, 29 septembre 2026
- Import : une colonne par image (Image 1 … Image 10) ; tableau de bord plus vivant
- Import catalogue : plusieurs colonnes mappées sur « Images », URLs ajoutées dans l'ordre des
- Tableau de bord : bandeau CA 30 jours avec évolution et courbe, compteurs animés, état de synchro
Version 0.3.30, 29 septembre 2026
- Tableau de bord (écran d'accueil) avec état de la synchro ; « Plus de vues » dans le catalogue
- Tableau de bord : état de la synchro en tête (catalogue, ventes et clients, file d'envoi, hors ligne,
- Catalogue : le menu « Contrôles… » devient des onglets affichés par « Plus de vues ».
Version 0.3.29, 29 septembre 2026
- Recherche : le champ des en-têtes ne descend plus sur les onglets
Version 0.3.28, 29 septembre 2026
- Interface FR/EN, réassort, recherche globale, photos réarrangées
- i18n : t() avec le texte français comme clé, dictionnaire anglais dans app/src/en.json,
- Rapports : réassort et produits dormants (ventes de la période rapprochées du stock).
- Recherche globale (produits, commandes, clients).
- Fiche produit : photo principale, ordre et suppression des photos (module 0.28.0, images.arrange).
- Comptabilité : pièces de la période gardées en cache (période en cours relue après 15 min).
- Catalogue : contrôles doublons et produits sans image.
Version 0.3.27, 29 septembre 2026
- Import : proposer la création des catégories inconnues
- Module : produits comptés sur la boutique courante (product_shop), capacité categories.parentKey
- Catalogue : synchro automatique toutes les 15 minutes (produits, ventes)
Version 0.3.26, 29 septembre 2026
- Images en masse (URL ou fichier) et « Voir sur la boutique » au clic droit
- Menu IA séparé : Configuration IA et Journal IA
- Promos : ajouter des produits à une campagne existante (mêmes dates et portée)
- Connexion : retirer une boutique de ce poste (profil et secrets)
- Webservice : 404 du module expliqué, index relu après une erreur réseau
Version 0.3.25, 29 septembre 2026
- Module 0.25.1 : plus de
usedans psmanager.php (PS 1.6 plantait)
Version 0.3.24, 29 septembre 2026
- Connexion en un clic entre le module et l'application
Version 0.3.23, 29 septembre 2026
- Essai démarré à la première synchro réussie ; attribution ; CGV et mentions légales
- Essai de 14 jours : demandé après la première synchronisation réussie, plus au premier lancement.
- « Comment avez-vous connu One Shop Manager ? » : écran Attribution, table attributions (migration
- Site : pages CGV et mentions légales.
- Expéditions : retouches d'affichage.
Version 0.3.21, 28 septembre 2026
- Cache des ventes : changement de schéma refait en place (table orders already exists quand l'ancien fichier restait ouvert)
Version 0.3.20, 28 septembre 2026
- Attributs : nettoyage global, déclinaisons par valeur, formulaire et infobulles ; module : icône ; affranchissement : menu élargi, mapping sans logos, « Saisir des suivis » ouvre le tableau
Version 0.3.19, 28 septembre 2026
- Textes des catégories en cache : MCP sur le cache local uniquement, écran Catégories hors ligne
Version 0.3.18, 28 septembre 2026
- Import inutilisé retiré (CI 0.3.17 en échec)
Version 0.3.17, 28 septembre 2026
- MCP sur le cache local uniquement ; hors ligne : textes, déclinaisons et attributs en cache ; filtres de la vue Déclinaisons par ligne ; rapport des ventes indexé
Version 0.3.16, 28 septembre 2026
- Affranchissement : connecteurs transporteurs modulaires (trait Carrier) + DPD, retours, bordereaux, contrats multiples ; écran Attributs (module 0.24.0) ; raccourcis ⌘ / Ctrl selon l'OS
Version 0.3.15, 28 septembre 2026
- Affranchissement bêta : CN23 Colissimo, Chronopost et Mondial Relay alignés sur leurs modules officiels, historique des étiquettes (module 0.23.1) ; exports CSV avec « Enregistrer sous »
Version 0.3.14, 28 septembre 2026
- Affranchissement : étiquettes Colissimo, Chronopost et Mondial Relay (module 0.23.0) ; vue éclatée du catalogue paginée
Version 0.3.13, 28 septembre 2026
- Accès IA pas à pas (Claude Desktop branché en un clic) ; actions en masse dans la vue Déclinaisons
- Accès IA : étapes numérotées toujours visibles ; bouton « Brancher Claude Desktop » (fusion de claude_desktop_config.json, jamais écrasé s'il est illisible) ; Claude Code en --scope user ; vérification et dépannage.
- Vue Déclinaisons : lignes cochables, « Modifier les déclinaisons… » ouvre Déclinaisons en masse pré-cochée, delta après envoi.
- Site : l'accès IA s'active depuis le menu Accès IA.
Version 0.3.12, 28 septembre 2026
- Déclinaisons en cache local : lues à la synchro avec leur produit, vue éclatée instantanée
- Table combinations (schéma 4, cache resynchronisé) : remplie en fin de copie complète, remplacée par produit au delta (le module journalise les déclinaisons sous leur produit), supprimée avec le produit.
- Commande catalog_combinations : prix HT / TTC finaux calculés en Decimal.
- Vue « Déclinaisons » lue dans le cache ; delta lancé en y entrant ; libellé d'attributs partagé (Combinations::label).
Version 0.3.11, 28 septembre 2026
- Catalogue : vue éclatée par déclinaison ; Accès IA dans le menu principal ; module à télécharger depuis la connexion
- Bascule « Produits | Déclinaisons » : une ligne par article vendable (déclinaison ou produit simple), lecture seule, double-clic = fiche produit.
- Accès IA sort de Configuration : entrée du menu principal (badge Bêta ou nombre de propositions à valider).
- Écran de connexion : étape « Installer le module psmanager » avec téléchargement du .zip.
Version 0.3.9, 28 septembre 2026
- Travail hors ligne : file d'envoi, modifications visibles tout de suite, envoi au retour du réseau
- « Travailler hors ligne » (écran File d'envoi) : les opérations du catalogue passent en file au lieu
- Cache local : les valeurs en file s'affichent (lignes surlignées) et la synchro ne les écrase pas ;
- Envoi automatique dans l'ordre (essai toutes les 30 s, après synchro, au passage en ligne) avec les
- Commandes et créations restent en ligne. Test live PS9 avec boutique injoignable puis envoi réel.
- File d'envoi : la boutique est maître, une modification en file dépassée tombe en conflit
- File d'envoi : catégories des produits visibles en file (filtre et catégorie par défaut)
- Test : assert! plutôt que assert_eq!(…, true)
- Écran d'accueil : un clic ouvre la boutique, la configuration seulement pour ajouter ou modifier
- Mesure du funnel PostHog : visite, téléchargement, essai, usage, achat
Version 0.3.8, 28 septembre 2026
- Essai automatique de 14 jours, paiement Stripe, 149 € au lieu de 299 €, versions limitées à la maintenance
- Module 0.22.2 : l'essai du poste (« * », toutes les boutiques) est accepté
- Catalogue : une plage de cellules sur plusieurs lignes sélectionne aussi ces produits
- Catalogue : barre de sélection flottante, actions courantes visibles et le reste dans « Plus »
- Catalogue : Échap ferme le menu « Plus » de la barre de sélection
- Opérations en masse : colonne de réglages plus large à côté de l'aperçu
- Accès IA (MCP, bêta) : serveur local, l'IA propose et l'utilisateur valide dans le Journal
- Accès IA : ventes, textes, catégories, commandes ; aperçus IA séparés ; pas-à-pas Claude et ChatGPT
- product_sales : produits qui ne se vendent pas (stock immobilisé) ou meilleures ventes sur N jours.
- Textes/SEO produits et catégories, édition de catégories, statuts et suivis de commandes : en
- Les aperçus calculés pour l'IA ont leur propre emplacement : l'aperçu ouvert dans l'app n'est
- Configuration › Accès IA : pas-à-pas Claude Desktop, Claude Code et ChatGPT (Codex).
- Propositions IA gardées dans settings.db, avec historique et expiration à 7 jours
Version 0.3.7, 28 septembre 2026
- Mode démo : clap magenta, collage et recopie dans la grille, scénarios C2 et C4
- Commandes : changement de statut avec ps_checkout, e-mail découplé (module 0.22.1) ; scénarios démo C5 à C8
- Synchro des ventes : 100 000 clients et 250 000 commandes en ~70 s (module 0.22.1)
- Centre de synchro : vue globale des synchros et opérations en cours, sur tous les écrans
- Suivis en masse : contrôles anti-décalage, export transporteur, mode douchette
- Suivis en masse : tableau à deux colonnes façon Excel
- Affranchissement annoncé (« Bientôt ») ; rapports d'erreur vers GlitchTip
- Synchro complète en tranches parallèles : 1,19 million de commandes en 59 s
Version 0.3.6, 27 septembre 2026
- Mode démo (vidéos) : runner de scénarios, boutique démo 2 000 références
Version 0.3.5, 27 septembre 2026
- Poste sans nom : nom par défaut stable (Poste + empreinte) à l'ouverture de la boutique
- Picking : réservation des commandes en clair (plus de « verrous »), motifs de refus lisibles
- Encart mises à jour : message clair hors ligne
- Catalogue : déplacer une colonne ne plante plus l'app ; écran d'erreur au lieu d'une fenêtre blanche
Version 0.3.4, 27 septembre 2026
- Écran des boutiques : encart version et mise à jour dans la colonne ; vraie version dans le catalogue
- Cache local : ancien cache fermé avant son remplacement (Windows : Accès refusé, os error 5)
Version 0.3.3, 27 septembre 2026
- Profils : export et import chiffrés (.oneshop) pour passer une boutique sur un autre poste
Version 0.3.0, 27 septembre 2026
- Licence : 3 postes par e-mail, toutes les boutiques
Version 0.2.0, 26 septembre 2026
- Socle : plan, boutique de test PS9, connecteurs Admin API et Webservice, écran Connexion
- PLAN.md : plan de référence (contrats métier et connecteurs PS9 / 1.7-8,
- docker/ : PrestaShop 9.1.5 + MariaDB en HTTPS local (l'Admin API refuse le HTTP).
- crates/ : psm-core (AppError), psm-connector (contrat ShopConnector),
- app/ : Tauri 2 + React, écran Connexion avec choix du type de connexion,
- docs/ : OpenAPI de l'Admin API PS 9.1.5.
- Module psmanager : /meta sur l'Admin API (PS9) et le Webservice (1.7 / 8)
- module/psmanager : un seul code (PHP 7.1) ; /meta construit par src/Shared,
- contracts/meta.json : fixture du contrat, lue par les tests Rust.
- psm-connector : ShopMeta, versions d'API acceptées, étape « Module » commune.
- Connecteurs PS9 et Webservice : meta() et étape Module au vert quand le
- docker/setup.sh : boutique de test reproductible (module monté, client
- Licence : jeton signé, essai, révocation (remboursement) bloquante
- PLAN §17 : remboursement ou rétrofacturation = révocation automatique
- psm-license : jeton Ed25519 vérifié hors ligne, états essai / active /
- Serveur de licences sur PostgreSQL + licence factice de développement
- license-server : SQLite → PostgreSQL (sqlx, migrations embarquées),
- psm-license::dev (debug uniquement) : clé et jeton de dev, toutes
- Serveur de debug : PSM_LICENSE_SIGNING_KEY=dev et clé
- Licence dans l'app : écran Licence, blocage, renouvellement horaire
- app : module license (jeton + marque de révocation dans license.json,
- Écran Licence (essai pour un poste neuf, activation d'une clé, motif du
- psm-license : motif « révoquée » conservé après effacement du jeton ;
- Test réel contre le serveur local : essai, renouvellement, révocation
- Catalogue (1/4) : lignes produits et journal des changements
- Module 0.2.0 : table psm_changelog alimentée par les hooks génériques
- Contrats ProductRow (Decimal), ProductPage, ChangesPage + fixtures ;
- Connecteurs PS9 et Webservice : products_page, products_by_ids, changes.
- Webservice : tolère un « & » non échappé dans l'index (descriptions de
- docker/setup.sh : TVA FR 20 % sur la boutique de test.
- Catalogue (2-3/4) : cache SQLite local et moteur de synchro
- psm-store : cache par boutique (montants en décimal exact, TTC et taux
- psm-engine : synchro complète (curseur pris avant la lecture) et delta
- Catalogue (4/4) : ouverture de boutique, synchro et grille produits
- App : session boutique (connecteur + cache SQLite), commandes
- Écran Catalogue (maquette 1) : grille Glide Data Grid virtualisée
- Connexion : « Ouvrir la boutique » pour un profil enregistré.
- Test réel : synchro complète puis delta sur la boutique docker.
- Catalogue : photos dans la grille
- Module : image de couverture par produit (imageId) et plus petit format
- Cache : image_id (schéma v2 : ancien cache jeté et resynchronisé).
- App : protocole interne psm-thumb:// ; miniature téléchargée une fois
- Grille : colonne photo.
- Tests de licence : dossiers temporaires isolés (collision par seconde).
- Opérations en masse : sélection (ids, stats) et calcul pur de l'opération Prix
- psm-store : plages de lignes → ids pour le tri/filtre courant,
- psm-core::price : +/- %, +/- montant, valeur ; base HT ou TTC ;
- Écritures en masse : /bulk dans le module et les connecteurs, licence vérifiée par le module
- Module 0.3.0 : Bulk (une requête = un lot = une transaction, 500 lignes
- License (module) : aucune écriture sans jeton valide (Ed25519 via
- Contrats BulkRequest / BulkResponse + fixtures ; bulk() dans les
- Docker : PS_DEV_MODE=1 (boutique de test) ; exemple dev_token.
- Écritures en masse : exécution par lots et journal local
- psm-engine::run_bulk : lots de 500, expect = ancienne valeur (ou force),
- psm-store::journal (settings.db, migrations user_version) : actions et
- psm-engine : alias BatchStatus (clippy::type_complexity)
- Opérations en masse de bout en bout : sélection, clic droit, Prix, exécution, résultat, journal, annulation
- App : sélection façon tableur sur les numéros de ligne (clic, ⇧, ⌘,
- Boîte Prix (maquettes 2, B6, B7, 3) : aperçu local instantané (alertes,
- Commandes : catalog_selection, price_preview (plan gardé côté Rust),
- Écran Journal avec annulation.
- Grille : redessin à l'arrivée des lignes (bug d'affichage initial).
- Test réel : +10 % x,90 sur la boutique docker, conflit provoqué non
- Sélection persistante au tri et au filtre ; opérations Activer / désactiver et Stock
- Sélection : gardée par ids ; au changement de tri ou de filtre, positions
- Module 0.4.0 : stock en chemin complet (StockAvailable::setQuantity,
- psm-core::fields : stock fixer / ajuster (plancher 0), activation ;
- Moteur : conflit rapporté avec la valeur actuelle du champ modifié.
- App : field_preview (plan gardé côté Rust) ; boîte Activer / désactiver ·
- Test réel : stock −1 (produit à déclinaisons refusé), désactivation,
- Catégories (1/3) : arbre et associations produit ↔ catégories en lecture
- Module 0.5.0 : CategoryRows (arbre à plat) servi par l'Admin API
- Contrats CategoryRow / categoryIds + fixture ; categories() dans les
- Cache (schéma v3) : tables categories et product_categories tenues à
- Synchro : arbre relu à chaque synchro complète et delta.
- Catégories (2/3) : calcul de l'opération et écriture en chemin complet
- psm-core::categories : ajouter / retirer / remplacer, catégorie par
- Moteur : catégories envoyées en tableau d'ids ; lots de 50 dès qu'un
- Module : categories / defaultCategory dans /bulk ; expect sur l'ensemble
- Catégories (3/3) : boîte Catégories (maquette B2) de bout en bout
- Commandes category_tree (nombre de produits sélectionnés déjà présents
- Boîte Catégories : ajouter / retirer / remplacer, arbre filtrable (les
- Test réel : ajout de « Art » + catégorie par défaut sur 2 produits,
- Affecter une valeur à un champ (réf., EAN, poids, prix d'achat)
- Vues enregistrées et colonnes configurables
- Jeu de 50 000 produits et mesures de volume
- Campagnes de prix spécifiques : module 0.7.0, contrat, calcul et commandes
- Campagnes : boîte B4 et page Prix & promos (D1)
- Déclinaisons : module 0.8.0, contrat, générateur et commandes
- Déclinaisons : boîte du générateur (maquette C4)
- Clic droit : sous-menu « Modifier en masse » au survol seulement, menu plus lisible
- Commandes : module 0.9.0, contrat, verrous, statut/suivi en masse, PDF
- Commandes et picking : écrans (maquettes 5, 6, E1–E5)
- Fiche commande complète et lots de documents (BL, factures, avoirs)
- Déclinaisons en masse : grille multi-produits, filtre par attribut, opérations
- Comptabilité : exports de fichiers (FEC, CSV, Sage, EBP, Pennylane)
- Import : lecture CSV/XLSX, mapping, aperçu, créations ; module 0.10.0
- Import / export : écrans (maquettes D4, D5) et exports CSV
- Commandes, retours magasin : panneau articles, suivi dans la grille, À traiter, fiche client
- Codes promo : quels commandes et paniers ont utilisé un code (retour client)
- Clients : module 0.11.0, grille, clients par produit, groupes et newsletter en masse
- Clients : écrans (maquettes D2, D3)
- Textes et SEO : module 0.12.0, modèles et rechercher / remplacer multilingues
- Textes et SEO : boîte de la maquette C2
- Grille : sélection de cellules (maquette C5)
- Phase 6 : boutique PS 8.2 de test et parcours complet via le Webservice
- Phase 7 : boutique PS 1.7.8 (PHP 7.1) et parcours complet via le Webservice
- Phase 8 : PrestaShop 1.6 (PHP 5.6) via un pont du module
- Connexion : type Webservice « PrestaShop 1.6 / 1.7 / 8 », aide pour les droits en 1.6
- Commentaires : versions 1.6 / 1.7 / 8 du connecteur Webservice
- Configuration et zip du module
- Journal : détail ligne par ligne, relance des erreurs, conflits forcés, export CSV
- Préférences et module en retard
- Écran Catégories, filtre avancé du Catalogue
- Filtre avancé : vue modifiée seulement par les conditions remplies ; PLAN à jour
- Module 0.14.0 : correctif du back-office PS9, fiche produit, autres champs en masse
- Admin API : message d'erreur OAuth de PrestaShop affiché (au lieu de « HTTP 401 »)
- Admin API : scope non coché sur le client (access_denied) traité comme scope manquant
- Loader global pour toute action lente
- Codes promo : écran pleine hauteur, suppression des codes périmés non utilisés (module 0.15.0)
- Import / export : onglet Export (catalogue, clients, commandes)
- Cache local des commandes et des clients (module 0.16.0)
- Séance de test : libellés, boutons, en-tête des codes promo ; PLAN : menus selon les droits de la clé
- Commandes : plus de retour à gauche au clic sur une ligne
- Profil : protection HTTP du site (boutique de dev) pour les miniatures
- Profil : protection HTTP du site dans une section repliable
- Clients : filtre avancé et sélection de tous les clients filtrés
- Rapports (remplace Comptabilité) : ventes, stock, comptabilité
- Rapports : onglets visibles (conteneur défilant), montants sur une ligne
- Licence perpétuelle + maintenance d'un an renouvelable
- Achat depuis l'app : transaction Paddle, pages de paiement, activation automatique
- Mises à jour de l'app et déploiement Coolify du serveur de licences
- Windows : signature Azure Trusted Signing et publication
- Gestion des groupes clients (module 0.17.0) ; dossier de données créé au premier lancement
- Clients › Groupes : liste, création, modification, suppression avec remplacement
- Renommage en One Shop Manager (nom, identifiant, textes) avec migration des données
- Logo One Shop Manager : anneau, wordmark, favicon et icônes Tauri
- Production : serveur licence.oneshopmanager.com et clé publique des licences
- Boutique de démonstration Maison Lune (mode) ; le document ne défile plus
- Site : les 12 captures d'écran (boutique de démo Maison Lune) ; retouches d'interface
- Import : catégories (nom, chemin ou numéro) et images par URL (module 0.18.0)
- Import : déclinaisons (mise à jour par référence ou EAN, création sous un parent avec attributs)
- Import : clients existants par e-mail (groupes ajoutés, newsletter)
- Import : corrections après test dans l'app
- Import clients : case « Absents », sans filtre Créations ; accords des compteurs
- Campagnes : modifier les dates (prolonger) et dupliquer (module 0.19.0)
- Catégories : textes et SEO, image, suppression d'une catégorie vide (module 0.20.0)
- Images des déclinaisons, duplication de produits, copie d'images (module 0.21.0)
- Test réel des catégories : emprunt inutile (clippy)
- Passe de sécurité : serveur de licences, module 0.21.1, app
- Cache : produit retiré dès l'annulation d'une création ; copie d'images : suggestions en boutons
- Build et publication automatisés (GitHub Actions) ; le site sert toujours la dernière version
- CI : Rust épinglé (rust-toolchain.toml, 1.93.0), composer sans root dans build-zip, byte str
- Serveur de licences sur license.oneshopmanager.com (module 0.21.2)