Je suis un peu confus avec l' ID de commande et l' ID d' incrément de commande , alors quelqu'un peut-il m'aider à comprendre la différence entre ces deux?
J'ai un observateur pour sales_order_place_after où je stocke les détails des ventes dans un tableau personnalisé.
Mais avec
$orderId = $observer->getEvent()->getOrder()->getId();
Je reçois les identifiants de commande comme des identifiants normaux comme 112 ou 113 ou 110, etc. pas comme 20001201
Alors, quel est le véritable identifiant de commande, 20001201 ou 112?
Je dois continuer à traiter les données de commande en fonction de cet identifiant de commande, j'utilise 112, 113 etc. et cela fonctionne, mais je dois clarifier cela.
la source
id
= lasales_flat_order
valeur de la clé primaire de la table. Ceci est auto-incrémenté pour chaque commande que vous recevez dans votre boutique. Il commence généralement à partir de 1 et monte.increment id
= un numéro "convivial" généré avant la passation de la commande. Il doit être unique et utilisé par les méthodes de paiement en ligne comme référence (mais pas seulement).L'ID d'incrément par défaut ressemble à ceci.
Le nombre de zéros est variable. Il est ajouté à l'aide de
str_pad
sorte que la longueur de l'ID d'incrémentation sans l'ID de magasin soit8
.la source
eav_entity_store
. Mais pour la première commande, il n'y a aucun enregistrement dans ce tableau. Donc, un est créé. Lorsqu'il est créé, l'ID de magasin est stocké sousincrement_prefix
. Voyez comment cela fonctionne dans la méthodeMage_Eav_Model_Entity_Type::fetchNewIncrementId
. A partir de la ligne:if (!$entityStoreConfig->getId()) {
.Une commande client contient deux valeurs, entity_id (Order Id) et increment_id (Order Increment Id). L'entité_id est la clé primaire de la table des commandes. Cela signifie que vous l'utilisez pour charger l'entité de commande réelle. Voir ci-dessous
Et se débrouiller
$order->getId();
ou$order->getEntityId();
L'incrément_id est normalement un numéro plus convivial qui est souvent spécifique à un site Web / magasin, c.-à-d. 20001201 le 2 en face signifie souvent que c'est une commande de votre deuxième magasin / site Web (je ne me souviens pas lequel). Ceci est souvent appelé l'identifiant de commande réel. Vous pouvez charger une entité de commande à l'aide de cet increment_id
Et se débrouiller
la source
La
order_id
, qui, je crois, est la même queentity_id
, est la clé primaire de la table sales_order utilisée pour joindre toutes les tables eav ensemble. Il est utilisé en interne dans magento.order_increment_id
est utilisé pour afficher au clientla source