URL OrderProcess
Soumet une commande pour traitement. La commande doit être verrouillée par l'instruction OrderPrepare.
URL
OrderProcess
Commande de contrôleur
com.ibm.commerce.order.commands.OrderProcessCmd
Classe d'implémentation
com.ibm.commerce.order.commands.OrderProcessCmdImpl
Commandes appelées


Structure de l'adresse URL
- http://nom_hôte/chemin/
- Nom entièrement qualifié de votre Transaction server et du chemin de configuration.
Valeurs des paramètres
- forUser
- Indique l'ID de connexion de l'utilisateur pour lequel est exécutée l'instruction. Seuls les utilisateurs disposant des droits permettant de traiter des commandes peuvent spécifier ce paramètre.
- forUserId
- Identique à forUser, mais identifie l'utilisateur par son ID interne, répertorié dans la table USERS.
- langId
- Définit ou redéfinit la langue préférée pour la session ; les langues prises en charge dans le magasin sont répertoriées dans la table STORELANG.
- storeId
- Indique le numéro de référence du magasin avec lequel la commande doit être passée. Cette valeur est ignorée à moins qu'une erreur ne se produise avant que la commande ne soit résolue. Elle est utilisée uniquement pour appeler le gestionnaire d'exception du magasin correct.
- orderId
- Obligatoire : Indique le numéro de référence de la commande à traiter. Ce paramètre peut être utilisé plusieurs fois.
- externalUserId
- Indique un ID d'utilisateur à envoyer avec la requête de transfert de commande.
- externalPassword
- Spécifie un mot de passe pour l'ID utilisateur spécifié par le paramètre externalUserId.
- transferMode
- Spécifie le mode de transfert vers un système externe. Une valeur de 0 transfère la commande sans informations de paiement (transfert de panier) ; une valeur de 1 transfère la commande avec des informations de paiement (transfert de bon de commande). La valeur par défaut est 0.
- billtoAddressId
- Spécifie le numéro de référence de l'adresse de facturation.
- field1, field2 et field3
- Spécifiez des champs personnalisables.
- notify_[msgtype]_transportname_attributename
- Spécifie les attributs de configuration qui s'appliquent aux notifications de commande pour un type de message spécifique et le transport de messages. Incluez les variables suivantes pour définir ce paramètre :
- msgtype
- Facultatif. Si vous n'incluez pas de valeur pour cette variable, l'attribut de configuration s'applique à tous les types de messages. Si vous spécifiez une valeur msgtype pour un attribut, tel que "subject", spécifiez la même valeur msgtype pour tous les attributs utilisés dans la demande de notification. Les valeurs de cette variable sont stockées dans la colonne NAME de la table MSGTYPES.
- transportname
- Les valeurs de cette variable sont stockées dans la colonne NAME de la table TRANSPORT.
- attributename
- Les valeurs de cette variable peuvent être l'une des suivantes :
- recipient
- CC
- BCC
- sender
- subject
- replyTo
- contentType
Voici des exemples de paramètres de notification définis :- L'exemple suivant envoie la notification par e-mail "commande reçue" pour les commandes traitées par cette instruction à deux adresses e-mail, john@ibm.com et victor@ibm.com :
notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com - Cet exemple envoie tous les types de notifications par e-mail de commande à une seule adresse e-mail : jack@ibm.com:
notify_EMailSender_recipient=jack@ibm.com
L'exemple suivant montre un ensemble de paramètres non valides car les valeurs msgtype sont différentes entre les attributs utilisés dans la notification de requête :
Les exemples suivants montrent des ensembles de paramètres valides. Chaque ensemble comprend des paramètres qui ont la même valeur msgtype pour les attributs de la notification de requête :notify_OrderReceived_EMailSender_subject=We have received your order notify_EMailSender_recipient=john@ibm.com,victor@ibm.comnotify_OrderReceived_EMailSender_subject=We have received your order notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.comnotify_EMailSender_subject=Order notification notify_EMailSender_recipient=john@ibm.com,victor@ibm.comnotify_OrderReceived_EMailSender_subject=We have received your order notify_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
Remarque : Si vous souhaitez envoyer une notification par e-mail à un client invité, vous devez capturer l'adresse e-mail du client invité. - notifyMerchant
- Indique si le magasin est averti lorsque le traitement de la commande est terminé.
- notifyShopper
- Indique si le client est averti lorsque le traitement de la commande est terminé. Les notifications par e-mail ne sont pas envoyées en cas d'échec de PrimePaymentCmd. Une valeur de 1 spécifie que le client est averti ; une valeur de 0 spécifie que le client n'est pas averti.
- quoteExpiryPolicy
- Définit le comportement de la commande si le total de la commande expire ou si le centre de distribution d'un article de commande change pendant l'allocation des stocks. Le total de la commande expire si l'heure actuelle est plus avancée ou égale au dernier horodatage de mise à jour de la commande plus le nombre de secondes spécifiées dans la colonne QUOTEGOODFOR de la table MAGASIN. Ce paramètre peut avoir trois valeurs :
- alwaysProceed
- Procédez toujours au traitement de la commande après que le total de la commande est recalculé.
- stopOnBiggerTotal
- Procédez au traitement de la commande si le total de la commande recalculé est inchangé ou inférieur au total de la commande précédente. Sinon, redirigez vers une URL spécifiée par quoteExpiredUrl.
- neverProceed
- Redirigez toujours vers l'URL spécifiée par le paramètre quoteExpiredUrl.
- quoteExpiredURL
- Indique l'URL vers laquelle rediriger si le total de la commande a expiré conformément à la stratégie d'expiration spécifiée par le paramètre quoteExpiryPolicy.
- notifyOrderSubmitted
- Indique si le client est averti lorsque la commande est bien soumise pour traitement. Une valeur de 1 spécifie que le client est averti ; une valeur de 0 spécifie que le client n'est pas averti. La valeur par défaut est 0.
- availabilityChangeURL
- Indique l'URL vers laquelle rediriger lorsque le temps de disponibilité estimé plus le décalage d'expédition pour tout article de commande se déplace dans l'avenir (à la suite de l'attribution ou de la commande en amont du stock) par plus que l'intervalle de temps spécifié par le paramètre maxAvailabilityChange. Ce paramètre est ignoré si l'allocation de stock ATP n'est pas activée.
- maxAvailabilityChange
- Indique l'intervalle de temps, en secondes, mentionné dans la description du paramètre availabilityChangeURL. La valeur par défaut est de 3600 (1 heure). Ce paramètre est ignoré si le paramètre availabilityChangeURL n'est pas spécifié ou si l'allocation de stock ATP n'est pas activée.
- noInventoryURL
- Indique l'URL vers laquelle rediriger si l'un des articles de la commande ne peut pas être attribué ou commandé en amont. Ce paramètre est ignoré si l'allocation de stock ATP n'est pas activée.
- tcId
- Spécifie l'identificateur d'un objet de modalités (reportez-vous à la table TERMCOND). Si ce paramètre est spécifié et s'il identifie une modalité PaymentTC, et si cette modalité PaymentTC spécifie un memberId et un alias d'adresse (reportez-vous au mappage PaymentTC), alors l'ID de membre et l'alias d'adresse sont utilisés pour déterminer l'adresse de facturation, auquel cas le paramètre billToAddressId est ignoré. Notes about order notification : Si vous devez configurer la notification de commande :
- Activez la messagerie sortante.
- Créez des modèles pour composer des messages de notification de commande.
- quotationSubmission
- Contrôle si les valeurs d'attribut relType pour les objets "selection" OrderQuotationRel qui identifient la commande traitée avec leur attribut childId doivent être remplacés par "submission". Une valeur de 0 ne modifie pas les attributs relType des objets OrderQuotationRel dans la liste pour indiquer "submission". Une valeur de 1 modifie les attributs relType pour indiquer "submission". La valeur par défaut est 0.
- reduceParentQuantities
- Contrôle si les quantités d'articles de commande dans la commande de sélection mère sont réduites par les quantités d'articles de commande de la commande en cours de traitement. Une valeur de 0 ne réduit pas les quantités mères ; une valeur de 1 réduit les quantités mères. La valeur par défaut est 0.
La commande mère n'est mise à jour que lorsque l'attribut de statut est P ou E.
Seuls les articles de commande qui ont les mêmes valeurs d'attribut CatalogEntryId, SpecifiedItemId et correlationGroup que les articles de la commande sont mis à jour.
- continue
- Contrôle si le traitement des commandes se poursuit jusqu'à la commande suivante lorsqu'il y a une défaillance dans le traitement de l'une des commandes. Une valeur de 0 spécifie que le processus ne doit pas se poursuivre ; une valeur de 1 spécifie que le processus doit se poursuivre. La valeur par défaut est 0.
- isPIAddNeeded
- Si non transmis, la valeur par défaut est true. Si la valeur est true, PIAdd est appelé pour ajouter une instruction de paiement. Dans le cas contraire, aucune instruction de paiement n'est ajoutée. Si isPIAddNeeded n'est pas transmis, ou si isPIAddNeeded=Y, policyId est requis.
- payMethodId
- Le sens du paramètre payMethodId a changé de la version 5.x à la version 6.x. Les anciennes versions utilisaient payMethodId pour définir l'ID de mode de paiement pour ajouter une instruction de paiement. Cela est obsolète depuis plus de 2 versions, et a été supprimé de la version 6. Maintenant, payMethodId signifie l'ID de mode de paiement de l'instruction de paiement à ajouter. Il correspond à la colonne POLICYNAME de l'enregistrement dans la table POLICY utilisée par cette instruction de paiement.
- policyId
- Définit l'ID de la stratégie de paiement. S'il n'est pas défini, utilisez l'ID de stratégie par défaut. Il est utilisé uniquement pour le mode compatible.
- valueFromProfileOrder
- Si ce paramètre n'est pas transmis, la valeur est "N"' Ce paramètre indique que si isPIAddNeeded est Y ou non transmis, les informations de paiement du profil sont interrogées et utilisées dans les données du protocole de paiement. Ceci est utilisé dans le cadre du paiement rapide.
- billing_address_id
- Si isPIAddNeeded a la valeur true, définit l'Id d'adresse de facturation de l'instruction de paiement. Si ce paramètre n'est pas défini, utilise l'adresse de facturation de la commande.
- PONumber_i
- Définit le numéro de bon de commande de cette commande pour le groupe i. Si le purchaseorder_id est spécifié, cette valeur est remplacée.
- purchaseorder_id
- Définit le numéro de bon de commande de cette commande pour le groupe i.
- paymentInstructionId
- Utilisez ce paramètre pour transmettre des informations de paiement sensibles pour les instructions de paiement.
Par exemple, un client ajoute 2 instructions de paiement (10001 et 10002). Le client entre les informations de paiement pour une troisième instruction de paiement. Le client clique sur le bouton de soumission de la commande et est invité à entrer les informations de vérification de carte de crédit pour les trois instructions de paiement. Ensuite, la commande est soumise et l'instruction OrderProcess est appelée. Dans cet exemple, les paramètres pertinents sont les suivants :
paymentInstructionId_1=10001&paymentInstructionId_2=10002&pay_data_cc_cvc_1=1111&pay_data_cc_cvc_2=2222&pay_data_cc_cvc_0=3333Ces informations sont transmises au plug-in de paiement correspondant en tant que données étendues pour l'instruction de paiement. Ces données ne sont pas persistantes.
Pour utiliser le paramètre paymentInstructionId, vous devez configurer le plug-in de paiement pour utiliser le traitement synchrone des événements.
Exemple 1
La commande suivante traite le passage d'une commande dont le numéro de référence est 3.
http://myhostname/webapp/wcs/stores/servlet/OrderProcess?orderId=3
Comportement
Appelez OrderCommentRecordContrlCmd pour traiter tous les commentaires de commande du RSC
- Mettez à jour l'ID canal de la commande
Appelez PIAddCmd pour ajouter des instructions de paiement si le montant restant est supérieur à zéro et si isPIAddNeeded = Y
Appelez ValidatePaymentMethodCmd pour valider les IP existants pour la commande en cours (non lié à "si l'ID updateChannelId de l'indicateur est défini")
- Appelez BusinessFlowUrlEventCmd (instruction UBF) pour traiter la commande dans Unified Business Flow :
- Initialisez BusinessFlowEvent
- Dans BusinessFlowEventListener
- Exécutez OrderProcessPreApprovalCmd, qui appelle PreProcessOrderCmd
- Exécutez OrderProcessCheckApprovalCmd pour vérifier si l'approbation est requise
- Exécutez OrderProcessPostApprovalCmd, qui appelle ProcessOrderCmd
- Appelez ProcessOrderCmd directement pour traiter la commande sans Unified Business Flow
Appelez RaiseOrderEventCmd pour émettre ORDER_SUBMISSION_EVENT (non lié à "Sinon")
Conditions d'exception
- Si la commande n'est pas verrouillée, l'instruction émet l'exception ECApplicationException spécifiant l'instruction OrderUnlockErrorView.
- Si le client a saisi des données incorrectes, l'instruction lance l'exception ECApplicationException spécifiant l'instruction de visualisation d'erreur BadOrderDataErrorView pour en informer le client.
- Si la commande n'est pas en attente, la commande émet l'exception ECApplicationException spécifiant l'instruction OrderNoneErrorView.
- Si l'un des contrats utilisés par la commande n'est pas valide, la commande émet l'exception ECApplicationException.