---
title: "Validazione della data di consegna su Shopify: blocca date mancanti, chiuse e piene al checkout"
description: "Un selettore della data di consegna si limita a mostrare le date. La validazione è ciò che ferma un ordine senza data, con una data chiusa o con una data piena. Ecco i controlli che contano, i messaggi esatti che vedono i clienti, tre modi per averla su Shopify e cosa non riesce comunque a intercettare."
contentType: "blog"
locale: "it"
localized: true
source: "https://orderrules.com/it/blog/shopify-delivery-date-validation"
slug: "shopify-delivery-date-validation"
date: "2026-10-31"
tags:
  - "shopify"
  - "delivery dates"
  - "delivery date validation"
  - "checkout validation"
  - "shopify functions"
  - "express checkout"
  - "buy it now"
  - "shop pay"
  - "capacity"
---
**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](/blog/shopify-buy-it-now-skips-delivery-date).
- **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](/blog/shopify-checkout-validation-functions-block-orders) di Shopify descrivono i meccanismi.

**2. Usa un'app con selettore di date e validazione al checkout.** Prima di installarla, poni cinque domande:

1. Usa una Cart and Checkout Validation Function, oppure solo JavaScript del tema?
2. Ferma gli ordini senza data da Buy it now, Shop Pay e Apple Pay?
3. Su quali piani Shopify gira il controllo?
4. Ricontrolla le date e le fasce piene al checkout, o si limita a nasconderle nel selettore?
5. Puoi modificare i messaggi, in ogni lingua in cui vendi?

Il nostro [confronto delle app per selezionare la data di consegna](/blog/best-shopify-delivery-date-picker-apps) 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

1. 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).
2. In Shopify, apri **Impostazioni → Checkout**, scorri fino a **Checkout rules** e verifica che la regola di OrderRules sia attiva.
3. 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.
4. In **Messaggi del check-out**, modifica qualsiasi messaggio o applica un pacchetto lingua.
5. 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](/docs/getting-started/test-on-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](/docs/guides/compatibility-and-limitations).

## Correlati

- [Buy it now salta la data di consegna](/blog/shopify-buy-it-now-skips-delivery-date) · [Come funziona la validazione del checkout](/blog/shopify-checkout-validation-functions-block-orders) · [Le migliori app per la data di consegna](/blog/best-shopify-delivery-date-picker-apps)
- [Data di consegna al checkout (Plus)](/docs/delivery/delivery-date-at-checkout) · [Limiti per data di consegna](/docs/delivery/delivery-date-limits)
