La prima volta che ho ottenuto un numero fuori sequenza, abbiamo avuto sorpresa e un po 'di sgomento fino a quando non ho capito cosa stava succedendo. Ha a che fare con il modo in cui Magento assegna i numeri degli ordini cliente.
È del tutto normale avere uno fuori sequenza del genere, essere precedenti agli attuali numeri assegnati e un mese o più vecchi. Il segreto è che era un cliente registrato che non ha completato l'ordine dopo una certa fase critica, è tornato, ha effettuato l'accesso e ha deciso di acquistare finalmente.
Il preventivo con il numero dell'ordine cliente assegnato utilizza quel numero per il numero ordine cliente.
Ora per la spiegazione.
Il processo di ordine Magento crea un preventivo la prima volta che qualcosa viene aggiunto al carrello.
- Per i clienti ospiti, questo preventivo dura fino a quando la loro sessione non è scaduta, a quel punto esiste nel database, ma non è recuperabile dal cliente ospite.
- Quando un cliente registrato effettua l'accesso, al preventivo del carrello viene assegnato l'ID cliente in modo che il carrello duri finché il cliente non lo svuota e può essere recuperato dal cliente registrato accedendo al proprio account.
A questo punto, l'offerta è solo un potenziale ordine cliente. Non ha un numero assegnato perché il cliente non si è impegnato a pagarlo.
Quando il cliente fa clic sul pulsante Procedi per effettuare il checkout, dovrà:
- effettuare l'accesso prima di avviare il carrello
- o se non ha effettuato l'accesso, gli è stato chiesto se desiderano registrarsi o effettuare il check out come ospite.
Ciò che segue è un aspetto importante: i clienti che scelgono di registrarsi nel carrello vengono trattati come clienti ospiti fino a quando l'ordine non viene completato e arrivano alla pagina di successo, momento in cui il loro account viene creato e sono connessi. rimane un preventivo cliente ospite con la perdita di carrello del timeout della sessione se l'ordine non viene completato e viene visualizzata una pagina di successo.
Con un ordine con carta di credito, quando si fa clic sul pulsante Effettua ordine si verifica quanto segue .
- Vengono raccolte le informazioni sulla carta di credito, le informazioni sull'indirizzo di fatturazione, i totali del carrello e le informazioni sull'ordine
- Un numero di ordine cliente è assegnato per questo preventivo (
sales_flat_quote
tabella nella reserved_order_id
colonna)
- Il pacchetto di dati viene inviato al gateway della carta di credito per autorizzare / acquisire i fondi per il pagamento dell'ordine.
- Il processore del carrello di credito passa indietro:
- sia un 'autorizzazione / acquisizione di fondi con le informazioni di transazione appropriata da registrare
- o rifiuto del pagamento con le informazioni appropriate sul motivo per cui l'autorizzazione / acquisizione è stata negata.
- Se l'autorizzazione / acquisizione ha esito positivo, il preventivo viene convertito in un ordine cliente e, se si tratta di un registro del carrello, viene creato l'account cliente.
Se la transazione con carta di credito viene rifiutata per qualsiasi cliente dal gateway di pagamento con carta di credito e il cliente successivo effettua un ordine andato a buon fine , nella sequenza numerica dell'Ordine di vendita verrà saltato a causa dell'assegnazione a un Ordine di vendita riservato del pagamento rifiutato e al seguente ordine cliente riuscito viene assegnato il successivo numero disponibile.
Per i carrelli degli ospiti (ordini degli ospiti e registrazione non riuscita nei clienti del carrello) che superano il timeout della sessione, questo numero di Ordine di vendita riservato andrà perso alla scadenza della sessione, lasciando vuoti nella sequenza Ordine di vendita.
Per i clienti che hanno effettuato l'accesso prima di fare clic sul pulsante Procedi , al preventivo viene assegnato un ID cliente, quindi se tentano di effettuare un ordine e scoprono che è stato rifiutato, possono tornare, accedere, trovare il carrello ha ancora dei contenuti e posizionare il ordine, a volte molto più tardi (il più lungo finora è stato di quattro mesi). Il preventivo utilizzerà il numero dell'ordine di vendita riservato assegnato, portando a un numero di ordine di vendita fuori sequenza visualizzato nel display di gestione dell'ordine di vendita.