Spedizione Parziale e Ordini Arretrati Automatici (dfavailsplit)
Installa, configura e comprendi il modulo che spedisce lo stock disponibile e mette automaticamente il resto in arretrato.
Presentazione
Questo modulo divide automaticamente ogni ordine in base allo stock realmente disponibile. Gli articoli disponibili partono subito in un ordine pronto per la preparazione, mentre gli articoli esauriti vengono spostati in un ordine arretrato (backorder) dedicato. I due ordini condividono lo stesso riferimento e la somma dei loro totali è rigorosamente uguale all’ordine originale, tasse comprese.
Tutto si attiva alla convalida dell’ordine, e una divisione manuale riga per riga è disponibile su ogni scheda ordine.
Installazione
- Caricate la cartella
dfavailsplitin/modules/, oppure installate l’archivio ZIP tramite Moduli > Gestore moduli > Carica un modulo. - Cliccate su Installa.
- Aprite la configurazione tramite Configura.
All’installazione, il modulo crea uno stato ordine dedicato «In attesa di riassortimento (Backorder)» (colore arancione). Questo stato e la cronologia delle divisioni vengono conservati alla disinstallazione per preservare i vostri dati.
Configurazione
Andate in Moduli > Gestore moduli > dfavailsplit > Configura.
Attivare la divisione automatica
Interruttore principale. Disattivato, nessun ordine viene diviso automaticamente; la divisione manuale resta disponibile sulla scheda ordine.
Stato ordine backorder
Stato applicato all’ordine che contiene gli articoli esauriti. Per impostazione predefinita, lo stato «In attesa di riassortimento (Backorder)» creato all’installazione.
Sovrascrittura dello stato dell’ordine spedibile
Opzionale. Attivatela per forzare uno stato preciso (per esempio «Preparazione in corso») sull’ordine spedibile. Disattivata, l’ordine conserva il suo stato corrente.
Spedizione gratuita sul backorder
Attivata per impostazione predefinita. Le spese di spedizione restano sull’ordine spedibile; l’arretrato viene consegnato senza spese, perché il cliente ha già pagato la spedizione una sola volta.
Divisione delle righe parziali
Attivata per impostazione predefinita. Una riga parzialmente disponibile (3 in stock su 5 ordinati) viene divisa in 3 spediti + 2 in arretrato. Disattivata, l’intera riga passa in arretrato.
E-mail backorder
Invia al cliente una e-mail nella sua lingua (FR/EN/ES/DE/IT/PL inclusi, fallback in inglese) informandolo che l’ordine sarà spedito in più parti.
Rigenerazione delle fatture dopo la divisione
Disattivata per impostazione predefinita. Lasciatela disattivata per emettere le fatture al momento della spedizione reale di ogni ordine. Attivata, il modulo rigenera le fatture di entrambi gli ordini dopo la divisione se lo stato corrente lo richiede.
Registrazione
Registra ogni operazione di divisione nei log di PrestaShop per la tracciabilità.
Come funziona la divisione
La divisione automatica viene eseguita subito dopo la convalida dell’ordine (hook actionValidateOrderAfter, con fallback su actionOrderStatusPostUpdate per i flussi che non lo emettono). Il modulo deduce la quantità spedibile di ogni riga dalla reale carenza di stock, aggregata per prodotto e combinazione. Questo modello resta corretto anche per una divisione manuale lanciata giorni dopo, quando lo stock è cambiato.
Si presentano tre casi:
- Tutto è disponibile: nessuna divisione. L’ordine segue il suo corso (possibile forzatura dello stato).
- Tutto è esaurito: nessuna divisione, l’intero ordine passa allo stato backorder.
- Ordine misto: l’ordine originale conserva la parte spedibile (spedizione, sconti, confezione, pagamento); un nuovo ordine arretrato viene creato per il resto, con lo stesso riferimento.
I totali (prodotti, spedizione, sconti, confezione, peso) e la ripartizione IVA vengono ricalcolati al centesimo, riga per riga. La somma dei due ordini è esattamente uguale all’ordine originale, tasse comprese, anche sulle fatture rigenerate e nei report fiscali. Il pagamento, aggregato per riferimento, si riconcilia nativamente.
La divisione è atomica: tutte le mutazioni (creazione dell’arretrato, spostamento delle righe, totali, corriere, fatture) sono racchiuse in una transazione SQL. Un errore a metà strada annulla tutto, mai un ordine diviso a metà.
Divisione manuale dalla scheda ordine
Su ogni scheda ordine non divisa, il pannello «Divisione per disponibilità» mostra una tabella riga per riga: prodotto, quantità ordinata, stock attuale e quantità da mettere in arretrato. I campi sono precompilati con il suggerimento dell’analisi dello stock; regolateli liberamente, con 0 la riga resta sull’ordine originale, poi cliccate su «Dividi questo ordine ora».
- Disponibile anche con la divisione automatica disattivata.
- Un ordine già diviso non può mai essere diviso una seconda volta.
- La selezione viene rifiutata se svuoterebbe completamente uno dei due ordini.
- Le righe personalizzate e l’impostazione «divisione delle righe parziali» vengono rispettate.
Sulla scheda ordine (back office)
Una volta effettuata la divisione, il pannello collega i due ordini: dall’ordine spedibile rimanda all’arretrato associato, e viceversa. Il riferimento condiviso è richiamato in entrambe le direzioni.
Pagina di conferma ed e-mail al cliente
Sulla pagina di conferma dell’ordine, un blocco elenca gli articoli che saranno spediti separatamente, con il richiamo del riferimento comune e della spedizione pagata una sola volta. Il blocco funziona con tutti i temi: si appoggia alle tre ancore di conferma (displayOrderConfirmation, displayOrderConfirmation1, displayOrderConfirmation2) e risolve l’ordine dall’URL di conferma con verifica della chiave di sicurezza, senza mai mostrarsi due volte.
Se l’opzione e-mail è attiva, il cliente riceve inoltre una e-mail nella sua lingua che lo informa della spedizione parziale e della consegna senza spese dell’arretrato. I modelli FR, EN, ES, DE, IT e PL sono forniti nella cartella mails/ del modulo, con fallback in inglese per qualsiasi altra lingua.
L’e-mail di conferma iniziale (ordine completo) viene inviata da PrestaShop prima della divisione. L’e-mail backorder del modulo informa poi il cliente della spedizione in più parti.
Casi particolari e limiti
- I prodotti virtuali non vanno mai in arretrato.
- I prodotti in gestione avanzata dello stock (ASM) sono esclusi dalla divisione e restano sull’ordine spedibile.
- Una riga personalizzata non viene divisa: viene instradata intera verso uno dei due ordini.
- Se la gestione dello stock è disattivata in PrestaShop, non viene effettuata alcuna divisione.
Risoluzione dei problemi
Nessun ordine viene diviso
Verificate che la divisione sia attivata, che la gestione dello stock di PrestaShop sia attiva e che i prodotti interessati non siano né virtuali né in gestione avanzata dello stock. Una divisione automatica avviene solo per un ordine misto (con disponibile ed esaurito insieme). Per ogni altro caso, usate la divisione manuale sulla scheda ordine.
L’arretrato mostra spese di spedizione
Attivate l’opzione «Spedizione gratuita sul backorder». Le spese restano allora solo sull’ordine spedibile.
Il blocco non appare sulla pagina di conferma
Dalla versione 1.3.4, il blocco viene mostrato con tutti i temi tramite tre ancore di conferma. Se usate una versione precedente, aggiornate il modulo.
Compatibilità
PrestaShop 8.x e 9.x, multinegozio, senza override né Composer.