Guide Tutorial StockManager v1.4

Guide complet couvrant le workflow metier de bout en bout : Configuration → Utilisateurs multi-magasin → Profils de permission → Articles → BL → Facture FF → Etiquetage → Remplacement etiquette → Transfert → Reception. Inclut la configuration imprimante Zebra, l'Agent IA ZD621R et tous les modules complementaires.

📋 19 Modules 👥 Multi-magasin & Profils 📄 Factures Fournisseur ⚡ Agent IA ZD621R 🔄 Rempl. Etiquette RFID 🎯 11 Etapes workflow 🔗 http://localhost:8013
1

Vue d'ensemble de la plateforme

Architecture

StockManager est le back-office de gestion de stock, connecte a SalePoint (caisse) via une base SQLite partagee. Il couvre tout le cycle : approvisionnement, etiquetage RFID, transferts, ventes et fidelite client.

📦
Articles & SKUs
Catalogue produit
🚚
Bons de Livraison
Reception fournisseur
🔃
Transferts
Inter-depots
📊
Stock & Mouvements
Niveaux + historique
📡
RFID / CB
Etiquetage ZD621R
🔄
Rempl. Etiquette
Meme EPC, stock intact
👥
Clients & Fidelite
Points & bons
📄
Commandes
Planification achat
📋
Inventaire
Comptage physique
🔙
Retours Fourn.
Renvoi marchandise

Les 16 pages de l'application

SectionPageDescription
PrincipalTableau de bordKPIs, graphiques, alertes, activite recente
ArticlesCatalogue produit avec variantes (SKUs)
Etiquetage RFIDImpression d'etiquettes RFID (ZD621R)
Etiquetage Code a BarresImpression d'etiquettes code-barres
Rempl. Etiquette RFIDRemplacement d'etiquettes perdues/endommagees — meme EPC, stock inchange
Stock & MouvementsNiveaux de stock + historique mouvements
Bons de livraisonReception marchandise fournisseur
Commandes fournisseursBons de commande achat
InventaireComptage physique et ajustement
Retours fournisseursRenvoi marchandise au fournisseur
TransfertsTransfert entre depots/magasins
AnalyseAnalyticsCA, ventes par jour/heure/rayon/famille
RapportsKPIs stock, graphiques, top articles
ClientsGestion clients + programme fidelite
ConfigUtilisateursComptes, roles, PINs, affectations multi-magasin, profils de permission
ParametresRayons, familles, gammes, magasins, fidelite, Profils & Permissions
Config. imprimanteZebra Browser Print : statut, guide installation, test impression, calibrage RFID

Flux de donnees principal

Commande (BC)
Bon de Livraison
Stock +RECEPTION
Etiquettes RFID/CB
Transfert
Vente (SalePoint)
Stock -SALE
2

Demarrage & Premier lancement

cd D:/virtual_envs/langchain_kernel/langraph_testing/RFID/retail_suite
python -m uvicorn stock_manager.server:app --host 0.0.0.0 --port 8013 --reload

Ouvrir le navigateur ➜ http://localhost:8013

⚠️
Selecteur de magasin En bas de la barre laterale gauche, un selecteur de magasin (dropdown) filtre toutes les donnees de stock. Il est persiste dans localStorage. Si aucun magasin n'est configure, le stock ne s'affichera pas.
M1

Configuration initiale (Parametres)

Fondation

Barre laterale ➜ Parametres (section Configuration). La page contient 9 onglets.

Creer les Magasins / Depots

Les magasins representent vos points de stockage physiques. Chaque mouvement de stock est lie a un magasin.

ChampDescriptionExemple
CodeIdentifiant unique courtMAG-TUNIS
NomNom completMagasin Tunis Centre
VilleLocalisationTunis
AdresseAdresse physique12 Rue de la Liberte
TelephoneContact71 234 567
TypeSTORE / WAREHOUSE / HQSTORE
💡
Creez au minimum 2 magasins pour pouvoir tester les transferts inter-depots plus tard.
Magasin 1 : MAG-TUNIS  / "Magasin Tunis Centre"  / Type: STORE
Magasin 2 : DEP-SOUSSE / "Depot Sousse"           / Type: WAREHOUSE
Magasin 3 : HQ-SFAX    / "Siege Sfax"              / Type: HQ

Famille ➜ Sous-famille

Le Rayon est un attribut libre saisi directement sur l'article (ex: DAME, HOME, ENFANT). La hierarchie dans Parametres est : Famille (parent) → Sous-famille (enfant).

FAMILLES :
  CHEMISE  ➜ Chemises       PANTALON ➜ Pantalons
  TSHIRT   ➜ T-Shirts       VESTE    ➜ Vestes
  CEINTURE ➜ Ceintures      ECHARPE  ➜ Echarpes

SOUS-FAMILLES :
  CH-SLIM    ➜ Chemise Slim Fit      (Famille: Chemises)
  CH-CLASSIC ➜ Chemise Classique     (Famille: Chemises)
  PN-JEAN    ➜ Jean                  (Famille: Pantalons)
  PN-CHINO   ➜ Chino                 (Famille: Pantalons)

Gammes de tailles

Une gamme = un ensemble de tailles predefinies. Selectionnee dans l'article, elle alimente automatiquement les variantes.

Gamme ADULTE : 36, 38, 40, 42, 44, 46, 48
Gamme ENFANT : 2A, 4A, 6A, 8A, 10A, 12A, 14A
Gamme UNIQUE : TU (taille unique)
Gamme SHOES  : 39, 40, 41, 42, 43, 44, 45

Unites, Marques, Fournisseurs, Saisons, Genres

OngletDonnees a creer
UnitesPCE Piece, PQT Paquet, DOZ Douzaine, MTR Metre
MarquesZARA, LACOSTE, NIKE, LOCAL Fabrication locale
FournisseursFOURN-01 Societe Textile du Nord, FOURN-02 Istanbul Fashion, FOURN-03 Guangzhou Textile
SaisonsPE-2026 Printemps-Ete 2026, AH-2026 Automne-Hiver 2026
GenresHOMME, FEMME, ENFANT, MIXTE
Checkpoint La configuration de base est en place. Vous pouvez maintenant creer des articles.
M2

Creer son premier article

Barre laterale ➜ Articles ➜ Bouton "+ Nouvel article"

Le formulaire 3 panneaux

📋 Article (fond blanc)

  • Code (+ bouton Auto)
  • Designation (obligatoire)
  • Reference
  • Unite stock / Unite vente
  • Est gerable / Est vendable
  • Famille ➜ Sous-famille (cascade)
  • Saison
  • Stock minimum

🟩 Achat (fond vert)

  • Fournisseur
  • Ref fournisseur
  • %FODEC
  • TVA achat%
  • P.U.H.T achat
  • Remise achat%
  • P.U.T.T.C achat (auto)
  • Marge% (auto)
  • Qte min. commande

🔵 Vente (fond bleu)

  • Marque
  • Genre
  • Gamme de tailles
  • TVA vente%
  • P.U.H.T vente
  • P.U.T.T.C vente (auto)
  • Remise vente%
  • P.U.T.T.C final
  • Remise max%
🔄
Calculateur bidirectionnel Saisissez dans n'importe quel champ de prix (HT achat, TTC achat, Marge, HT vente, TTC vente, TTC final) et tous les autres se recalculent automatiquement.

Definir Tailles et Couleurs

Tailles : Cliquer "Ajout gamme" ➜ les tailles (36-48) apparaissent comme des chips.

Couleurs : Saisir BLANC + Entree, NOIR + Entree, BLEU CIEL + Entree

Generer les variantes (SKUs)

Cliquer "Generer variantes" ➜ produit cartesien 7 tailles x 3 couleurs = 21 SKUs

Chaque SKU recoit un code-barres EAN13 unique genere automatiquement.

NBarcodeDesignationTailleCouleur
12140000000015Chemise Oxford Slim - 36 BLANC36BLANC
22140000000022Chemise Oxford Slim - 36 NOIR36NOIR
32140000000039Chemise Oxford Slim - 36 BLEU36BLEU CIEL
...............
212140000000213Chemise Oxford Slim - 48 BLEU48BLEU CIEL
Checkpoint L'article est cree avec 21 variantes. Le stock est a 0 partout. Il faut maintenant receptionner de la marchandise.
M3

Receptionner la marchandise (BL)

Concept

Le Bon de Livraison (BL) enregistre l'arrivee physique de marchandise. Quand vous le validez, le stock augmente automatiquement (mouvement type RECEPTION).

BROUILLON
VALIDE
FACTURE
Valider = stock +RECEPTION   |   Depuis VALIDE: "Creer retour" possible

Creer un BL

  1. Numero : Auto-genere (BL-2026-00001) — lecture seule
  2. Fournisseur : Societe Textile du Nord (obligatoire)
  3. Depot : Magasin Tunis Centre (obligatoire)
  4. Date BL : aujourd'hui
  5. Ref fournisseur : FAC-STN-2026-0142
  6. Remise globale % : 0
  7. Notes : Livraison PE 2026 lot 1

Ajouter une ligne (mode standard)

  1. Taper Oxford dans "Ajouter article" ➜ autocomplete
  2. Selectionner ➜ dropdown "Variante" apparait
  3. Choisir 36 - BLANC
  4. Remplir : Qte=10, Prix HT=25.000, Rem%=0, TVA%=19, FODEC%=1
  5. Montants calcules en live ➜ Cliquer "Ajouter"

Repeter pour chaque variante... Mais c'est fastidieux pour 21 variantes ! ➜ C'est la qu'intervient la Matrice.

M3F

Factures Fournisseur

NOUVEAU

Role dans le workflow

Apres avoir valide un Bon de Livraison (reception physique), vous creez la Facture Fournisseur : le document financier qui lie un ou plusieurs BLs a un justificatif de paiement. Cycle : BROUILLONVALIDEEPAYEE.

Creer une Facture depuis un BL

  1. Ouvrir un BL valide ➜ bouton "Creer Facture FF"
  2. La facture est creee en BROUILLON avec les totaux du BL
  3. Aller dans Factures fournisseurs ➜ la facture apparait dans la liste
  4. Cliquer 🔍 (Detail) ➜ verifier les montants HT/TVA/TTC
💡
Vous pouvez aussi creer une FF depuis le menu Factures fournisseurs avec "+ Nouvelle facture" et y rattacher plusieurs BLs en meme temps.

Valider et Payer

ActionBoutonEffet
Valider✓ (vert)Statut → VALIDEE ; BLs passes en FACTURE
Payer💳 (bleu)Saisir montant + mode ➜ PAYEE si total atteint
Supprimer🗑Seulement en BROUILLON
M4

La Matrice Taille x Couleur

NOUVEAU

Concept

La matrice permet de saisir les quantites de toutes les variantes d'un article en une seule grille, puis de les ajouter en bloc. Gain de temps considerable pour les articles multi-tailles/couleurs.

Activer la saisie matricielle

  1. Ouvrir un BL (nouveau ou existant en BROUILLON)
  2. Section Articles ➜ cliquer "Saisie matricielle"
  3. Le formulaire ligne par ligne est masque, la grille apparait

Pour revenir : cliquer "Saisie ligne par ligne"

Selectionner l'article

Taper Oxford ➜ selectionner ➜ toutes les variantes se chargent ➜ la grille se construit :

Chemise Oxford Slim Fit    |    Prix HT: 25.00   Rem%: 0   TVA%: 19   FODEC%: 1
TailleBLANCNOIRBLEU CIELTotal
363
386
409
4212
449
466
483
Total161616GT: 48

Les 4 methodes de saisie

MethodeBoutonDescriptionCas d'usage
Manuelle - Cliquer dans chaque cellule et saisir Quantites differentes par taille ET couleur
Copier colonne Copier colonne Duplique la 1ere colonne vers toutes les autres Memes quantites pour chaque couleur
Copier valeur Copier valeur Prompt ➜ remplit toutes les cellules avec la valeur Commande uniforme (ex: 5 de chaque)
Courbe en cloche 1-2-3-2-1 Distribution symetrique : plus au milieu, moins aux extremes Pattern standard pret-a-porter

Patterns de la courbe en cloche

Nb taillesPattern
3 tailles1 - 2 - 1
4 tailles1 - 2 - 2 - 1
5 tailles1 - 2 - 3 - 2 - 1
7 tailles1 - 2 - 3 - 4 - 3 - 2 - 1
⚠️
Seules les cellules avec qte > 0 sont envoyees. Les cellules vides ou a 0 sont ignorees.
M5

Gestion du Stock

MIS A JOUR

Barre laterale ➜ Stock & Mouvements

Onglet 1 — Niveaux de stock (10 colonnes)

CodeDesignationFamilleCouleurTaillePrix TTCMagasinReelleAlloueeDisponible
CH-001Chemise OxfordChemisesBLANC4253.55MAG-TUNIS422
CH-001Chemise OxfordChemisesNOIR4253.55MAG-TUNIS404
CH-001Chemise OxfordChemisesBLANC4853.55MAG-TUNIS13-2
🎨
Codes couleur des badges
Reelle neutre   Allouee > 0 orange   Dispo > 0 vert   Dispo ≤ 0 rouge

Onglet 2 — Historique des mouvements

TypeBadgeDescriptionImpact
RECEPTIONRECEPTIONBL valide+stock
SALESALEVente en caisse-stock
RETURNRETURNRetour client+stock
TRANSFER_OUTTRANSFER_OUTExpedition transfert-stock source
TRANSFER_INTRANSFER_INReception transfert+stock dest
LOSSLOSSPerte/casse-stock
INVENTORY_ADJUSTADJUSTAjustement inventaire±stock
SUPPRESSIONSUPPRESSIONRetour fournisseur valide-stock
M6

Transferts inter-depots

BROUILLON
EXPEDIE
TRANSFER_OUT
RECU
TRANSFER_IN

Impact sur le stock alloue

Statut transfertAlloueeExplication
BROUILLONVisibleStock reserve au magasin source
EXPEDIEVisibleStock en transit
RECU0Allocation liberee — stock transfere

Creer un transfert

  1. Depot source : Magasin Tunis Centre
  2. Depot destination : Depot Sousse
  3. Utiliser la matrice pour ajouter les lignes
  4. Verifier l'allocation sur la page Stock

Cliquer "Expedier" ➜ mouvements TRANSFER_OUT crees ➜ stock source diminue

Changer de magasin ➜ Depot Sousse ➜ Ouvrir le transfert ➜ "Recevoir" ➜ mouvements TRANSFER_IN ➜ stock destination augmente

M7

Impression RFID (ZD621R)

Tracabilite unitaire — EPC unique par etiquette

Depuis la v1.3, chaque copie imprimee recoit un EPC unique et un numero d'unite imprime sur l'etiquette (#1, #2, #3...). Ces entrees sont enregistrees dans la table sku_units. Cela permet de retrouver precisement quelle etiquette physique est manquante sans scanner — il suffit de lire le numero imprime. Le stock en base est inchange.

🆕
Interface simplifiee (v1.4) : La page Etiquetage RFID propose uniquement "Imprimer RFID" et "Apercu". Les boutons Calibrer et Test visuel ont ete deplace dans Config. imprimante (menu Config.) pour une meilleure coherence.

Impression unitaire

  1. Selectionner l'imprimante dans le dropdown
  2. Chercher l'article ➜ choisir la variante
  3. Regler Copies, Darkness (20), Offset vertical (0), Depot
  4. "Apercu" ➜ image PNG via Labelary
  5. "Imprimer RFID"
Exemple 3 copies : La ligne 2 de chaque etiquette affiche M / BLANC #1, M / BLANC #2, M / BLANC #3 avec des EPC distincts. Chaque entree est tracee dans sku_units avec statut STOCK.

Impression batch

  1. Page Articles ➜ selectionner les variantes (checkboxes)
  2. "Imprimer RFID batch"
  3. "Imprimer tout le batch"
⚠️
Le mode batch utilise visual_only=True (pas de ^RFW) pour eviter les ghost marks.

Parametres ZPL confirmes (ZD621R, 44x11mm)

ParametreValeurExplication
^RFW H,1,2,66 words96-bit EPC encoding
^RFENsans espacePas de void sur erreur
^PR2,22 ipsVitesse lente = encodage fiable
~SD20darkness 20Contraste impression
^RSAautoDetection auto du chip
M7+

Designer d'etiquettes RFID

Le Designer permet de creer et personaliser visuellement les gabarits d'etiquettes RFID. Chaque design est stocke en base et peut etre selectionne au moment de l'impression — le layout fixe reste disponible comme fallback.

Acces au Designer

  1. Page Etiquetage RFID
  2. Cliquer sur l'onglet "Designer" (a cote de "Impression")
  3. 2 templates seeds sont disponibles par defaut :
    • Standard RFID (barcode) ★ — code barres + textes + EPC
    • Batch simplifie (prix) — designation + prix centres

Interface : 3 colonnes

ZoneContenuActions possibles
Toolbar gauche Template, boutons Ajouter, Affichage Charger/sauvegarder, zoom 2x–5x, grille snap 5 dots
Canvas central Etiquette 351×151 dots (44×19mm) a l'echelle Clic = selectionner, drag = deplacer, Suppr = effacer
Proprietes droite Parametres de l'element selectionne X, Y, police, contenu, centrage, epaisseur…

Types d'elements disponibles

ElementBoutonParametres clesZPL genere
Texte T FontH, FontW, Police (0/A/B), Centrage, Contenu ^FO…^A0N,h,w^FD…^FS ou ^FB si centre
Barcode B Type (Code128/EAN13), Hauteur, Largeur ^FO…^BCN,h,N,N,N^FD…^FS
Rectangle Largeur, Hauteur, Epaisseur trait ^FO…^GB{w},{h},{t}^FS
Ligne Longueur, Epaisseur ^FO…^GB{w},{t},{t}^FS
Image (Logo) IMG Fichier PNG/JPG — converti en monochrome 1-bit ^FO…^GFA,{bytes},…,{hex}^FS

Placeholders dynamiques

Dans le champ Contenu d'un element texte ou barcode, utilisez ces variables — elles sont resolues avec les donnees du SKU au moment de l'impression :

PlaceholderValeur injecteeExemple
{{designation}}Nom de l'articleGILET LAINE FEMME
{{barcode}}Code EAN / batch2140000000015
{{epc}}EPC 96-bit hexadecimalE2000000000000000000001
{{taille}}Taille de la varianteM
{{couleur}}Couleur de la varianteBLANC
{{taille_couleur}}Taille / Couleur fusionnesM / BLANC
{{prix_ttc}}Prix TTC formate64.900 DT
{{reference}}Code articleART-001
💡
Combinez librement : "Ref: {{reference}} — {{taille_couleur}}" donnera "Ref: ART-001 — M / BLANC"

Ajout d'un logo (Image)

  1. Cliquer "Image" dans la toolbar
  2. Selectionner un fichier PNG, JPG ou BMP
  3. Le serveur convertit automatiquement :
    • Transparence ➜ fond blanc
    • Couleur ➜ niveaux de gris
    • Dithering Floyd-Steinberg ➜ monochrome 1-bit
    • Redimensionnement auto (max 150×80 dots sur 44×19mm)
  4. L'image apparait sur le canvas — deplacez-la a votre guise
  5. Dans les proprietes : bouton "Remplacer l'image" pour changer
⚠️
Recommandations logo ZD621R : Utilisez un logo noir sur fond blanc, sans niveaux de gris ni degrade. Taille source ideale : 200×80 px minimum. Evitez les zones de gris moyen qui dithering mal a 203 DPI.

Apercu editable — Modifier avant impression

  1. Onglet Impression ➜ selectionner article + variante
  2. Bouton "Apercu" ➜ la modale s'ouvre avec les champs editables
  3. Modifier librement : Designation, Reference, Taille, Couleur, Prix TTC
  4. Cliquer "Rafraichir apercu" ➜ Labelary re-rend l'etiquette avec vos modifications
  5. Cocher "Appliquer ces modifications a tout le batch" pour propager les changements
  6. Cliquer "Imprimer maintenant"
💡
Les modifications de l'apercu n'affectent pas la base de donnees — elles sont appliquees uniquement pour cette impression.

Workflow complet : creer et utiliser un design

EtapeActionResultat
1Onglet Designer ➜ dropdown "Nouveau..."Canvas vierge
2Nommer le design dans le champ texteex: "Etiquette Premium"
3Ajouter elements (texte, barcode, logo...)Elements sur le canvas
4Selectionner un element ➜ regler proprietesPolice, contenu, position
5Drag & drop pour repositionner (snap 5 dots)Alignement precis
6Bouton "Apercu Labelary"PNG rendu en temps reel
7Bouton "Sauvegarder"Design stocke en SQLite
8Onglet Impression ➜ dropdown "Modele d'etiquette"Choisir le nouveau design
9Imprimer / ApercuZPL compile depuis le JSON

Conseils de mise en page (44×19mm, 203 DPI)

📏
Marge minimale

Laissez au moins 5 dots de marge en bordure (evite les coupures)

🔥
Designation

FontH 16–22 pour etre lisible. Utilisez "centre" pour les labels batch.

📊
Barcode Code128

Hauteur minimum 40 dots. Largeur minimale pour scanners : 180 dots.

🏠
Logo

Placez en coin superieur gauche ou droit, max 60×40 dots sur cette taille.

Snap grille

Desactiver la grille pour un positionnement precis au dot pres.

👁
Voir ZPL

Bouton "Voir ZPL" affiche le code brut — utile pour diagnostiquer un probleme d'impression.

Retrocompatibilite : Si aucun design n'est selectionne dans le dropdown "Modele d'etiquette", le layout fixe existant (build_zpl() / build_zpl_batch()) est utilise. Vos impressions existantes ne sont pas affectees.
M7⚡

Agent IA ZD621R IA

Un expert virtuel dedie a l'imprimante Zebra ZD621R integre directement dans StockManager. Il repond en francais a toutes les questions techniques : syntaxe ZPL, encodage RFID, calibration, depannage, configuration. Il connait notre configuration reelle (etiquettes 44×19mm, Read/Write Power=19, Position=B6).

Acces a l'agent

  1. Page Etiquetage RFID
  2. Cliquer sur l'onglet "Agent IA ZD621R" (3eme onglet, apres "Designer")
  3. L'agent est disponible immediatement — pas d'installation, pas de compte requis
L'agent fonctionne via OpenRouter (API gratuite). Une connexion Internet est requise. Le modele actuel est configurable dans le fichier zd621r_agent/.env.

Interface du chat

ElementDescription
Zone de messages Bulle bleue = votre question, bulle grise = reponse de l'agent. Supporte le Markdown (gras, code, listes).
Chips de suggestions 6 questions frequentes en acces rapide (calibration, VOID labels, ^RFW, TCP/IP, etc.)
Zone de saisie Tapez votre question. Entree = envoyer, Shift+Entree = nouvelle ligne.
Bouton Effacer Remet a zero l'historique de la conversation (contexte efface).

Questions typiques

🔄
Syntaxe ZPL

"Quelle est la syntaxe complete de ^RFW pour un EPC 96-bit ?"

⚠️
Depannage VOID

"Pourquoi mes etiquettes sortent VOID apres calibration ?"

Calibration

"Comment calibrer l'imprimante RFID pas a pas ?"

💻
Pilotage Python

"Comment envoyer du ZPL via TCP/IP en Python (port 9100) ?"

📊
Config reelle

"Quels sont nos parametres post-calibration (Read/Write Power, Position) ?"

👀
Differences cles

"Quelle est la difference entre ^RFEN et ^RFE N ?"

Base de connaissances integree (14 sections)

#SujetContenu
1Specifications techniquesZD621R vs ZD621, DPI, vitesse, connectivite, RE40
2Commandes ZPL II^FO, ^A, ^BC, ^GB, ^GF, ^FD, ^PQ, ^XA/^XZ…
3Commandes RFID^RS, ^RFW, ^RFR, ^RFE, ^RI — syntaxe complete + exemples
4Encodage EPC SGTIN-96Structure 96-bit, calcul des champs, conversions hex
5Commandes SGDConfiguration avancee via commandes Set/Get/Do
6Notre configuration 44×19mm351×152 dots, ^PR2,2, ^RFW H,1,2,6 — parametres valides
7CalibrationProcedure pas-a-pas, SmartCal, parametres RFID menu
8Menu RFID touchscreenArborescence complete du menu RFID de l'imprimante
9Qualite d'impressionDarkness, vitesse, problemes courants
10Patterns LEDInterpretation des voyants et bips
11MaintenanceNettoyage tete, remplacement pieces
12ConnectiviteUSB, Ethernet, Wi-Fi, Bluetooth, TCP port 9100
13ZD621R vs ZD621Differences hardware entre les deux modeles
14 ★Donnees reelles de notre imprimanteCaptures touchscreen post-calibration : Read/Write Power=19, Antenna=A1, Position=B6, chip Impinj Monza

Configuration du modele IA

Le fichier RFID/zd621r_agent/.env controle le modele utilise par l'agent (CLI et interface web) :

# Modele actuel (recommande, gratuit)
OPENROUTER_MODEL=meta-llama/llama-3.3-70b-instruct:free

# Alternatives disponibles :
# OPENROUTER_MODEL=arcee-ai/trinity-large-preview:free   # fallback si llama rate-limite
# OPENROUTER_MODEL=nousresearch/hermes-3-llama-3.1-405b:free
# OPENROUTER_MODEL=nvidia/nemotron-3-super-120b-a12b:free  # modele reasoning — eviter
⚠️
Limite du tier gratuit : ~20 requetes/minute. Si vous recevez une erreur "429 Too Many Requests", attendez quelques secondes avant de renvoyer votre question. Evitez d'envoyer plusieurs messages en rafale.
💡
Limites de l'agent : L'agent repond uniquement sur la base de sa knowledge base (ZD621R + notre configuration). Pour les questions sur le code Python retail_suite ou les autres modules StockManager, consultez ce tutorial ou le code source directement.
M7R

Remplacement Etiquette RFID NOUVEAU

Problematique

Un magasin possede 5 pantalons identiques (meme taille, meme couleur) mais chacun porte une etiquette RFID avec un EPC distinct et un numero d'unite imprime (#1 a #5). Si une etiquette est perdue ou endommagee, il faut retrouver precisement l'unite concernee et reimprimer le meme EPC — sans cree de mouvement de stock.

Workflow de remplacement
Identifier l'unite manquante
(numero sur etiquette ou scan RFID)
Marquer perdu
PERDU_ETIQUETTE
Reimprimer
Meme EPC — statut STOCK

Statuts d'une unite (sku_units)

StatutSignificationTransition
STOCKUnite en stock avec etiquette valideEtat initial apres impression
PERDU_ETIQUETTEEtiquette manquante ou endommagee — unite physiquement presenteBouton "Marquer perdu"
STOCKRetour a STOCK apres reimpression reussieBouton "Reimprimer" confirme
⚠️
Stock inchange : Marquer une unite comme PERDU_ETIQUETTE et la reimprimer ne cree aucun mouvement de stock. Seul le statut de l'etiquette est mis a jour.

Etapes d'utilisation

Barre laterale ➜ Rempl. Etiquette

La page charge automatiquement la liste des depots disponibles.

Chercher le SKU concerne

Tapez le nom de l'article dans le champ de recherche (autocompletion). Cliquez sur la variante souhaitee.

Un bandeau bleu confirme la selection : POLO CLASSIC HOMME — M / BLANC (25 unites enregistrees)

Selectionner le depot

Utilisez le dropdown depot pour filtrer les unites par point de vente. Cliquez "Afficher".

Tableau des unites physiques

Chaque ligne correspond a une unite tracee :

#EPCDepotImprimee leStatutScan liveActions
1E20000…0010Boutique Sfax31/03/2026STOCK✓ Detecte
2E20000…0011Boutique Sfax31/03/2026PERDU_ETIQUETTE✗ Non detecte🔄 Reimprimer
3E20000…0012Boutique Sfax31/03/2026STOCK✓ Detecte

Identification automatique par scan RFID

Si un lecteur RFID est connecte au RFID Dashboard (ws://localhost:8000/ws) :

  1. Cliquer "📡 Demarrer scan"
  2. Passer le lecteur sur les articles presentes en rayon
  3. La colonne Scan live se met a jour en temps reel : ✓ Detecte / ✗ Non detecte
  4. L'unite non detectee = etiquette manquante ou illisible
  5. Cliquer "⏹ Arreter" quand termine

Marquer l'unite comme perdue

Sur la ligne de l'unite sans etiquette, cliquer le bouton "⚠ Marquer perdu". Le statut passe a PERDU_ETIQUETTE.

Reimprimer avec le meme EPC

  1. Cliquer "🔄 Reimprimer" sur l'unite perdue
  2. La modale s'ouvre : EPC affiche en lecture seule, imprimante et darkness selectionnables
  3. Verifier que c'est bien l'EPC de l'unite #N a restituer
  4. Cliquer "🖨 Reimprimer meme EPC"
  5. Le statut repasse a STOCK
L'etiquette reprend le meme EPC qu'avant — le scanner RFID de la caisse reconnait l'article sans modification. Aucun mouvement de stock n'est cree.

Prerequis

  • Les etiquettes RFID doivent avoir ete imprimees depuis Etiquetage RFID ➜ Impression (v1.3+) pour que les entrees sku_units soient creees.
  • Le depot doit etre selectionne lors de l'impression initiale (store_id) pour que le filtre fonctionne.
  • Le scan RFID live necessite le RFID Dashboard en cours d'execution sur http://localhost:8000 et un lecteur RFID connecte.
M8

Impression Code a Barres

  1. Selectionner un modele d'etiquette
  2. Chercher l'article ➜ choisir la variante
  3. Saisir le nombre de copies
  4. Cliquer "Imprimer"

Batch: selectionner les variantes sur la page Articles puis lancer un batch CB.

M9

Commandes Fournisseurs (BC)

Concept

La commande fournisseur (BC) planifie un achat. Confirmee, elle peut etre convertie en BL pour la reception.

BROUILLON
CONFIRME
Creer BL
BL BROUILLON

Actions cles

  • Confirmer ➜ statut CONFIRME
  • Creer BL ➜ BL pre-rempli avec les lignes de la commande
  • Dupliquer ➜ copie BROUILLON (commandes recurrentes)
M10

Inventaire physique

Concept

L'inventaire compare le stock theorique (systeme) avec le stock compte (physique). Les ecarts sont ajustes automatiquement a la validation.

BROUILLON
VALIDE
INVENTORY_ADJUST
  1. Creer un inventaire (magasin + notes)
  2. Saisir la quantite comptee pour chaque ligne
  3. Valider ➜ mouvements INVENTORY_ADJUST pour chaque ecart
M11

Retours Fournisseurs

BROUILLON
CONFIRME
VALIDE
SUPPRESSION

Motifs de retour

DEFAUT EXCES ERREUR AUTRE

Creez un retour depuis la page Retours ou directement depuis un BL valide (bouton "Creer retour").

M12

Clients & Programme Fidelite

Creer un client

Code auto-genere (CLT-XXXXXXXX), nom, prenom, telephone, email, ville.

Configuration fidelite (Parametres ➜ Fidelite)

ParametreDescriptionExemple
Montant trancheAchat pour gagner des points10 DT
Points tranchePoints gagnes par tranche1 point
Valeur pointValeur d'un point en dinars0.100 DT
Seuil bonPoints min pour un bon100 points
ExpirationValidite du bon365 jours
Achat 100 DT
+10 points
100 pts cumules
Bon de 10 DT
M13

Tableau de Bord & Rapports

Tableau de bord — 15 KPIs en 3 rangees

RangeeKPIs
OperationnelArticles actifs, Tags RFID, Etiquettes aujourd'hui, Ventes, Alertes stock
CA / FinanceCA Aujourd'hui, CA Semaine, CA Mois, Valeur stock, Clients actifs
Pipeline achatBC Brouillons, BC Confirmes, BC En cours, BL Brouillons, BL Valides

Rapports (7j / 30j / 90j / 365j)

  • 4 KPIs : Articles actifs, Stock total, Valeur stock DT TTC, Mouvements
  • Stock par famille (barres), Repartition par famille (donut)
  • Flux entrees/sorties par jour (lignes), Mouvements par type (barres)
  • Top 10 articles par stock (table)
M14

Analytics (Ventes)

Filtres: date debut / date fin. Donnees des tables sales + sale_items (SalePoint).

  • CA par jour (line), CA par heure (bar), CA par rayon (bar), CA par famille (bar)
  • Top articles, Top clients, Top SKUs par quantite (tables)
M15

Utilisateurs, Roles & Multi-magasin

v1.4

Barre laterale ➜ Utilisateurs (section Configuration). L'admin cree les comptes, leur attribue un role et les affecte a un ou plusieurs magasins.

🆕 4 Roles disponibles

RoleNiveauPerimetre
ADMIN4Acces total — gestion utilisateurs, parametres, tout
MANAGER3Gestion stock, BL, transferts, clients, rapports
WAREHOUSE2Reception, inventaire, etiquetage — pas de suppression
CASHIER1Consultation seule — utilise principalement SalePoint (caisse)

🏭 Affectation multi-magasin (Phase 1)

Un meme utilisateur peut etre affecte a plusieurs magasins. Chaque affectation peut etre active (acces autorise) ou inactive (acces suspendu temporairement sans supprimer l'affectation).

Procedure

  1. Cliquer "+ Nouvel utilisateur"
  2. Remplir : Nom, Code unique, PIN (4-6 chiffres), Role
  3. Section "Affectations magasins" : cocher chaque magasin souhaite
  4. Pour chaque magasin coche, le toggle Actif / Inactif est disponible
  5. Cliquer "Enregistrer"
💡
Cas d'usage : Un caissier qui tourne sur 2 magasins → coche les 2. Fermeture temporaire d'un magasin → passer toutes ses affectations en Inactif d'un seul coup.
AffectationAcces effectif
ActifL'utilisateur voit et interagit avec ce magasin
InactifAffectation conservee mais acces suspendu
Non cochePas d'affectation — le magasin n'existe pas pour cet utilisateur

🔒 Profil de permission (Phase 2)

Un Profil de permission est un preset reutilisable qui restreint les droits d'un role. Il ne peut jamais accorder plus que le role de base — logique AND : le droit effectif = droit du role ET droit du profil.

Exemple : WAREHOUSE restreint

Role WAREHOUSE autorise "articles : voir + creer + modifier". Profil "Magasinier Vue seule" n'autorise que voir. Resultat : l'utilisateur ne peut QUE voir les articles, meme s'il est WAREHOUSE.

Procedure

  1. Modifier l'utilisateur ➜ dropdown "Profil de permission"
  2. Choisir le profil voulu (ou "Aucun profil" pour permissions completes du role)
  3. Enregistrer ➜ les permissions effectives sont recalculees instantanement

La gestion des profils se fait dans Parametres ➜ onglet "Profils & Permissions". Voir module M15P ci-dessous.

M15P

Profils & Permissions granulaires

v1.4

Barre laterale ➜ Parametres ➜ onglet "Profils & Permissions".

Principe — Restriction par profil

Chaque role a une baseline de droits (ce qu'il peut faire au maximum). Un profil restreint cette baseline. On ne peut jamais elever un droit au-dela du role. Plusieurs utilisateurs peuvent partager le meme profil.

Les 9 modules proteges

ModuleDroits disponibles
Articlesvoir / creer / modifier / supprimer
Stockvoir / ajuster
Bons de livraisonvoir / creer / valider
Transfertsvoir / creer / valider
Etiquetagevoir / imprimer
Clientsvoir / creer / modifier
Rapportsvoir
Utilisateursvoir / creer / modifier
Parametresvoir / modifier

Creer un profil de permission

  1. Onglet "Profils & Permissions" dans Parametres
  2. Cliquer "+ Nouveau profil"
  3. Saisir un nom (ex: Magasinier Vue Seule) et une description
  4. Dans la matrice : pour chaque module, cocher les droits a autoriser (les droits non coches seront refuses, meme si le role les permet)
  5. Colonne "Effectif" affiche le resultat apres AND avec la baseline du role
  6. Cliquer "Enregistrer"
⚠️
Suppression d'un profil : Impossible si des utilisateurs lui sont assignes. Retirez d'abord le profil des utilisateurs concernes, puis supprimez-le.

Exemples de profils utiles

Nom profilRole cibleRestrictions typiques
Magasinier Vue SeuleWAREHOUSEArticles : voir uniquement (pas creer/modifier)
Manager Sans SuppressionMANAGERArticles, Stock : modifier OK, supprimer interdit
Consultant RapportsMANAGERRapports : voir — tout le reste bloque
Caissier EtenduCASHIERClients : voir + creer (pour fidelite)
M16

Config. imprimante Zebra ZD621R

v1.4

Barre laterale ➜ Config. imprimante (section Configuration). Page dediee a la mise en service de l'imprimante Zebra ZD621R pour l'etiquetage RFID et code-barres.

Architecture SaaS + impression locale

StockManager est en cloud (EC2). L'imprimante est locale (USB). Le Zebra Browser Print (ZBP) est un agent local (port 9100) qui fait le pont : le serveur genere le ZPL, le navigateur l'envoie via ZBP a l'imprimante.

Installer Zebra Browser Print

  1. Page Config. imprimante ➜ section "Guide d'installation"
  2. Cliquer "Telecharger le script d'installation" ➜ un fichier install_zbp.bat est telecharg
  3. Executer le .bat en tant qu'administrateur ➜ il telecharg et installe ZBP automatiquement
  4. ZBP demarre en arriere-plan et ecoute sur localhost:9100
Apres installation, rechargez la page — le bloc "Statut ZBP" en haut doit afficher Connecte avec l'imprimante listee.

Verifier le statut ZBP

  1. La carte "Statut Zebra Browser Print" en haut de la page affiche en temps reel
  2. Si Deconnecte : ZBP n'est pas lance ➜ verifier le service Windows ou relancer le .bat
  3. Si Connecte mais aucune imprimante : brancher le cable USB et allumer l'imprimante
  4. L'imprimante ZD621R doit apparaitre, de preference avec connexion usb (raw ZPL direct, plus fiable que driver)

Imprimer une etiquette de test

  1. Cliquer le bouton "Imprimer etiquette test"
  2. ZBP envoie un ZPL de test directement a l'imprimante USB
  3. L'etiquette doit imprimer proprement avec texte lisible et code-barres
  4. Si les caracteres accentues (e, a, etc.) apparaissent corrompus : le firmware ZBP n'a pas recu ^CI28 — cette commande est deja incluse dans tous les templates de StockManager

Calibrage RFID (ZD621R uniquement)

  1. Cliquer "Calibrer le lecteur RFID"
  2. L'imprimante envoie une commande SGD pour lire la puissance RFID actuelle
  3. Puissance recommandee : Read = 30 / Write = 30 (configurable via l'ecran tactile de l'imprimante)
  4. Si une etiquette sort avec la mention VOID en noir : l'encodage RFID a echoue ➜ augmenter la puissance ou verifier l'alignement media
⚠️
Vitesse d'impression : Pour les etiquettes RFID (44×11 mm), la vitesse ^PR2,2 (2 ips) est obligatoire. Une vitesse elevee provoque des echecs d'encodage.

Depannage rapide

SymptomeCause probableSolution
Imprimante n'imprime pas (OK affiche)File d'attente Windows bloqueeUtiliser connexion usb (raw) plutot que driver
Jobs bloques dans la fileJobs precedents en attenteBouton "Purger file" dans la modale d'impression (envoi ~JA)
Etiquette VOID noireEchec encodage RFIDAugmenter puissance Write a 30, vitesse <= 2 ips
Accents corrompus (ete → ?)Charset non declareDeja corrige : ^CI28 present dans tous les templates
ZBP Deconnecte apres redemarrageService Windows arreteRelancer install_zbp.bat (ou demarrer le service ZBP manuellement)
EX

Workflow Metier Complet — 11 Etapes

Ce parcours suit le workflow reel d'un magasin de detail de bout en bout : configuration equipe & imprimante, articles, reception marchandise, facturation fournisseur, etiquetage, transfert et reception ligne par ligne, retour, inventaire et fidelite. Chaque etape s'enchaine — completez-les dans l'ordre.

📚
Scenario : Vous etes responsable du magasin TuniRFID Boutique. Vous configurez d'abord l'equipe (utilisateurs, imprimante), puis gerez tout le cycle marchandise : du fournisseur Textile Sahel jusqu'au magasin de Sfax.

Phase 0 — Configurer l'equipe et l'imprimante

★☆☆☆☆ ~15 min  |  M15 + M15P + M16
Contexte : Avant d'utiliser le systeme, l'administrateur cree les profils de permission, les utilisateurs avec leurs affectations magasins, et verifie que l'imprimante Zebra ZD621R est prete.

Etape A — Creer les profils de permission

  1. Menu Parametres ➜ onglet "Profils & Permissions"
  2. Cliquer "+ Nouveau profil" ➜ nom : Magasinier Vue Seule
  3. Dans la matrice, pour le module Articles : cocher voir uniquement (decocher creer/modifier/supprimer)
  4. Enregistrer
  5. Creer un deuxieme profil : Manager Sans Suppression
  6. Pour tous les modules : cocher voir/creer/modifier — decocher supprimer
  7. Enregistrer

Etape B — Creer les utilisateurs multi-magasin

  1. Menu Utilisateurs"+ Nouvel utilisateur"
  2. Nom : Karim Slim  |  Code : KARIM  |  PIN : 1234  |  Role : WAREHOUSE
  3. Section "Affectations magasins" : cocher Magasin Tunis (Actif) et Depot Sousse (Actif)
  4. Profil de permission : Magasinier Vue Seule
  5. Enregistrer
  6. Creer un second utilisateur :
  7. Nom : Sonia Ben  |  Code : SONIA  |  PIN : 5678  |  Role : MANAGER
  8. Affectations : Magasin Tunis (Actif), Siege Sfax (Inactif — magasin ferme ce mois)
  9. Profil : Manager Sans Suppression ➜ Enregistrer

Etape C — Verifier l'imprimante

  1. Menu Config. imprimante
  2. Verifier que le bloc "Statut ZBP" affiche Connecte
  3. Si deconnecte : telecharger et executer install_zbp.bat
  4. Cliquer "Imprimer etiquette test" ➜ une etiquette test sort de l'imprimante
  5. Verifier que les accents (e, a) sont correctement imprimes

Checkpoint

  • Profils "Magasinier Vue Seule" et "Manager Sans Suppression" crees dans Parametres
  • Karim : WAREHOUSE, 2 magasins actifs, profil restreint
  • Sonia : MANAGER, 1 magasin actif + 1 inactif, profil sans suppression
  • ZBP Connecte, test impression reussi
Verification : Connectez-vous avec le code KARIM / PIN 1234 ➜ dans Articles, les boutons "Creer" et "Modifier" doivent etre absents (profil vue seule actif).

Phase 1 — Configuration initiale du magasin

★☆☆☆☆ ~10 min  |  M1
Contexte : Avant tout, le systeme doit connaitre votre structure commerciale : qui vous fournit, comment vos produits sont organises et sur quelles tailles vous travaillez.
  1. Menu Configuration ➜ onglet Rayons / Familles
  2. Creer le rayon : PRET-A-PORTER
  3. Ajouter la famille : POLOS (sous PRET-A-PORTER)
  4. Ajouter la sous-famille : POLOS HOMME
  5. Onglet Gammes ➜ creer la gamme : ADULTE avec les tailles S, M, L, XL, XXL
  6. Onglet Fournisseurs ➜ creer : Textile Sahel, contact contact@sahel.tn
  7. Onglet Magasins ➜ verifier que votre magasin principal existe (sinon le creer)

Checkpoint

  • Rayon PRET-A-PORTER visible dans la liste
  • Famille POLOS avec sous-famille POLOS HOMME
  • Gamme ADULTE avec 5 tailles
  • Fournisseur Textile Sahel enregistre

Phase 2 — Creer les articles du catalogue

★★☆☆☆ ~15 min  |  M2 + M4
Contexte : Textile Sahel vous propose 2 articles. Vous les enregistrez dans le catalogue avec leur matrice de variantes.

Article 1 — Polo Classic

  1. Menu Articles ➜ bouton "Nouvel article"
  2. Remplir : Designation = POLO CLASSIC HOMME, Famille = POLOS HOMME, Fournisseur = Textile Sahel
  3. Prix : Achat HT = 18 DT  |  Vente TTC = 49 DT
  4. Gamme = ADULTE, Couleurs : BLANC et MARINE
  5. Cliquer "Generer les SKUs" ➜ verifier que 10 variantes sont creees (5 tailles × 2 couleurs)

Article 2 — Polo Premium

  1. Meme procedure : Designation = POLO PREMIUM HOMME
  2. Prix : Achat HT = 28 DT  |  Vente TTC = 79 DT
  3. Gamme = ADULTE, Couleurs : NOIR, ROUGE, BLEU
  4. 15 variantes (5 × 3) generees

Checkpoint

  • 2 articles dans le catalogue, 25 SKUs au total
  • Chaque SKU a un code EAN genere automatiquement
  • Prix Achat et Vente visibles dans la liste

Phase 3 — Reception de la marchandise (BL)

★★★☆☆ ~15 min  |  M3
Contexte : Le camion de Textile Sahel arrive. Vous creez le bon de livraison et validez la reception pour mettre le stock a jour.
  1. Menu Bons de livraison"Nouveau BL"
  2. Fournisseur = Textile Sahel  |  Magasin = votre magasin
  3. Ajouter POLO CLASSIC HOMME ➜ bouton "Matrice"
  4. Dans la matrice : choisir mode "Cloche" ➜ valeur = 3
    Resultat : S=1, M=2, L=3, XL=2, XXL=1 pour chaque couleur = 18 pieces
  5. Ajouter POLO PREMIUM HOMME ➜ mode "Copier valeur" = 5
    Resultat : 5 pieces x 15 variantes = 75 pieces
  6. Cliquer "Sauvegarder le BL" ➜ statut BROUILLON
  7. Cliquer "Valider le BL" ➜ confirmer
  8. Menu Stock ➜ verifier que les lignes apparaissent avec Reelle > 0

Checkpoint

  • BL valide : statut VALIDE, mouvements RECEPTION crees
  • Polo Classic : 18 unites en stock (cloche 1-2-3-2-1 × 2 couleurs)
  • Polo Premium : 75 unites (5 × 15 variantes)
  • Stock total : 93 unites, Disponible = Reelle (Allouee = 0)

Phase 4 — Creer la Facture Fournisseur depuis le BL

★★☆☆☆ ~8 min  |  M3F
Contexte : Le BL est valide (marchandise en stock). Maintenant vous rattachez la facture financiere du fournisseur pour le suivi comptable et le paiement.
  1. Menu Bons de livraison ➜ ouvrir le BL de Phase 3 (statut VALIDE)
  2. Cliquer le bouton "Creer Facture FF" (bleu, en bas de la fenetre)
  3. Confirmer la creation ➜ message : "Facture FF-2026-00001 creee"
  4. Menu Factures fournisseurs ➜ la facture apparait en BROUILLON
  5. Cliquer 🔍 (Detail) ➜ verifier les montants HT / TVA / TTC / Net
  6. Cliquer le bouton "Valider la facture" ➜ statut passe a VALIDEE
  7. Observer que le BL est maintenant en statut FACTURE

Checkpoint

  • Facture FF-2026-00001 en statut VALIDEE
  • BL associe passe de VALIDE a FACTURE
  • Totaux corrects (HT + 19% TVA = TTC)
Paiement : Cliquer 💳 ➜ saisir 500 DT, mode = Virement. Verifier que le statut reste VALIDEE (paiement partiel). Saisir le solde restant ➜ statut passe a PAYEE.

Phase 5 — Imprimer les etiquettes depuis le BL

★★★☆☆ ~15 min  |  M3 + M7 / M8
Contexte : Le BL est valide ou facture. Vous utilisez le nouveau bouton "Imprimer etiquettes" directement depuis le BL pour pre-remplir la quantite a imprimer par variante.

Etape A — Impression CB depuis le BL

  1. Menu Bons de livraison ➜ ouvrir le BL (statut VALIDE ou FACTURE)
  2. Cliquer le bouton violet "🏷 Imprimer etiquettes"
  3. Choisir le mode Code-barres
  4. Selectionner le modele : Standard 58×40mm (CODE128)
  5. Le tableau des variantes est pre-rempli avec les quantites BL
  6. Cocher toutes les lignes ➜ ajuster les quantites si besoin
  7. Cliquer "Imprimer" ➜ les jobs sont crees dans Etiquetage Code a Barres
  8. Aller dans Etiquetage Code a Barres ➜ verifier les jobs

Etape B — Designer RFID + Agent IA

  1. Menu Etiquetage RFID ➜ onglet Designer
  2. Dropdown Template ➜ "Nouveau..." ➜ nommer : Etiquette Polo
  3. Ajouter Designation (Y=8), Taille/Couleur (Y=32), Barcode (Y=52), Prix (Y=62)
  4. Cliquer "Apercu Labelary" ➜ verifier le rendu ➜ Sauvegarder
  5. Onglet Agent IA ZD621R ➜ demander : "Pourquoi ^PR2,2 est critique pour les petites etiquettes ?"

Checkpoint

  • Jobs CB crees dans l'onglet Etiquetage CB (lies au BL)
  • Design "Etiquette Polo" sauvegarde dans le Designer
  • Agent IA repond en francais sur ^PR2,2 (vitesse reduite = encodage fiable)

Phase 6 — Transfert inter-magasins et reception avec ecarts

★★★★☆ ~15 min  |  M5 + M6
Contexte : Le magasin de Sfax commande des polos. Vous creez le bon de transfert, l'expediez, puis la reception se fait ligne par ligne — avec un ecart signale.

Creation et expedition

  1. Menu Transferts"Nouveau transfert"
  2. De : votre magasin  |  Vers : Sfax
  3. Ajouter POLO PREMIUM HOMME : 3 × L-NOIR et 2 × XL-NOIR
  4. Sauvegarder ➜ cliquer "Expedier" ➜ confirmer
  5. Menu Stock : mouvement TRANSFER_OUT cree, Disponible a baisse

Reception ligne par ligne (avec ecart)

  1. Ouvrir le transfert ➜ cliquer "Recevoir"
  2. Une modale s'ouvre avec le tableau ligne par ligne
  3. Pour la ligne L-NOIR : saisir 3 (conforme)
  4. Pour la ligne XL-NOIR : saisir 1 au lieu de 2 (1 piece abimee) ➜ l'ecart s'affiche en orange
  5. Cliquer "Valider la reception"
  6. Message : "Reception avec 1 ecart(s)" ➜ le transfert passe en RECU / ECART
  7. Stock Sfax : +3 L-NOIR et +1 XL-NOIR (quantites reellement recues)

Checkpoint

  • Transfert RECU avec statut_reception = ECART
  • Stock Sfax credite avec les quantites reelles
  • Ligne XL-NOIR : statut_reception = ECART (visible dans le detail)
Question : Si vous creez un transfert de 10 unites alors qu'il n'en reste que 6, que vaut Disponible ?
Reponse : 6 - 10 = -4, affiche en rouge — c'est un avertissement, pas un blocage.

Phase 7 — Retour fournisseur, inventaire et fidelite client

★★★★★ ~20 min  |  M10 + M11 + M12
Contexte : Controle qualite : 3 polos defectueux a retourner. Fin de semaine : inventaire rapide. Un client fidelise achete pour la premiere fois.

Retour fournisseur

  1. Menu Retours"Nouveau retour"
  2. Selectionner le BL de Phase 3
  3. Cocher la ligne S-BLANC (Polo Classic), quantite = 3, motif = DEFAUT
  4. Sauvegarder ➜ ConfirmerValider
  5. Verifier dans Stock : S-BLANC diminue de 3

Inventaire de fin de semaine

  1. Menu Inventaire"Nouvel inventaire"
  2. Filtrer par famille POLOS ➜ saisir les quantites comptees :
VarianteTheoriqueCompteeEcart
M-BLANC220
L-BLANC32-1
M-MARINE23+1
  1. Valider l'inventaire ➜ les ajustements sont appliques

Programme fidelite

  1. Menu Clients"Nouveau client"
  2. Creer : Ahmed Ben Ali, tel = 55 987 654
  3. Onglet Points ➜ "Ajustement manuel" : +80 points, motif Achat 160 DT
  4. Verifier solde = 80 points
  5. Cliquer "Convertir en avoir" ➜ 80 pts × 0.100 = bon de 8 DT
  6. Verifier : solde = 0 pts, 1 bon actif de 8 DT

Verification finale — Tableau de bord

  • Stock Polo Classic S-BLANC : initial - 3 (retour valide)
  • Inventaire : L-BLANC -1, M-MARINE +1 (ajustements INVENTAIRE dans historique)
  • Client Ahmed : 0 points, bon de reduction 8 DT actif
  • Menu Dashboard ➜ KPIs mis a jour : valeur stock, mouvements du jour
Workflow metier en cours :
Config ➜ Utilisateurs ➜ Articles ➜ BL Reception ➜ Facture FFEtiquetage depuis BLTransfert + Reception ecarts ➜ Retour ➜ Inventaire ➜ Client & Fidelite ➜ Remplacement Etiquette (Phase 8)

Phase 8 — Remplacer une etiquette RFID perdue

★★★☆☆ ~10 min  |  M7R
Contexte : Apres l'etiquetage de Phase 5, le magasinier constate que l'etiquette RFID du POLO CLASSIC HOMME M-BLANC #3 est dechiree et illisible. La piece est toujours en rayon mais son etiquette ne scanne plus. Il faut reimprimer le meme EPC sans toucher au stock.

Identifier et marquer l'unite

  1. Barre laterale ➜ "Rempl. Etiquette"
  2. Dans le champ de recherche, taper POLO CLASSIC ➜ selectionner la variante M / BLANC
  3. Selectionner votre depot dans le dropdown ➜ cliquer "Afficher"
  4. Le tableau affiche toutes les unites : #1, #2, #3... toutes en statut STOCK
  5. Lire le numero imprime sur l'etiquette dechiree ➜ c'est l'unite #3
  6. Cliquer le bouton "⚠ Marquer perdu" sur la ligne #3
  7. Confirmer ➜ le statut passe a PERDU_ETIQUETTE

(Optionnel) Confirmer par scan RFID

  1. Cliquer "📡 Demarrer scan"
  2. Passer le lecteur sur les articles en rayon — les unites #1, #2 sont detectees, #3 reste ✗ Non detecte
  3. Cliquer "⏹ Arreter"

Reimprimer le meme EPC

  1. Sur la ligne #3 (statut PERDU_ETIQUETTE), cliquer "🔄 Reimprimer"
  2. La modale s'ouvre avec l'EPC original en lecture seule (E20000…0012)
  3. Selectionner l'imprimante ZDesigner ZD621R, Darkness = 20
  4. Cliquer "🖨 Reimprimer meme EPC"
  5. L'imprimante sort l'etiquette avec le meme EPC et le label M / BLANC #3

Checkpoint

  • Unite #3 revient a statut STOCK dans le tableau
  • EPC E20000…0012 reimprime — le scanner de caisse reconnait la piece normalement
  • Aucun mouvement de stock cree (verifier dans Stock & Mouvements)
  • Tableau de bord : KPI "Tags RFID" inchange
Workflow metier complet accompli :
Config ➜ Articles ➜ BL Reception ➜ Facture FFEtiquetage depuis BLRemplacement etiquetteTransfert + Reception ecarts ➜ Retour ➜ Inventaire ➜ Client & Fidelite
AS

Aide-memoire — Astuces

🆔
Auto-code

Bouton "Auto" genere un code sequentiel

💲
Calcul prix

Saisissez n'importe quel champ et les autres se recalculent

Creer en ligne

Les "+" dans les dropdowns creent sans quitter le formulaire

📋
Copier colonne

Remplissez la 1ere colonne puis dupliquez

🔴
Cloche 1-2-3-2-1

Pattern adapte au nombre de tailles

📄
BL ➜ Facture FF

Bouton "Creer Facture FF" sur un BL valide

🏷
BL ➜ Etiquettes

Bouton "Imprimer etiquettes" pre-remplit les quantites

🔙
BL ➜ Retour

Creez un retour depuis un BL valide

Reception ecarts

Saisie ligne par ligne ➜ ecart signale en orange

📍
Magasin actif

Le selecteur en bas de la sidebar filtre tout

🔄
Rempl. Etiquette

Marquer perdu ➜ Reimprimer meme EPC — stock inchange

🏿
Numero unite (#N)

Imprime sur chaque etiquette RFID — identifie la piece sans scanner

🏭
Multi-magasin

Un utilisateur peut etre affecte a N magasins — toggle Actif/Inactif par magasin

🔒
Profil de permission

Restreint le role sans le changer — logique AND : profil ne peut qu'enlever des droits

📷
ZBP — connexion USB

Preferer la connexion "usb" (raw ZPL) au lieu de "driver" (spooler Windows pouvant bloquer)

🗑
Purger file impression

Bouton "Purger file" dans la modale d'impression envoie ~JA (annule tous les jobs)

📱
Application mobile

L'app est responsive — icone hamburger (☰) ouvre la sidebar sur mobile

Guide mis a jour le 6 avril 2026 — StockManager v1.4 : Utilisateurs multi-magasin, Profils de permission granulaires, Config. imprimante Zebra, Mobile responsive
TuniRFID · Retail Suite