Le but de ce document est d'établir des spécifications fonctionnelles pour un logiciel libre de gestion d'une petite librairie indépendante. C'est à dire de décrire le fonctionnement d'un tel logiciel dans un langage compréhensible pour des libraires. Nous partons de cas d'utilisations d'une librairie associative de Grenoble. L'idée est de partager ce document avec d'autres librairies pour aboutir à un logiciel commun.
Pour voir un peu ce que font les autres et ce que recommandent les professionnels, voir par exemple :
Le but de cette section est de préciser les termes employés par la suite dans ce document. On les regroupe en trois catégories :
Le référentiel regroupe tout ce que ne décide pas la librairie : description des livres, des films, les diffuseurs, les éditions, etc.
Il peut être nécessaire de définir des clients.
C'est l'entité qui, vis à vis de la librairie diffuse des exemplaires (un éditeur peut donc également être diffuseur).
C'est l'éditeur du livre, cd, du tschirt au sens commun du terme.
Les fiches peuvent être regroupées par libellule qui correspondrait par exemple à des thématiques.
Ensemble des éléments descriptifs d'un livre, d'un cd, d'un t-shirt, etc.
La manière de stocker ces informations est interopérable avec les formats MARC.
Le stock regroupe ce qui permet de désigner l'état actuel de la librairie : lieu, nombre d'exemplaires par lieu, etc.
Un dépôt est un ensemble de fiches avec des quantités dont les exemplaires correspondants sont mis à disposition par un diffuseur. Les exemplaires ne sont facturés que s'ils sont vendus. Les autres sont retournés aux diffuseur.
Il existe un type particulier de dépôt appelé dépôt automatique. Les exemplaires vendus sont automatiquement recommandés.
Régulièrement, le libraire fait des états de dépôt avec les diffuseurs concernés,
C'est une instance physique d'une fiche : quelque chose qu'on peut tenir dans les mains.
Attention, des exemplaires d'une même fiche peuvent être diffusés par différents diffuseurs.
Si plusieurs exemplaires d'une même fiche proviennent de plusieurs diffuseurs, on ne peut pas savoir à quel diffuseur correspond l'exemplaire. C'est un choix qui sera fait quand l'exemplaire est sorti du stock.
Exemple : Trois livres identiques posés sur une table correspondent à une fiche, trois exemplaires de cette fiche, et peuvent provenir d'un ou plusieurs diffuseurs.
Un manquant est un exemplaire qui n'a pas pu être inventorié. Il est marqué comme manquant jusqu'à ce qu'il soit retrouvé, déclaré perdu, etc.
Un lieu est un espace dans lequel des exemplaires sont stockés. Cela peut être l'endroit où les exemplaires sont vendus mais également une réserve, ou des espaces temporaires comme des stands.
C'est un lieu dans lequel des exemplaires peuvent être vendus à des clients.
C'est un lieu dans lequel les exemplaires ne sont pas vendus à des clients, mais en attente d'être amenés sur un lieu de vente, retournés au distributeur, ou autre.
Un rayon est lié à un lieu et à un ensemble de fiche. C'est une sous-séparartion d'un lieu.
On prend des cartons de livres, à vendre dans un autre lieu temporaire. Parfois appelé « salons ».
L'ensemble des lieux.
L' historique permet de savoir ce qu'il s'est passé, de garder des traces de telle ou telle opérations.
Un bon de commande est un document qui permet de signifier à un diffuseur des exemplaires que la librairie souhaite acquérir. Il contient, pour chaque fiche, le titre, l'auteur, l'éditeur, l'ISBN (potentiellement sous forme de code barre), et peut être imprimé, consulté ultérieurement, etc.
Un déplacement de stocks est un déplacement d'exemplaires entre deux lieux de la librairie (point de vente et réserve par exemple).
Un état de dépôt est un document de liaison avec un diffuseur permettant du communiquer sur l'état un dépôt. Le libraire et le diffuseur éditent leur état de dépôt, les confrontent, et corrigent les erreurs.
Un inventaire est l'opération qui consiste à vérifier que les quantités d'exemplaires stockés dans un lieu correspondent bien à ce qui est attendu.
Un mouvement est une opération qui modifie le stock. Cela peut être une sortie (vente, retour, perte, cadeau), une entrée (arrivée d'un colis, don) ou un déplacement entre deux lieux.
Le réassort est la commande de livres déjà vendus.
Ce sont des questions à se poser, dont la résolution est différée du moment où elles sont posées.
Par exemple : lors de la vente d'un livre dont le seuil minimal marqué est deux, le logiciel prévient le libraire qu'il faudrait recommander. Mais la décision de recommander ou non n'est pas faite devant le client, mais est reportée à plus tard.
Une liste peut contenir des exemplaires présents ou non dans le stock, et modifier une liste ne correspond pas à des opérations physiques sur les exemplaires du stock.
On peut appliquer des actions sur les notices d'une liste. Par exemple, tout marquer à commander, ou juste une sélection. Ou encore, exporter une liste en format pdf, txt ou csv.
À la connexion, l'utilisateur sélectionne le lieu dans lequel il se trouve pour faire ses manipulations.
Il est possible de visualiser l'ensemble des mouvements sur le stock sous la forme d'une liste dont chaque ligne contient :
Pour tout livre, on peut définir un seuil (nombre minimum d'exemplaires à avoir en stock), en dessous duquel une alerte est levée. Ce seuil peut être par lieu, et global.
On peut faire une commande sans que le logiciel soit au courant (pour les nouveautés notamment).
N'importe quand, l'utilisateur peut marquer des fiches comme « à commander » (en précisant si nécessaire une quantité).
On utilise donc une liste spéciale « À commander ». Cette liste est automatiquement mise à jour selon le seuil du nombre d'exemplaires minimum de chaque fiche.
Lors de la préparation d'une commande on choisi un diffuseur, et on poura manipuler la liste des « à commander » pour ce diffuseur (ajouter, supprimer des exemplaires).
On valide, et cela fait un bon de commande, qui est transmis sous forme téléphonique, électronique, papier au diffuseur.
On peut imprimer la commande à tout moment. À un moment donné, elle est finalisée, il n'est alors plus possible de la modifier (sauf pour marquer des exemplaires comme n'arrivant jamais).
On peut marquer certains exemplaires comme n'arrivant jamais (rupture de stock, etc.). Ils ne sont alors plus comptés comme commandés.
Les fiches sont marquées suivant l'état de la commande :
Les livres commandés sont marqués comme en stock.\ On réceptionne informatiquement : on ouvre une fiche réception, on bippe les livres, on vérifie leur montant et la remise et à la fin, on vérifie s'il y a des manquants. Si c'est le cas, on fait une réclamation.
On ouvre le colis, on a les livres en main + une facture/ou bon de livraison pour pointer/vérifier le colis
Les avis d'expédition ne sont pas gérés.
Il s'agit d'exemplaires qui sont donnés à la librairie.
Il est possible d'ajouter un exemplaire arrivé là « par intervention divine » pour corriger les erreurs (un livre marqué comme perdu puis retrouvé, par exemple).
Il y a plusieurs type de sorties du stock possibles :
Et des sous-type que l'on pourrait crée à souhait.
Pour les retours, il est bien pratique d'avoir une fonction de recherche par critères, comme "Afficher es livres du distributeur X pas vendus depuis 12 mois", ou "les nouveautés arrivées il y a plus de 6 mois et qui sont encore en rayon", etc.
Ce que nous appellerons « vente » dans la suite est la vente d'une liste d'exemplaires, et non pas la vente d'un exemplaire (bien qu'il soit évidemment possible de vendre une liste d'un unique exemplaire).
Notons que pour certaines librairies associatives ne disposant pas d'ordinateur en caisse, cette vente est faite en fin de journée à partir d'une feuille manuscrite, donc sans ISBN à disposition
Pour les librairies se servant du logiciel en caisse, une vente est l'ensemble des exemplaires payés en une fois par un client.
Les exemplaires vendus sont sélectionnés dans une liste, en les cochant, en entrant l'ISBN, en cherchant le nom du livre ou de l'auteur, et ainsi de suite.\ Le stock des exemplaires correspondant est diminué en conséquence, et la date de vente est mémorisée.
Cas particulier : vente d'un exemplaire disponible en plusieurs modes de dépôt différent. Quand est faite la décision ? Garder cette question dans une liste de choix à faire.
Cas particulier : vente d'un exemplaire de plusieurs diffuseurs : il faut décider de quel diffuseur provient l'exemplaire vendu. Cette décision est reportée le plus tard possible. Elle doit être prise au moment d'un retour ou d'un état de dépôt qui comprend des fiches dont un exemplaire existe déjà dans le stock. On peut imaginer une liste de décisions à prendre qui s'afficherait quelque part et que l'on pourrait prendre à tout moment.
Cas particulier : si on vend des livres depuis la réserve, une alerte est levée.
Si le livre n'est plus disponible dans le point de vente, mais qu'il l'est en réserve, une alerte est levée.
À partir d'un modèle.
Cela permet également d'avoir un récapitulatif des ventes par acheteur.
Il doit être possible de vendre un exemplaire même si le logiciel dit qu'il n'exite pas. Une alerte sera alors stockées pour être résolue plus tard.
Il s'agit d'exemplaires qui sont déclarés perdus (vol, abimé, , etc.)
Il s'agit d'exemplaires qui sont donnés par des gens (auteurs, par exemple) à la librairie.
Pour corriger des erreurs.
Il est possible de sélectionner par pointage, recherche ou choix dans une liste un certain nombre d'exemplaires et de les déplacer d'un lieu à un autre.
Possibilité de marquer un exemplaire comme faisant souvent parti de stand et de retrouver cette liste lors de la préparation d'un stand.
Il est possible de se constituer une base de stands. Ce sont les exemplaires que l'on souhaite d'habitude emmener à chaque stand.
Il est également possible de constituer des « stands types », qui sont des listes de notices à emmener sur des types de stands qui reviennent souvent (marché de Noël, jeunesse, etc.).
Le stand est créé sur le logiciel. Des informations pour le repérer peuvent (doivent ?) être ajoutées : lieu, date, commentaires, etc. Le stand devra être matérialisé d'une manière ou d'une autre sur le logiciel pour que d'autres puissent rejoindre le travail en cours.
Le stand contient la base de stand (cf partie précédente), et peut être fait à partir d'un stand type. Il est également possible d'y ajouter une liste de notices existante ou des exemplaires quelconques. La liste constituée jusqu'ici ne correspond pas au stand « physique » (les livres dans les cartons) mais une liste théorique.
Une liste d'exemplaires emmenés sur le stand est constituée. Ces exemplaires peuvent être pointés par code barre/ISBN, ou par une recherche manuelle (pour les livres sans ISBN, les cas où on n'a pas de douchette, ou le livre n'a pas d'ISBN, ou pour autre chose que des livres). Les fonctions « avancées » de recherche (par lieu, par rayon, par édition, par auteur, etc.) doivent être disponibles à ce moment là. Si les exemplaires pointés font partie de la liste constituée au paragraphe précédent, ils sont marqués sur cette liste comme présents dans le stand. Sinon, ils sont ajoutés au stand sans que cette liste soit modifiée.
Le logiciel fournit une liste des exemplaires emmenés sur le stand, qu'il est possible d'imprimer. Cette liste a affecté un code barre à chaque élément (y compris ceux n'ayant pas d'ISBN) ; ce code barre n'a pas forcément de lien avec l'ISBN. Cette liste est destinée à être imprimée et sera utile sur le stand pour marquer les ventes, et lors du retour pour clore le stand.
Annulation : pendant cette phase, il est possible d'ajouter et d'enlever des éléments à la liste, ce qui permet d'hésiter dans le choix des livres.
Durant le stand, la liste papier crée au point précédent est utilisée pour marquer les ventes (ceci est donc fait sans ordinateur).
À tout moment, il doit être possible de ramener des bouquins sur le stand ou de prendre en compte une vente sur le stand.
Au retour, la liste papier est utilisée pour comptabiliser les ventes.
Les livres (ou autres) ramenés sont marqués comme retournés, suivant une procédure de marquage similaire à la création de la liste. Ils sont remis dans (un des lieux de) la librairie.
Les livres marqués comme vendus sont signalés comme tels au logiciel. Ceci peut être fait en utilisant les codes-barre de la fiche de stand, ou en effectuant une recherche sur le titre (ou d'autres champs), ou en sélectionnant l'exemplaire dans une liste. Pour ces exemplaires, la même procédure de gestion de vente que pour lors d'une vente « normale » est utilisée : levée d'alertes pour les réassort, choix du diffuseur si diffuseur multiple, etc.
Il est possible de marquer des livres comme donnés, etc.
Les livres restant sont marqués comme perdus.
Note : Cette procédure est très similaire à un inventaire : une fois les livres vendus marqués comme tels, un retour de stand n'a que peu de différences avec l'inventaire du stock de ce stand suivi d'un déplacement de stock.
Le lieu d'origine des exemplaires sera connu. Au retour, la destination des exemplaires sera conseillée vers le lieu d'origine, avec la possibilité de prendre en compte immédiatement les alertes, par exemple :\
Dans un premier temps, il n'y aura pas de gestion des rayons.
Si des alertes concernent ce diffuseur, il n'est pas possible de faire un état de dépot : il faut régler ces alertes avant (notons que se débarasser de cette alerte pour ce dépôt ne veut pas forcément dire la régler : imaginons le cas où trois distributeurs sont possibles pour un exemplaire, et où le libraire souhaite dire que le diffuseur dont il veut faire l'état de dépôt n'est pas celui à qui a été vendu l'exemplaire, sans pour autant prendre une décision pour les deux autres).
Certains diffuseurs demandent à ce que des exemplaires ne restent pas plus d'un certain temps dans un dépot. Il faut que cette contrainte soit prise en compte au moment de l'état de dépôt.
Si une fiche a été marquée comme commandée, l'utitlisateur doit être informé.
Une liste de fiches :
Afficher aussi les informations concernant les autres diffuseurs.
L'état de dépôt est un bilan fait à moment donné pour un diffuseur.
Il comporte pour chaque fiche associée au dépot de ce diffuseur :
Pour les dépots automatiques le réassort est initialié avec les ventes.
Au début d'un inventaire, un lieu est marqué comme étant en cours d'inventaire. Pendant qu'il est marqué comme tel, il ne peut pas être modifié (pas de vente, de déplacements, etc.).
Les exemplaires (livres et autres) sont pointés les uns après les autres, par ISBN, ou en effectuant une recherche ou en les sélectionnant dans une liste. Ils sont alors marqués comme inventoriés. À tout moment, il est possible de marquer un livre inventorié comme non-inventorié, et vice-versa (pour gérer les erreurs).
L'inventaire doit être souple : à la fin de l'inventaire, on lève une alerte pour chaque exemplaire restant. Il faudra regler le problème en déclarant une perte, une vente etc. L'inventaire sera reèlement clos lorsque toutes les alertes seront reglées.
Dans le cas ou plusieurs exemplaires provenant de plusieurs diffuseurs, cela se passe de la même manière qu'une vente, et plus généralement d'une sortie.
Idem mais avec un sous-ensemble d'un lieu, un rayon.
A part ça, il manque à mon avis (en tous cas, je ne l'ai pas vue), la fonction de commande client (donc commander un livre pour un client qui viendra le chercher dès qu'il sera dispo à la librairie).
Avoir une notion de fiches sans-intérêt, qui ne sont pas affichées s'il n'y a pas de stock. C'est l'utilisateur qui décide de l'intérêt d'une fiche, sachant qu'une fiche est intéressante la première fois qu'un exemplaire est commandée ou entre en stock.
Avoir une vue des ventes et stocks pour décider de ce qu'on recommande (à déplacer dans visualisation du stock ?)
Permet de voir rapidement l'état du stock. On doit pouvoir visualiser sous forme de liste de fiches et de sous listes d'exemplaires par fiche.
Sous-liste par exemplaire :
L'idée est de pointer des exemplaires et d'effectuer des actions en masse :
Actions possibles:
Possibilité de faire des listes, de les inclures dans des stands, de les imprimer, etc.
Rien de décidé fermement pour le moment. Ça semble facilement modifiable/ajoutable.
Dans la gestion de la librairie, il y a un certain nombres de décisions récurentes à prendre liées à des erreurs, aux relations avec les diffuseurs, aux inventaires, etc. Quelques exemples sont donnés ci-après.
Il est possible de visualiser ces alertes, et de les résoudre.
Stock négatif suite à un mouvement de sortie (peut se produire lors d'une vente : le livre existe mais a un stock négatif ou nul)
Le stock doit repasser positif en effecutant une entree. Un type d'entree specifique est ajouté : "entrée irrégulière" pour passer l'éponge sur une erreur.
Si lors d'une sortie d'un exemplaire, un autre exemplaire de la même fiche provient d'un diffuseur différent, il faut décider quel est le diffusieur dont l'exemplaire a été vendu.
Lors d'un inventaire, des exemplaires sont constatés manquants (perdus).
Il faut effectuer une sortie ou un déplacement correspondant au nombre d'exemplaire manquant.
Fonction pouvant être utile :
Tous les soirs (ou tous les matins, toutes les semaines), pouvoir afficher la liste des titres vendus depuis le dernier réassort, et décider s'il faut les recommander, et en combien d'exemplaires. Pour ça, la meilleure interface que j'aie vu se constituait d'un état de chaque fiche-article concernée, avec tous les détails (auteur, éditeur, état du stock, date de la dernière entrée, quantité de la dernière commande, l'historique des ventes (un histogramme est toujours top), et l'utilsateur n'avait qu'à rentrer le nombre d'exemplaires à recommander (0 ou plus), et à valider pour passer à la fiche suivante. Ainsi, on pouvait faire le réassort de tous les produits vendus en ayant toutes les infos utiles sous les yeux. Et une fois l'opération terminée, les livres allaient tous dans les paniers de commande [liste "à commander"], en étant marqués "à commander".
La gestion de caisse dans certaines librairies associatives n'est pas faite en direct : les livres vendus sont marqués sur une feuille lors de la vente, et ces ventes sont reportées sur informatique en fin de journées.
Attention aux liens avec la comptabilité (voir plus bas).
Rien pour le moment, mais on ne ferme pas la porte.
Une liste avec :
Actions :
Il est possible de « trier » les diffuseurs : on peut leur affecter une note pour préciser ceux avec lesquels on préfère traiter.
Y-a-t-il besoin de plusieurs types d'utilisateurs qui auraient des droits différents sur le logiciel ?
Voir ça en terme de rôles. C'est bien de séparer. Pour se protéger des erreurs ou étourderies, par forcément pour les malveillances.
Il y aura tout de même des utilisateurs pour la gestion des mots de passe, et qui ont le droit d'utiliser certains rôles.
À tout moment, on ne peut endosser qu'un seul rôle.
Il y aura des erreurs, qu'il faut gérer.
Par exemple, une personne s'aperçoit qu'elle vient de commettre une erreur, elle peut alors revenir en arrière. Mais que se passe-t-il si entre le moment ou la personne a commit l'erreur et le moment où elle s'en rend compte une autre action a été effectuée qui rend difficile le retour en arrière.
Autre exemple, que faire si on veut vendre un livre, et que le logiciel croit qu'il n'en reste plus en stock ?
L'utilisateur peut :
Le logiciel sera multi-utilisateur. Cela signifie q'un travail concurrent peut être effectué pour chacune des phases : deux personnes ou plus peuvent faire ce travail en même temps.
Rien pour le moment. On verra plus tard.
Y aura-t-il besoin de travailler hors ligne ? Cas concret : arrivera-t-il qu'un ordinateur soit emmené sur un stand, sans Internet, pour « rentrer dans le logiciel » les ventes, immédiatement ?
Il y a un retour visuel pour toute opération, surtout celles qui modifient l'état des stocks.
La liste suivante contient des fonctionnalités, déjà citées dans la partie précédente, qui ne seront pas implémentées dans l'immédiat.
Crédit: développeurs de Ruche pour la première version.