Assistenza Infurnia
Pricing

Risolvere i download dei preventivi che falliscono o non arrivano mai

Scopri perché un'esportazione CSV, PDF o XLSX di un preventivo rifiuta il download, mostra successo senza file oppure non arriva mai dopo essere stata messa in coda.

  1. I CSV e i PDF dei preventivi vengono prodotti nel filesystem in-browser dell'app e consegnati al browser come download normale, seguito da un avviso 'Successfully downloaded files'. Se il file generato esiste ma è vuoto, l'app rifiuta con l'avviso di errore 'Cannot download empty content' — le cause abituali sono una tabella preventivo vuota (nulla con prezzo nell'ambito/filtri correnti) o una generazione interrotta a metà; rigenera il preventivo e riprova. Due insidie correlate: (1) dopo un download riuscito il file temporaneo viene eliminato dal filesystem in-app e l'URL blob viene revocato immediatamente, quindi usare il 'retry download' del browser su quella voce fallirà — l'esportazione deve essere riattivata dall'interno dell'app; (2) i download vengono avviati tramite un clic simulato su un link, quindi impostazioni aggressive di blocco dei download del browser possono bloccare il file mentre l'app mostra comunque successo; fai verificare al cliente i permessi di download del browser per il sito. Per le esportazioni XLSX il nome file è pricing_quotation.xlsx, oppure un output-<timestamp>-<random>.xlsx generato automaticamente quando il motore non fornisce un nome.

  2. Quando il download di un preventivo XLSX fallisce, le esportazioni CSV e PDF del preventivo sono azioni in-browser separate e possono comunque essere scaricate.

  3. L'output CSV omette le immagini, quindi non è un sostituto quando le immagini sono necessarie.

    ✓ Verificato nel prodotto il 19 ottobre 2026
  4. Ogni esportazione di preventivo/produzione esegue prima i controlli pre-output e un passaggio sulle violazioni (il loader mostra 'Checking for violations...'). Gli output dei sottoinsiemi di pannelli sono un'eccezione: saltano il passaggio sulle violazioni e vengono inviati per l'elaborazione al backend, quindi per essi non compare alcun avviso di violazioni. Le preferenze admin possono bloccare il download, ciascuna con il proprio avviso di errore che i clienti spesso non notano: (1) Enforce active sales channel — se abilitata e il design non ha un canale di vendita attivo selezionato: 'Downloading output for design without active sales channel preference is not permitted'; (2) No outputs for unapproved designs — blocca gli output di classe order-booking/ERP/purchase-order sui design non approvati; (3) No outputs for unlocked designs — lo stesso per i design non bloccati; (4) No Outputs For Designs With Violations And Issues — se esistono violazioni dei vincoli di catalogo, un avviso persistente chiede di risolvere tutte le violazioni o disattivare la preferenza. Le esportazioni dei preventivi (il download del preventivo e le esportazioni CSV/XLSX del preventivo) sono esenti dalle preferenze di approvazione e blocco: solo le preferenze sul canale di vendita attivo e sulle violazioni possono bloccarle. Un design può essere esentato individualmente dal blocco delle violazioni (avviso informativo: 'Design Exempted from blocking output due to violations'). Gli utenti marketplace/venditore aggirano tutti questi controlli, e i controlli di approvazione/blocco non si applicano agli utenti MES. Script di triage: chiedi quale avviso è apparso; se non ne è stato visto nessuno, riproduci con il cliente e osserva la parte superiore dello schermo, poi controlla le preferenze admin e il pannello delle violazioni per quel design.

  5. Gli output generati dal server (PDF di presentation sheet, output CAM/segatrice, output di design generati dal motore) vengono messi in coda sul backend. L'app invia il job, mostra un avviso persistente 'Generating your output' il cui dettaglio recita 'Added to the download queue' (e, durante l'attesa, una posizione in coda o 'Processing…'), poi interroga lo stato del job ogni 5 secondi da quella scheda del browser. Al completamento mostra 'Your output is ready' e avvia automaticamente il download del file; in caso di errore compare un 'Your output could not be generated. Please try again later.' persistente. Regole silenziose che spiegano la maggior parte dei ticket: (1) il poller esiste solo in quella scheda — se l'utente aggiorna, naviga altrove o chiude la scheda, il job si completa comunque sul server ma nulla verrà mai scaricato; deve riattivare l'esportazione; (2) non c'è timeout sul poller, quindi un job bloccato in coda lascia l'avviso 'Generating your output' (dettaglio 'Added to the download queue' o una posizione in coda) visibile a tempo indefinito — se quell'avviso resta per molti minuti significa che la coda è intasata o che il job è terminato silenziosamente, e vale la pena controllare la coda degli output sul backend; (3) se il controllo di stato stesso va in errore, il polling si ferma con 'Something went wrong with output generation. Please try again later'. Il download automatico sopprime brevemente l'avviso del browser di uscita dal sito; è intenzionale.