La première fois que j'ai obtenu un numéro de séquence, nous avons été surpris et quelque peu consternés jusqu'à ce que je comprenne ce qui se passait. Cela concerne la façon dont Magento attribue les numéros de commande client.
Il est tout à fait normal d'en avoir un hors séquence comme celui-ci, soit antérieur aux numéros alloués en cours et âgé d'un mois ou plus. Le secret est que c'était un client connecté qui n'a pas terminé la commande après une certaine étape critique, est revenu, s'est connecté et a finalement décidé d'acheter.
Le devis avec le numéro de commande client attribué utilise ce numéro pour le numéro de commande client.
Maintenant pour l'explication.
Le processus de commande Magento crée un devis la première fois qu'un article est ajouté au panier.
- Pour les clients invités, ce devis dure aussi longtemps que leur session n'a pas expiré, date à laquelle il existe dans la base de données, mais n'est pas récupérable par le client invité.
- Lorsqu'un client enregistré se connecte, le devis du panier reçoit son identifiant client afin que le panier dure aussi longtemps que le client ne le vide pas et peut être récupéré par le client enregistré en se connectant à son compte.
À ce stade, le devis est une commande client potentielle uniquement. Il n'a pas de numéro attribué car le client ne s'est pas engagé à le payer.
Lorsque le client clique sur le bouton Continuer pour passer à la caisse, il:
- soit être connecté avant de démarrer le panier
- ou s'ils ne sont pas connectés, leur a demandé s'ils souhaitaient s'inscrire ou effectuer un paiement en tant qu'invité.
Ce qui suit est un élément important: les clients qui choisissent de s'inscrire dans le panier sont traités comme des clients invités jusqu'à ce que la commande soit terminée et qu'ils accèdent à la page de réussite, moment auquel leur compte est créé et connecté. Le devis reste un devis client invité avec la perte de délai d'expiration de la session du panier si la commande n'est pas terminée et une page de succès s'affiche.
Avec une commande par carte de crédit, ce qui suit se produit lorsque le bouton Passer la commande est cliqué.
- Les informations de carte de crédit, les informations d'adresse de facturation, les totaux du panier et les informations de commande sont assemblées
- Un numéro de commande client est attribué à ce devis (
sales_flat_quote
tableau dans la reserved_order_id
colonne)
- Le paquet de données est soumis à la passerelle de carte de crédit pour autoriser / capter les fonds pour payer la commande.
- Le processeur du panier de crédit renvoie:
- soit une autorisation / capture de fonds avec les informations de transaction appropriées à enregistrer
- ou refus de paiement avec les informations appropriées expliquant pourquoi l'autorisation / la capture a été refusée.
- Avec une autorisation / capture réussie, le devis est converti en commande client et s'il s'agit d'un registre de panier, le compte client est créé.
Si la transaction par carte de crédit est refusée pour un client par la passerelle de paiement par carte de crédit, et que le prochain client passe une commande réussie, il y aura un saut dans la séquence de numéros de commande client en raison du paiement refusé. La commande client se voit attribuer un numéro de commande client réservé. et la commande client réussie suivante se voit attribuer le prochain numéro disponible.
Pour les paniers d'invités (commandes d'invités et inscriptions infructueuses dans les clients du panier) qui dépassent le délai d'expiration de la session, ce numéro de commande client réservé sera perdu à l'expiration de la session, laissant des lacunes dans la séquence des commandes client .
Pour les clients qui se sont connectés avant de cliquer sur le bouton Continuer , le devis se voit attribuer un identifiant client, donc s'ils tentent de passer une commande et constatent qu'elle est refusée, ils peuvent revenir, se connecter, trouver que le panier contient toujours du contenu et placer le commande, parfois beaucoup plus tard (le plus long à ce jour était de quatre mois). Le devis utilisera le numéro de commande client réservé attribué, ce qui entraînera un numéro de commande client hors séquence affiché dans votre écran de gestion des commandes client.