Un selettore della data di consegna mostra le date. La validazione le fa rispettare. Su Shopify, validazione significa una Cart and Checkout Validation Function: un controllo che gira sui server di Shopify prima del pagamento e ferma l'ordine se la data manca, è chiusa o è piena. Gira su ogni piano Shopify e su ogni via d'accesso al checkout, compresi Shop Pay, Apple Pay e Buy it now. Solo un selettore mostrato dentro la pagina di checkout richiede Plus.
Perché un selettore da solo lascia passare date sbagliate
Un selettore sulla pagina prodotto o carrello è una visualizzazione. Rende grigie le date chiuse e piene nel browser del cliente, e basta. Gli ordini passano comunque senza una data valida quando:
- Il cliente usa un pulsante express. Buy it now, Shop Pay, Apple Pay e Google Pay sulla pagina prodotto vanno dritti al checkout, quindi il selettore del carrello non gira mai. Vedi Buy it now salta la data di consegna.
- La data si è riempita mentre il cliente pagava. Il selettore mostrava «1 rimasto» al caricamento della pagina. Qualcun altro l'ha presa.
- Il carrello è di ieri. Il cliente ha scelto una data, è tornato dopo l'orario limite e ha completato l'ordine.
- Il cassetto del carrello non mostra il selettore, oppure il tema è cambiato e il blocco del selettore è stato rimosso.
- Qualcuno modifica la data di consegna del carrello a mano o con uno script.
Anche l'opzione gratuita di Shopify, un selettore di date aggiunto alla pagina carrello con codice del tema, ha la stessa lacuna: raccoglie una data, ma niente la controlla al checkout.
I controlli che la validazione della data di consegna dovrebbe fare
Questi sono i controlli che OrderRules esegue al checkout, con il messaggio che il cliente vede per impostazione predefinita:
| Controllo | Cosa intercetta | Messaggio predefinito |
|---|---|---|
| Data obbligatoria | Nessuna data, spesso da Buy it now o Shop Pay | Scegliere una data di consegna prima del check-out. |
| Data consentita | Date passate, entro il tempo di preparazione o dopo l'orario limite, in un giorno della settimana in cui non consegni, oltre il tuo orizzonte di prenotazione | La data di consegna selezionata non è più disponibile. Sceglierne un'altra. |
| Data di chiusura | Una data bloccata, come una festività | Nella data selezionata non effettuiamo consegne. Sceglierne un'altra. |
| Giorno pieno | La data ha raggiunto il numero massimo di ordini per data di consegna | La consegna del {date} è al completo. Scegliere un'altra data. |
| Fascia oraria | Nessuna fascia scelta, oppure la fascia è piena | Scegliere una fascia oraria di consegna. / La fascia oraria di consegna selezionata è al completo. Sceglierne un'altra. |
| Limite del prodotto per data | Più unità di un prodotto di quante ne restino per quella data | Only {n} left for delivery on {date}. Please reduce the quantity or choose another date. |
| Metodo | Articoli solo ritiro e solo consegna mescolati, oppure il metodo sbagliato | Alcuni articoli nel carrello richiedono metodi di evasione diversi e non possono essere acquistati insieme. |
| Ritiro | Nessuna data, punto o orario di ritiro; un giorno o una fascia di ritiro chiusi o pieni | Scegliere una data di ritiro prima del check-out. (e altri cinque) |
Se il controllo al checkout di un'app copre solo la prima riga, ferma gli ordini senza data ma non quelli in overbooking.
Tre modi per avere la validazione su Shopify
1. Costruisci la tua Function di validazione. Uno sviluppatore scrive una Cart and Checkout Validation Function che legge la data di consegna del carrello e restituisce un errore se non è consentita. Gira su ogni piano. Una Function non può interrogare un database mentre gira, quindi le date consentite e i conteggi delle prenotazioni devono essere scritti prima in un metafield e tenuti aggiornati. È la parte più grossa del lavoro. Le validation Functions spiegate di Shopify descrivono i meccanismi.
2. Usa un'app con selettore di date e validazione al checkout. Prima di installarla, poni cinque domande:
- Usa una Cart and Checkout Validation Function, oppure solo JavaScript del tema?
- Ferma gli ordini senza data da Buy it now, Shop Pay e Apple Pay?
- Su quali piani Shopify gira il controllo?
- Ricontrolla le date e le fasce piene al checkout, o si limita a nasconderle nel selettore?
- Puoi modificare i messaggi, in ogni lingua in cui vendi?
Il nostro confronto delle app per selezionare la data di consegna indica quali app applicano la regola al checkout e quali si limitano a mostrare.
3. Su Shopify Plus, metti il selettore dentro il checkout. Una checkout UI extension mostra il calendario nella pagina di checkout, così lo vedono anche gli acquirenti express. Resta comunque solo una visualizzazione: abbinala a una Function di validazione, altrimenti una data può essere saltata o non aggiornata.
Configurala in OrderRules
- Con il piano Advanced, apri la tua regola di disponibilità e attiva Rendere obbligatoria la data di consegna al check-out (e Richiedere una fascia oraria se usi le fasce).
- In Shopify, apri Impostazioni → Checkout, scorri fino a Checkout rules e verifica che la regola di OrderRules sia attiva.
- Imposta cosa controlla la validazione: Numero massimo di ordini per data di consegna, Limite/giorno su ogni fascia oraria, limiti dei prodotti conteggiati per Data di consegna e date di chiusura.
- In Messaggi del check-out, modifica qualsiasi messaggio o applica un pacchetto lingua.
- Prova senza data, con una data chiusa e con una data piena, dal carrello, con Buy it now e con Shop Pay. Un development store è il posto più sicuro dove provare per primo.
Cosa la validazione non può intercettare
- Due checkout nello stesso secondo per l'ultimo posto possono passare entrambi. La validazione legge ciò che è prenotato; non blocca il posto.
- Subito dopo un orario limite, una data può superare il checkout per un breve periodo finché l'app non aggiorna il proprio elenco di date consentite. Il selettore sulla pagina fa sparire la data subito.
- Gli ordini che saltano il checkout non vengono controllati: Shopify POS, rinnovi di abbonamenti, ordini creati nell'admin e contrassegnati come pagati, e ordini di altre app o dell'Admin API. Contano comunque nei tuoi limiti.
- Modifiche dopo l'acquisto. Cambiare la data di un ordine nell'admin di Shopify non viene controllato e non sposta il suo posto.
- CAP e zone. OrderRules non controlla l'indirizzo. Per smettere di consegnare in un'area, lasciala fuori dalle tue zone di spedizione Shopify.
Altri dettagli in compatibilità e limitazioni note.