Deprecated feature

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

Diagramme

Légende

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 :
notify_OrderReceived_EMailSender_subject=We have received your order
notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
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_OrderReceived_EMailSender_recipient=john@ibm.com,victor@ibm.com
    
  • notify_EMailSender_subject=Order notification
    notify_EMailSender_recipient=john@ibm.com,victor@ibm.com
  • notify_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 :
  1. Activez la messagerie sortante.
  2. 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=3333

Ces 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

Si l'updateChannelId de l'indicateur est défini :
  • 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")

Si Unified Business Flow est activé :
  • 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
Sinon :
  • 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.