Modèle métier

Gestion des transactions

Les flux de stock, les types de transaction et les cas de synchronisation.

Gestion des transactions

Le cœur du produit est la transaction: c'est elle qui écrit l'histoire du stock. Cette page explique à quoi servent les types de transaction et comment choisir le bon flux.

FluxChaîne de transactionEmplacement réservé pour un visuel, un schéma ou une capture.
Schéma du chemin d'une transaction: contexte (organisation + branche) → sélection du type → lignes produit (quantités, statuts) → validation → mise à jour du stock → écriture dans l'historique.

Types principaux

TypeCe que ça veut dire
approvisioningentrée fournisseur
inner_saletransfert ou vente interne entre structures de la même organisation
local_salevente locale vers une branche ou un dépôt du même périmètre
outer_salevente externe vers l'extérieur de l'organisation
client_salevente directe à un client
inner_loanprêt entre entités internes
inner_requestdemande interne avant mouvement
crates_adjustmentajustement manuel de conditionnements ou de retours
create_emptycréation de retours dans le stock
create_empty_fullcréation de retours liés à du produit retourné
create_empty_lostcasse ou perte
unsuitableproduit impropre à la vente

Comment choisir le bon type

Demande-toi d'abord ce qui se passe réellement:

Situation réelleType à regarder
un fournisseur livre du stockapprovisioning
un produit est transféré ou vendu à une structure interneinner_sale
un produit part vers un site local du même périmètrelocal_sale
un produit sort vers l'extérieur de l'organisationouter_sale
un client prend un produitclient_sale
du stock circule entre entitésinner_loan ou inner_request
des retours sont créés ou corrigéscreate_empty* ou crates_adjustment
un produit n'est plus vendableunsuitable

Flux recommandé

  1. Identifier l'origine.
  2. Choisir la destination.
  3. Ajouter les lignes produit.
  4. Vérifier les quantités et les statuts.
  5. Confirmer l'écriture pour que le stock soit recalculé.

Ce que fait chaque étape

  • identifier l'origine évite de mélanger deux sites ou deux clients;
  • choisir la destination détermine où le stock va réellement;
  • ajouter les lignes produit permet à l'application de calculer le stock;
  • vérifier les quantités et les statuts évite les erreurs de saisie;
  • confirmer l'écriture fige l'opération dans l'historique.

Scénario 1: réception d'une livraison fournisseur

Un magasin reçoit 4 cartons de 12 unités d'un fournisseur.

  1. Type: approvisioning — le fournisseur livre du stock.
  2. Origine: le fournisseur (acteur).
  3. Destination: la branche du magasin.
  4. Lignes: produit concerné, quantité = 4 cartons × 12 unités = 48.
  5. Validation: le stock passe de 0 à 48 unités.

→ Ce type de transaction peut être saisi hors ligne si la réception a lieu sur le terrain.

Scénario 2: transfert entre deux branches

Un dépôt central envoie 10 unités vers une boutique.

  1. Type: inner_sale — transfert interne entre structures de la même organisation.
  2. Origine: la branche du dépôt.
  3. Destination: la branche de la boutique.
  4. Lignes: produit, quantité = 10.
  5. Validation: le dépôt perd 10, la boutique gagne 10.

→ Le stock total de l'organisation reste inchangé. Seule la répartition entre branches change.

TransfertExemple: transfert entre branchesEmplacement réservé pour un visuel, un schéma ou une capture.
Capture de l'écran de transaction avec le champ type = 'inner_sale', l'origine = 'Dépôt Central', la destination = 'Boutique Centre-Ville', et la ligne produit avec quantité 10.

Scénario 3: vente à un client

Un agent vend 3 unités à un client.

  1. Type: client_sale — vente directe.
  2. Origine: la branche active.
  3. Client: sélectionné dans la liste des acteurs.
  4. Lignes: produit, quantité = 3.
  5. Validation: le stock diminue de 3.

→ Si l'agent est en tournée sans réseau, il peut saisir la vente hors ligne. Elle sera synchronisée à la reconnexion.

Scénario 4: mise au rebut

2 unités sont endommagées et doivent être retirées du stock.

  1. Type: unsuitable — produit impropre à la vente.
  2. Origine: la branche où elles se trouvent.
  3. Lignes: produit, quantité = 2, statut inactif.
  4. Validation: le stock actif diminue de 2, un historique de perte est créé.

→ Ce type d'opération est tracé pour éviter les écarts de stock injustifiés.

Hors ligne

Seules certaines transactions peuvent être créées hors ligne:

  • vente externe (outer_sale)
  • vente client (client_sale)
  • entrée fournisseur (approvisioning)

Elles sont ensuite synchronisées vers POST /api/transactions. Cela permet au terrain de continuer à travailler sans réseau stable, tout en conservant un envoi centralisé ensuite.

Point de vigilance

Les ajustements ne doivent pas être utilisés comme un raccourci pour masquer une erreur métier. Ils doivent documenter une réalité opérationnelle. Si l'ajustement sert à corriger une erreur de saisie, il faut revoir le workflow d'origine.

À lire ensuite