Stock in and out
Last updated:
Translated from the Italian guide. Narciso itself is in Italian, so the names of buttons, menus and fields are shown exactly as they appear on screen, with a translation in brackets where it helps.
The Carico & Scarico (Stock in & out) tab of Stock is the log of all movements for the active location: every time a product's stock changes for a tracked reason (sale, booking of an appointment, order received, barcode reading, correction) the program writes a row. The log is read-only: nothing can be edited or deleted. New rows are added with the Aggiungi (Add) button, which opens the registration with the reader.
Contents
The columns#
| Column | What it shows |
|---|---|
| Data (Date) | The day («10 Sep 2026») and the time («09:15») |
| Tipo (Type) | A coloured label: Carico (Stock in) (green), Scarico (Stock out) (red), Restock (blue), Inventario (Inventory) (grey), Prenotazione (Reservation) (amber), Rilascio (Release) (purple) |
| Prodotto (Product) | The name of the product («-» if it no longer exists) |
| Quantità (Quantity) | +N in green if goods come in, -N in red if they go out |
| Stock Prima (Stock Before) | The stock before the movement |
| Stock Dopo (Stock After) | The stock after the movement (in bold) |
| Motivo (Reason) | The reason given; «-» if missing |
| Riferimento (Reference) | For movements that come from an order to suppliers «Ordine #number · Supplier name»; for those that come from an appointment «Appuntamento»; otherwise «-» |
What each Tipo means#
| Tipo | When it appears | Reason written |
|---|---|---|
| Carico | Goods coming in: order received, loading with the reader, «Aggiungi veloce» (Quick add), cancelled sale, initial stock of a new product | «Ordine #… - Ricevuto parziale (ricevuti/ordinati)» (Order #… - Partially received (received/ordered)), «Scansione Barcode» (Barcode scan), «Scansione Barcode (Scanner Diretto)» (Barcode scan (Direct Scanner)), «Annullamento Vendita #…» (Sale #… cancelled), «Giacenza iniziale» (Initial stock) |
| Scarico | Goods going out: sale at the Cassa, unloading with the reader, «Rimuovi veloce» (Quick remove) | «Vendita #…» (Sale #…), «Scansione Barcode», «Scansione Barcode (Scanner Diretto)» |
| Prenotazione | Products put into an appointment: the stock goes down immediately | «Prenotazione appuntamento» (Appointment reservation) |
| Rilascio | An appointment with products is cancelled, deleted or edited to remove the products: the stock goes back up | «Rilascio prenotazione annullata» (Release of cancelled reservation) |
| Inventario | Stock correction from a product's record and inventory count with the reader; the quantity shows the difference with its sign | «Correzione manuale» (Manual correction), «Conteggio d'inventario» (Inventory count) |
| Restock | Provided for by the table, but the program does not write it today | - |
How the log loads#
- When it opens, the table asks for two screenfuls of rows, the most recent first, and shows animated grey rows until they arrive. As you scroll towards the bottom more arrive: there is no limit to the number of movements you can scroll through.
- At the bottom «Totale record: N» (Total records: N) counts all the movements that match the search, not only those already loaded.
- If a block does not arrive, an amber row «Non è stato possibile caricare i movimenti.» (It was not possible to load the movements.) appears at the bottom with the Riprova (Retry) button: automatic loading stops until you press it.
- When you register a movement with the reader, the table starts again from the beginning and shows the new rows. Movements generated by sales at the Cassa or by appointments appear the next time you open the tab (switch tab and come back, or reload).
Searching, sorting, exporting#
- Search («Cerca per prodotto o motivo...» (Search by product or reason...)): the program runs it on the whole log. About 0.3 seconds after the last letter the table reloads with the movements whose product name or reason contain the text (upper and lower case do not matter). INVIO (Enter) closes the field and leaves the filter active; the X removes it. Changing the search clears the selection.
- Sorting. A click on the header sorts in ascending order, descending order or not at all, up to three columns together. The order applies to all the movements, not only the visible ones. The Quantità column sorts on the stored value (sales and reservations are stored as negative, those made with the reader always as positive): the order can look mixed up. Riferimento sorts by order number.
- Esporta (Export) (Excel, CSV, JSON, PDF) saves all the movements that match the current search and sort order, even those you have not scrolled to yet, or only the selected rows, with the visible columns in the order in which they have been arranged.
| Format | What the file is like |
|---|---|
| Excel | A real .xlsx file, sheet «Movimenti magazzino» (Stock movements), date in dd/mm/yyyy hh:mm format, quantities and stock as numbers (outgoing ones with the minus sign) |
| CSV | Values separated by semicolons, which open in Italian Excel |
| JSON | A list of objects with the column names as keys |
| Landscape A4 pages titled «Movimenti magazzino», with the header repeated on every page |
The file is called movimenti_magazzino_AAAA-MM-GG. With many movements it takes a few seconds. If it fails, the red notice «Esportazione non riuscita. Riprova tra qualche istante.» (Export failed. Try again in a few moments.) appears.
Registrazione via Barcode#
What it is for. It is the place in the program from which you register stock in, stock out and inventory counts with a real movement in the log. Quantities are built up by reading the products with the barcode reader: there is no box for searching for a product and adding it by hand. Without a reader connected to the location the window cannot be used. The reader and the Narciso Hub are described in Connectable devices and in Barcode reader.
Opening it: Carico & Scarico tab ▸ Aggiungi. The window «Registrazione via Barcode» (Registration via Barcode) opens with the subtitle «Gestisci carichi e scarichi scansionando i prodotti» (Manage stock in and out by scanning the products). All roles can use it.
The reader check#
When it opens, the window checks that the reader is paired and online. If there is a problem it closes by itself showing a notice:
| Notice | Meaning |
|---|---|
| «Per gestire i barcode, devi prima acquistare Narciso Hub. Contatta qui l'assistenza per maggiori info» (To manage barcodes you must first buy Narciso Hub. Contact support here for more info) | The location has no Hub. The qui (here) link opens WhatsApp with a message for Support |
| «Il Narciso Hub risulta offline. Verifica che sia acceso e connesso alla rete.» (The Narciso Hub appears to be offline. Check that it is switched on and connected to the network.) | The Hub does not respond |
| «Il lettore barcode risulta offline. Verifica che il Narciso Hub sia acceso e connesso.» (The barcode reader appears to be offline. Check that the Narciso Hub is switched on and connected.) (with two readers: «I lettori barcode risultano offline...» (The barcode readers appear to be offline...)) | The Hub responds but the reader does not |
| «Il lettore barcode risulta scollegato dall'Hub. Verifica il cavo e la porta USB.» (The barcode reader appears to be disconnected from the Hub. Check the cable and the USB port.) (with two readers: «Nessun lettore barcode risulta collegato all'Hub. Verifica i cavi e le porte USB.» (No barcode reader appears to be connected to the Hub. Check the cables and the USB ports.)) | The reader is paired but not connected |
| «Impossibile verificare lo stato del lettore barcode.» (Unable to check the status of the barcode reader.) | Network error: try again |
| «Scanner non configurato» (Scanner not configured) | The Hub is there but no reader is paired with the location: ask Support to pair it |
With the reader ready, a pulsing green dot appears on the barcode icon and the green strip «Lettore barcode pronto. Scansiona i codici per caricare (+) o scaricare (-) stock.» (Barcode reader ready. Scan the codes to load (+) or unload (-) stock.). Before any scan it reads «Nessuna scansione rilevata» (No scan detected).
Scanning#
- The reader must be in Magazzino mode (side menu ▸ barcode readers). In any other mode the reading is not accepted and the notice «Attualmente lo Scanner Desktop (oppure la Pistola Barcode) ha attiva la modalità NOME. Per poterlo usare qui nel Magazzino, imposta la modalità Magazzino nella sidebar.» (The Desktop Scanner (or the Barcode Gun) currently has NAME mode active. To use it here in Magazzino, set Magazzino mode in the sidebar.) appears.
- You pass the product in front of the reader: the window gives a brief green flash and a row appears at the top of the list.
- If the same code is read twice within 0.8 seconds the second reading is ignored. Later on, the reading adds +1 to the row already there.
- Codes that start with «MODE:» (those for changing mode) are ignored.
The list. Each row has four columns:
| Column | What it contains |
|---|---|
| Prodotto / EAN (Product / EAN) | The name in bold and below it «EAN: code · Stock aggiornato: N pz» (Updated stock: N pcs) (the current stock plus the quantity of the row, that is, how much will be left after saving). If the code does not match any product, the blue link Associa a un prodotto (Link to a product) appears and below it «EAN sconosciuto: code» (Unknown EAN: code) |
| Operatore (Operator) | A menu with the active team members, with the field «Cerca operatore...» (Search operator...). By default it is the logged-in person, if they are also a team member; otherwise nobody, and one must be chosen on every row |
| Quantità | The counter described below |
| Azione (Action) | The bin, which removes that row without confirmation |
The counter. Every row starts with +1 (in green: stock in). To do a stock out the quantity must become negative (in red).
- The − and + buttons change the quantity by 1; if you hold them down, after about 0.3 seconds the quantity runs quickly. Going from +1 to −1 and from −1 to +1 skips zero.
- The mouse wheel over the counter increases or decreases the quantity.
- When typing in the field, only digits and the minus sign are accepted, whole numbers other than zero.
- A row at zero is ignored when saving.
- If the stock out exceeds the stock, the row turns pink and the text «Quantità supera lo stock disponibile» (Quantity exceeds the available stock) appears.
At the bottom of the window (if there is at least one row) you can read «Voci in lista: N» (Items in list: N), the Svuota (Clear) button (removes all the rows without confirmation) and Salva Movimenti (Save Movements).
Unknown code: link or create the product#
For a code that is not in the catalogue, click Associa a un prodotto. The window becomes «Associazione EAN | EAN: code» (EAN association | EAN: code) with three buttons: Cerca (Search), + Nuovo (+ New) and ← Indietro (← Back).
- The table lists only the products that do not yet have an EAN (not removed, not obsolete), with Prodotto, Categoria (Category), Stock and the Associa (Link) button. If there are none: «Tutti i prodotti hanno già un EAN associato.» (All the products already have an EAN linked.).
- Cerca opens a strip («Cerca prodotti senza EAN per nome o categoria...» (Search products without EAN by name or category...)); if it finds nothing: «Nessun prodotto senza EAN trovato per "text".» (No product without EAN found for "text".).
- Associa links the code to that product and goes back to the list. The EAN is written onto the product only when the movements are saved.
- + Nuovo opens, in the same window, «Nuovo Prodotto | EAN: code» (New Product | EAN: code), with the guided procedure from Products and the EAN already filled in; on saving, the new product is linked to the row. Annulla (Cancel) goes back. Creating a product is reserved for Titolare (owner) and Responsabile (manager).
- ← Indietro goes back to the list without linking.
An unknown code never becomes a «fake» product: if you save with unlinked codes the program saves nothing and warns «Il codice … non corrisponde a nessun prodotto: usa "Associa a un prodotto" per sceglierne uno o crearne uno nuovo con i suoi dati, poi conferma.» (The code … does not match any product: use "Associa a un prodotto" to choose one or create a new one with its details, then confirm.). A stock out of an unknown code is not possible.
Saving#
- Check the rows, the quantities (with their sign) and the operators.
- Press Salva Movimenti («Salvataggio...» (Saving...)).
- If a row's operator is missing:
Seleziona l'operatore per "NOME" prima di salvare.(Select the operator for "NAME" before saving.). - Every stock out is checked against the stock. If one exceeds it,
Quantità per "NOME" (N pz) superiore allo stock disponibile (M pz).(Quantity for "NAME" (N pcs) higher than the available stock (M pcs).) appears (or, if the check is done by the program, «Impossibile completare lo scarico: la quantità per "NOME" (N pz) supera la quantità disponibile (M pz).» (Unable to complete the stock out: the quantity for "NAME" (N pcs) exceeds the available quantity (M pcs).); if the stock drops just while you are saving, «... è cambiata nel frattempo. Nessun movimento è stato registrato.» (... has changed in the meantime. No movement has been registered.)) and nothing is saved. - If everything is fine, the movements are registered all together with the reason «Scansione Barcode» and the chosen operator; the window closes without a notification and the new rows appear at the top of the log.
- If saving fails, «Errore durante il salvataggio dei movimenti» (Error while saving the movements) (or the program's message) appears and the list stays.
The window closes with the X or with a click on the dark background, without asking for confirmation and losing the unsaved list; the Esc key does not close it.
Inventory count#
At the top, in the green strip, the Carico/Scarico | Conteggio (Stock in/out | Count) selector changes mode. With rows already in the list it asks «Cambiando modalità la lista attuale viene svuotata. Continuare?» (If you change mode the current list will be emptied. Continue?).
In Conteggio mode the column is called Contati (Counted): the pieces are counted from zero upwards, without sign; every reading adds one to the counted pieces. Under the name appear «Sistema: N pz» (System: N pcs) and «Differenza: ±N pz» (Difference: ±N pcs) or «Coincide con il sistema» (Matches the system). The button becomes Salva Conteggio (Save Count).
- Two rows for the same product (two different codes) are added together; a row with an unlinked code blocks saving with
"NOME": associa un prodotto prima di salvare il conteggio.("NAME": link a product before saving the count.). - The count sets the stock to the counted value only if it is still the one you saw. If it has changed in the meantime,
La giacenza è cambiata mentre contavi: "NOME" (vista → attuale). Ricontrolla e salva di nuovo; nessun conteggio è stato registrato.(The stock changed while you were counting: "NAME" (seen → current). Check again and save again; no count has been registered.) appears and the rows start again from the current value. - Every change writes an Inventario movement with the reason «Conteggio d'inventario».
- Final messages: «Conteggio registrato: N variazioni, M già corretti.» (Count registered: N changes, M already correct.) or «Conteggio registrato: la giacenza era già corretta.» (Count registered: the stock was already correct.).
Procedures#
Loading goods that arrived from the supplier without a registered order
- Carico & Scarico ▸ Aggiungi.
- With the reader in Magazzino mode, read one package for each product (each reading adds 1).
- Correct the quantities with the counter.
- Check the operator and press Salva Movimenti.
Unloading consumed products
- Aggiungi, read the products.
- In each row press − until the quantity becomes negative and bring it to the number of pieces.
- Salva Movimenti.
Counting the stock
- Aggiungi, then Conteggio in the green strip.
- Read each piece: every reading adds one to the counted pieces.
- Check the differences and press Salva Conteggio.
Without a reader#
The log cannot be fed by hand. To increase the stock you receive an order to suppliers (Incoming orders); to correct a wrong stock you use Giacenza Iniziale (Initial Stock) in the product's guided record, which leaves an Inventario movement (Products). There is currently no way to unload consumed products without a reader and with a movement.