# Distinta base — Kit e assemblaggio — Guida completa

> Presentazione e prerequisiti Il modulo Distinta base aggiunge a PrestaShop una gestione della distinta base (BOM): ogni prodotto può dichiarare l'elenco dei suoi componenti con le quantità, e il negozio…

- Pagina: <https://www.datafirefly.com/it/documentation/datafireflybom/>
- Lingua: it
- Aggiornato il: 2026-07-08
- Altre lingue: [fr](https://www.datafirefly.com/documentation/datafireflybom/index.md), [en](https://www.datafirefly.com/en/documentation/datafireflybom/index.md), [es](https://www.datafirefly.com/es/documentation/datafireflybom/index.md), [de](https://www.datafirefly.com/de/documentation/datafireflybom/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafireflybom/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafireflybom/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafireflybom/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Presentazione e prerequisiti

Il modulo Distinta base aggiunge a PrestaShop una gestione della **distinta base (BOM)**: ogni prodotto può dichiarare l'elenco dei suoi componenti con le quantità, e il negozio ne trae automaticamente le conseguenze su stock e prezzo. Sono disponibili due logiche a seconda della vostra attività: il **kit virtuale** (stock calcolato, scarico dei componenti alla vendita) e l'**assemblaggio fisico** (ordini di produzione che generano stock di prodotto finito).

- Compatibile con PrestaShop da 8.0 a 9.x, tema Classic e temi derivati.
- PHP da 7.4 a 8.3.
- Multinegozio e multilingua.
- Componenti con combinazioni, distinte multilivello, protezione dai riferimenti circolari.
- Architettura conforme a PrestaShop (ModuleAdminController, ObjectModel), senza dipendenze Composer.

In modalità **kit virtuale**, lo stock del prodotto non si inserisce più manualmente: il modulo lo calcola come il minimo consentito dai componenti e lo aggiorna a ogni movimento.

## Installazione

Installate il modulo come qualsiasi modulo PrestaShop:

1. Scaricate l'archivio `datafireflybom.zip` dal vostro account cliente.
2. Nel back-office, andate su **Moduli > Gestore dei moduli**.
3. Cliccate su **Carica un modulo** e trascinate l'archivio.
4. Una volta installato, cliccate su **Configura** se desiderate regolare le impostazioni globali.

All'installazione, il modulo crea le sue tabelle (`dfbom`, `dfbom_component`, `dfbom_assembly_log`), registra i suoi hook e aggiunge la scheda **Distinte base / BOM** sotto Catalogo. Le distinte si gestiscono poi da ogni scheda prodotto.

## Impostazioni generali del modulo

La pagina di configurazione (**Moduli > DataFirefly BOM > Configura**) raccoglie le impostazioni globali e l'elenco delle distinte esistenti:

- **Sincronizzazione in tempo reale**: ricalcola automaticamente lo stock dei kit virtuali e i prezzi calcolati non appena un componente cambia stock o prezzo. Attiva per impostazione predefinita.
- **Consenti stock negativo**: permette di assemblare o vendere anche se lo stock dei componenti è insufficiente (flusso teso). Disattivata per impostazione predefinita.
- **Risincronizza tutti gli stock / prezzi**: un pulsante che ricalcola in una volta stock e prezzo di tutte le distinte attive. Utile dopo un'importazione o una migrazione di dati.

## Creare una distinta base

Aprite una scheda prodotto, poi la scheda **Moduli**: appare il pannello **Distinta base / BOM**. Attivate la distinta con l'interruttore in alto e seguite i passaggi numerati.

### 1. Scegliere la modalità di stock

- **Kit virtuale**: lo stock del prodotto è calcolato automaticamente dai componenti e ogni vendita li scarica. Ideale per cofanetti e pacchetti preparati su ordine.
- **Assemblaggio fisico**: il prodotto finito ha il proprio stock, alimentato da ordini di assemblaggio. Ideale per la produzione in serie.

### 2. Scegliere la modalità di prezzo

- **Prezzo fisso**: il prezzo resta quello definito sulla scheda prodotto. Nessun ricalcolo.
- **Prezzo calcolato**: il prezzo diventa la somma dei prezzi dei componenti, meno uno **sconto percentuale** che inserite. Ricalcolato automaticamente quando cambia il prezzo di un componente.

### 3. Aggiungere i componenti

Usate il campo di ricerca per trovare un prodotto per nome, riferimento o ID. I risultati mostrano miniatura, riferimento, stock e prezzo; cliccate per aggiungere il componente. Ogni riga permette di regolare la **quantità richiesta** con i pulsanti +/−. Potete aggiungere una **combinazione precisa** come componente (appare separatamente nella ricerca).

I quattro indicatori in alto nel pannello (componenti, quantità assemblabile, costo dei componenti, prezzo calcolato) si aggiornano **in diretta** mentre regolate quantità e sconto, ancora prima di salvare.

### 4. Salvare

Cliccate su **Salva la distinta**. Il modulo salva la distinta, ricalcola immediatamente lo stock del kit (modalità virtuale) e applica il prezzo calcolato se pertinente.

## La modalità kit virtuale

In modalità kit virtuale, lo stock del prodotto è il **minimo** consentito dai suoi componenti: per un cofanetto che richiede 2 martelli e 1 valigetta, con 120 martelli e 40 valigette a magazzino, il kit mostra 40 unità disponibili.

- Alla **convalida di un ordine**, lo stock di ogni componente viene scaricato secondo le quantità della distinta, poi lo stock del kit — e di tutti i kit che condividono quei componenti — viene ricalcolato.
- In caso di **annullamento o rimborso** di una riga, i componenti vengono ripristinati automaticamente.
- Se la **sincronizzazione in tempo reale** è attiva, ogni variazione di stock di un componente (vendita diretta, riassortimento, altro kit) aggiorna lo stock dei kit interessati.

La modalità kit virtuale presuppone che il kit stesso sia un prodotto **senza combinazioni**: lo stock calcolato è posto sul prodotto (combinazione 0). I componenti, invece, possono essere combinazioni.

## La modalità assemblaggio fisico

In modalità assemblaggio, il prodotto finito mantiene il proprio stock. Lo alimentate con **ordini di assemblaggio** dal pannello della scheda prodotto:

1. Inserite una quantità (il pulsante **Max** indica quante unità il vostro stock di componenti consente di produrre).
2. Cliccate su **Assembla**: i componenti vengono consumati e lo stock del prodotto finito aumenta.
3. Cliccate su **Disassembla** per l'operazione inversa: il prodotto finito viene scaricato e i componenti ripristinati.

Ogni operazione è tracciata in una **cronologia** con dipendente, data, operazione e quantità. La cronologia completa è consultabile sotto **Catalogo > Distinte base / BOM**.

Se lo stock negativo non è consentito, l'assemblaggio è bloccato quando lo stock dei componenti è insufficiente, e il disassemblaggio quando lo stock del prodotto finito è insufficiente. Un messaggio indica il massimo possibile.

## Il prezzo calcolato

In modalità prezzo calcolato, il prezzo IVA esclusa del kit è pari alla somma dei prezzi IVA esclusa dei suoi componenti (moltiplicati per le loro quantità), meno lo sconto percentuale definito. Questo prezzo viene scritto sulla scheda prodotto e ricalcolato:

- a ogni salvataggio della distinta;
- quando cambia il prezzo di un componente, se la sincronizzazione in tempo reale è attiva;
- durante una risincronizzazione globale dalla pagina di configurazione.

In modalità **prezzo fisso**, il modulo non tocca mai il prezzo della vostra scheda prodotto. Il prezzo calcolato resta mostrato a titolo indicativo nel pannello, ma non viene applicato.

## Distinte multilivello e combinazioni

Un componente può essere una **combinazione precisa** di un prodotto (taglia, colore…) o a sua volta un **kit** con la propria distinta. I sottoinsiemi si annidano allora su più livelli e i calcoli di stock si propagano a cascata. Il modulo rileva e **blocca i riferimenti circolari**, anche indiretti, al momento del salvataggio: un kit non può contenere sé stesso.

## La composizione nel front-office

Una casella **«Mostra la scheda Composizione sulla pagina prodotto del negozio»** permette, prodotto per prodotto, di presentare il contenuto del kit ai vostri clienti. Una scheda **Composizione** elenca allora ogni componente con la sua immagine, la sua quantità e un link alla sua pagina. Disattivata, la distinta resta del tutto invisibile nel negozio.

## FAQ e risoluzione dei problemi

### Lo stock del kit non si aggiorna

Verificate che la distinta sia **attiva**, in modalità **kit virtuale**, e che la sincronizzazione in tempo reale sia attivata nelle impostazioni. Un pulsante **Risincronizza tutti gli stock / prezzi** nella pagina di configurazione forza un ricalcolo completo.

### Il prezzo calcolato non viene applicato

Il prezzo viene scritto sulla scheda prodotto solo in modalità **prezzo calcolato**. In modalità prezzo fisso, il valore mostrato è indicativo. Verificate inoltre che i componenti abbiano un prezzo impostato.

### Non riesco ad assemblare

Senza autorizzazione allo stock negativo, l'assemblaggio è limitato dallo stock dei componenti. Il pulsante **Max** indica la quantità massima possibile. Attivate l'opzione **Consenti stock negativo** nelle impostazioni se il vostro flusso lo richiede.

### Appare un messaggio di riferimento circolare

State tentando di aggiungere come componente un prodotto che contiene già (direttamente o tramite un sotto-kit) il prodotto in modifica. Rimuovete quel componente o riorganizzate il vostro albero di distinte.

### Posso vendere i componenti separatamente?

Sì, è lo scenario tipico. Ogni componente resta un prodotto normale, vendibile singolarmente. Il modulo mantiene la coerenza: ogni vendita, del componente singolo o del kit, aggiorna gli stock e le quantità assemblabili di tutti i kit interessati.

### Cosa succede alla disinstallazione?

La disinstallazione rimuove la scheda e gli hook del modulo, elimina le sue tabelle (`dfbom`, `dfbom_component`, `dfbom_assembly_log`) e le sue variabili di configurazione. Gli stock e i prezzi già scritti sulle schede prodotto restano invariati.
