atg.commerce.order
Class FullShoppingCartFormHandler

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.droplet.EmptyFormHandler
              extended by atg.droplet.GenericFormHandler
                  extended by atg.commerce.order.OrderModifierFormHandler
                      extended by atg.commerce.order.ShoppingCartFormHandler
                          extended by atg.commerce.order.FullShoppingCartFormHandler
All Implemented Interfaces:
atg.commerce.util.PipelineErrorHandler, DropletFormHandler, atg.naming.AbsoluteNameable, NameContextBindingListener, NameContextElement, atg.naming.NameContextParentable, NameResolver, AdminableService, atg.nucleus.Configured, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, java.util.EventListener
Direct Known Subclasses:
SoftGoodFormHandler

public class FullShoppingCartFormHandler
extends ShoppingCartFormHandler

The FullShoppingCartFormHandler extends the functionality of the @see ShoppingCartFormHandler by giving the additional functionality of handling multiple payment method (GiftCertificates and Credit Cards), multiple location ship to addresses, express checkout and adding an item to a person's gift list. Added handle methods are:

The FullShoppingCartFormHandler follows the same pattern as the ShoppingCartFormHandler where each handleXXX method provides a hook into additional functionality via preXXX and postXXX method.

This FormHandler provides an example of how this can be used. The @see #preMoveToConfirmation method provides the additional functionality of interacting with the user's saved credit cards and also handling the possibility of multiple payment methods. First, a call to the super preMoveToConfirmation is called, then the method provides the additional functionality supplied by this FormHandler.

See Also:
ShoppingCartFormHandler, GenericFormHandler

Field Summary
protected static java.lang.String BILLING_ADDR_PROP_NAME
           
static java.lang.String CLASS_VERSION
          Class version String
protected static java.lang.String CONTACT_INFO_ITEM_NAME
           
protected static java.lang.String[] CREDIT_CARD_PROPERTIES
           
protected static java.lang.String DEFAULT_CREDIT_CARD
           
protected static java.lang.String ERROR_MISSING_BILLING_ADDRESS
           
protected static java.lang.String ERROR_MISSING_CREDIT_CARD
           
protected static java.lang.String[] GIFT_CERTIFICATE_PROPERTIES
           
protected static java.lang.String MSG_ADDRESS_ALREADY_EXISTS
           
protected static java.lang.String MSG_ERROR_ADDING_ADDRESS
           
protected static java.lang.String MSG_ERROR_MOVING_ITEM_TO_NEW_ADDRESS
           
protected static java.lang.String MSG_ERROR_UNABLE_TO_ADD_CC
           
protected static java.lang.String MSG_NO_CREDIT_CARD_NUMBER
           
protected static java.lang.String MSG_NO_NEW_ADDRESS_ENTERED
           
protected static java.lang.String MSG_NO_NICKNAME
           
protected static java.lang.String MSG_UNABLE_TO_COPY_CREDIT_CARD
           
protected static java.lang.String NEW
           
protected static java.lang.String NO_CREDIT_CARD
           
protected static java.lang.String REDUNDANT_CREDIT_CARD
           
protected static java.lang.String SECONDARY_ADDRESS_PROPERTY_NAME
           
protected static java.lang.String UNEQUAL_GC_SIZE
           
protected static java.lang.String UNSUPPORTED_PAYMENTGROUP
           
 
Fields inherited from class atg.commerce.order.ShoppingCartFormHandler
CC_PAYMENT_GROUP_TYPE_NAME, GC_PAYMENT_GROUP_TYPE_NAME, MSG_DUPLICATE_ORDER_DESCRIPTION, MSG_ERROR_ADDING_ITEM, MSG_ERROR_EDIT_ITEM, MSG_ERROR_MOVE_TO_CONFIRMATION, MSG_ERROR_MOVE_TO_ORDER_COMMIT, MSG_ERROR_MOVE_TO_PAYMENT, MSG_ERROR_MOVE_TO_PURCHASE_INFO, MSG_ERROR_REMOVING_ITEM, MSG_ERROR_REPRICE_ORDER, MSG_ERROR_UPDATE_ORDER, MSG_INVALID_QUANTITY, MSG_ORDER_ALREADY_SUBMITTED, MSG_UNABLE_TO_COPY_ADDRESS, MSG_UNSUPPORTED_RELATIONSHIP, NO_GIFTCERTIFICATE_FOUND
 
Fields inherited from class atg.commerce.order.OrderModifierFormHandler
ERROR_MISSING_LOCK_MANAGER, ERROR_MISSING_LOCK_PROFILE, ERROR_MISSING_TRANSACTION_MANAGER, MSG_CONCURRENT_UPDATE_ATTEMPT, MSG_ERROR_ADDING_TO_ORDER, MSG_ERROR_REMOVING_FROM_ORDER, MSG_ERROR_REMOVING_RROM_ORDER, MSG_NO_ITEM_FOUND, MSG_NO_ITEMS_TO_ADD, MSG_NO_ORDER_TO_MODIFY, MSG_NO_SKU_WITH_ID, MSG_QUANTITY_LESSTHAN_OR_EQUALTO_ZERO, PARAM_TRANSACTION_CREATED, PARAM_VALUE_TRUE
 
Fields inherited from class atg.droplet.GenericFormHandler
PARAM_DEFER_FORWARD_OR_REDIRECT, PARAM_USE_FORWARDS
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
FullShoppingCartFormHandler()
          Empty Constructor
 
Method Summary
protected  void addNewShippingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          A shipping address exists in the getShippingGroup(), but not in the Profile so it needs to be propogated there.
protected  void copyAddressesToProfile(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Copy all the addresses that currently exist in the Order's list of Shipping Groups to the Profile's list of secondary addresses.
protected  void copyCreditCard(CreditCard pFromCreditCard, RepositoryItem pToCreditCard)
          Deprecated. this method has been moved to CommerceProfileTools
protected  void copyCreditCard(RepositoryItem pFromCreditCard, CreditCard pToCreditCard)
          Deprecated. this method has been moved to CommerceProfileTools
protected  void copyCreditCardToPaymentGroup(java.lang.String pNickname, CreditCard paymentGroup, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Deprecated. this method has been moved to CommerceProfileTools
protected  void copyCreditCardToProfile(CreditCard pCreditCard)
          Deprecated. this method has been moved to CommerceProfileTools
protected  void copyExistingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Copies the address named by the property shipToAddressName to the primary shipping group in the order.
protected  void copyProfileAddressToShippingGroupAddress(java.lang.String pProfileAddressName, ShippingGroup pShippingGroup, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          The address as specified by the pProfileAddressName is copied from the user's profile to the shippingGroup specified by pShippingGroup The profile address is obtained by using the @see #commerceProfileTools.
protected  void copyShallowCreditCardProperties(java.lang.Object pFromCreditCard, java.lang.Object pToCreditCard)
          Deprecated. this method has been moved to CommerceProfileTools
protected  java.util.List createGiftCertificatePaymentGroups(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method will parse a string and attempt to create giftCertificatePaymentGroups out of the tokens of the string.
 java.lang.String getAddGiftItemToOrderErrorURL()
          Returns property AddGiftItemToOrderErrorURL
 java.lang.String getAddGiftItemToOrderSuccessURL()
          Returns property AddGiftItemToOrderSuccessURL
 java.lang.String[] getAddressesToCopy()
          Get the array of addresses to copy.
 ClaimableManager getClaimableManager()
          Return the ClaimableManager property.
 ClaimableTools getClaimableTools()
          Return the ClaimableTools property.
 CommerceProfileTools getCommerceProfileTools()
          Return the CommerceProfileTools property.
 java.lang.String getCreateAddressErrorURL()
          Returns property CreateAddressErrorURL
 java.lang.String getCreateAddressSuccessURL()
          Returns property CreateAddressSuccessURL
 java.lang.String[] getCreditCardProperties()
          Return the creditCardProperties property.
 java.lang.String getExpressCheckoutErrorURL()
          The URL to go to if Express Checkout fails
 java.lang.String getExpressCheckoutSuccessURL()
          The URL to go to if Express Checkout is successful
 java.lang.String[] getGiftCertificateProperties()
          Return the giftCertificateProperties property.
 java.lang.String getMoveToNewShippingAddressErrorURL()
          Returns property MoveToNewShippingAddressErrorURL
 java.lang.String getMoveToNewShippingAddressSuccessURL()
          Returns property MoveToNewShippingAddressSuccessURL
 java.lang.String getNewShippingAddressName()
          Returns property NewShippingAddressName
 java.lang.String getOriginalShippingAddressName()
          Returns property OriginalShippingAddressName
 java.util.Collection getProfileAddressNames()
          Return the profileAddressNames property.
 CommercePropertyManager getPropertyManager()
          Return the PropertyManager property.
 int getQuantityToMove()
          Returns property QuantityToMove
 java.lang.String getSelectedCreditCardName()
          Return the SelectedCreditCardName property.
 java.lang.String getShipToAddressName()
          Get the name of the address to ship the goods to
 java.lang.String getShipToDoneErrorURL()
          Returns property ShipToDoneErrorURL
 java.lang.String getShipToDoneSuccessURL()
          Returns property ShipToDoneSuccessURL
 java.lang.String getShipToMultipleDoneErrorURL()
          Returns property ShipToMultipleDoneErrorURL
 java.lang.String getShipToMultipleDoneSuccessURL()
          Returns property ShipToMultipleDoneSuccessURL
 java.lang.String getShipToMultipleErrorURL()
          Returns property ShipToMultipleErrorURL
 java.lang.String getShipToMultipleSuccessURL()
          Returns property ShipToMultipleSuccessURL
 java.lang.String getValidateShippingGroupsChainId()
          Return the validateShippingGroupsChainId property.
 boolean handleAddGiftItemToOrder(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          The same as @see ShoppingCartFormHandler#handleAddItemToOrder with the added affect of adding handling to the shipping group
 boolean handleCreateAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Handles creating a new address object in the user's secondary address property.
 boolean handleExpressCheckout(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
           
 boolean handleMoveToNewShippingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method handles the moving of a commerce item from one shipping group to another in a user's order.
 boolean handleShipToDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after the user has finished inputting their shipping information.
 boolean handleShipToMultiple(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called when the user selects to ship their items to multiple locations.
 boolean handleShipToMultipleDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after a user is done specifying the addresses that they want to move their commerce items to.
protected  boolean isCreditCardEmpty(CreditCard pCreditCard)
          Deprecated. this method has been moved to CommerceProfileTools
protected  boolean isGiftCertificateEmpty(GiftCertificate pGiftCertificate)
          Checks to see if a GiftCertificate object is empty.
protected  boolean isNewCreditCards()
          Check to see if there have been any new credit payment groups added to the List of creditCardPaymentGroups.
protected  boolean isNewGiftCertificates()
          Check to see if there have been any new gift certificate payment groups added to the List of giftCertificatePaymentGroups.
protected  boolean isOrderRelationshipExists(Order pOrder, java.lang.String pPaymentGroupId)
          Determines if a relationship exists between a specified paymentGroup and the specified order object.
protected  boolean isPaymentGroupEmpty(java.lang.Object pPaymentGroup, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method knows about two types of payment methods: CreditCards and GiftCertificates.
protected  boolean isSingletonRelationship(ShippingGroup pShippingGroup, CommerceItem pCommerceItem, Order order, int pQuantityToMove)
          This method will determine if the relationship between a given shippingGroup and commerceItem is singleton.
protected  void mergePaymentGroupsToOrder(java.util.List pGiftCertificateAmounts, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Check two lists of payment groups: giftCertificatePaymentGroups and creditCardPaymentGroups.
protected  void moveCommerceItemsToNewShippingGroup(java.lang.String pFromAddress, java.lang.String pToAddress, java.lang.String pCommerceItemIdToMove, int pQuantityToMove, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method moves commerce items from one shipping group to another.
 void postAddGiftItemToOrder(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
           
 void postCreateAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called right after any processing is done by the handleCreateAddress method.
 void postExpressCheckout(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
           
 void postMoveToConfirmation(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method will check to see if the user entered a new credit card and additionally see if there were any errors.
 void postMoveToNewShippingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after any processing is done by the handleMoveToNewShippingAddress method.
 void postShipToDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after any processing is done by the handleShipToDone method.
 void postShipToMultiple(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after processing has been done by the handleShipToMultiple method.
 void postShipToMultipleDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called after processing by the handleShipToMultipleDone method.
 void preAddGiftItemToOrder(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
           
 void preCreateAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called right before any processing is done by the handleCreateAddress method.
 void preExpressCheckout(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
           
 void preMoveToConfirmation(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Provide ability to interact with credit cards in user's profile and to handle multiple forms of payment.
 void preMoveToNewShippingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called before any processing is done by the handleMoveToNewShippingAddress method.
 void preShipToDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called before any processing is done by the handleShipToDone method.
 void preShipToMultiple(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called before any processing has been done by the handleShipToMultiple method.
 void preShipToMultipleDone(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called before any processing is done by the handleShipToMultipleDone method.
protected  void removeAddedNickNameEntries()
           
protected  void removeCreditCardPaymentGroupsFromOrder()
          This function removes all the credit card paymentgroups from the order.
protected  void removePaymentGroupsFromOrder(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Removes all payment groups from the order.
protected  boolean runProcessValidateShippingGroups(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters)
          Run the pipeline which should be executed when the handleMoveToPurchaseInfo method is invoked
 void setAddGiftItemToOrderErrorURL(java.lang.String pAddGiftItemToOrderErrorURL)
          Sets property AddGiftItemToOrderErrorURL
 void setAddGiftItemToOrderSuccessURL(java.lang.String pAddGiftItemToOrderSuccessURL)
          Sets property AddGiftItemToOrderSuccessURL
 void setAddressesToCopy(java.lang.String[] pAddressesToCopy)
          Set the addresses that need to be copied from the ShippingGroup objects to the Profile "secondary addresses" map.
 void setClaimableManager(ClaimableManager pClaimableManager)
          Set the ClaimableManager property.
 void setClaimableTools(ClaimableTools pClaimableTools)
          Set the ClaimableTools property.
 void setCommerceProfileTools(CommerceProfileTools pCommerceProfileTools)
          Set the CommerceProfileTools property.
 void setConfiguration(ShoppingCartModifierConfiguration pConfiguration)
          Sets property Configuration, and in the process configures the following properties: ClaimableManager ClaimableTools PropertyManager CommerceProfileTools Plus the properties in the super-class.
 void setCreateAddressErrorURL(java.lang.String pCreateAddressErrorURL)
          Sets property CreateAddressErrorURL.
 void setCreateAddressSuccessURL(java.lang.String pCreateAddressSuccessURL)
          Sets property CreateAddressSuccessURL.
 void setCreditCardProperties(java.lang.String[] pCreditCardProperties)
          Set the creditCardProperties property.
 void setExpressCheckoutErrorURL(java.lang.String pURL)
           
 void setExpressCheckoutSuccessURL(java.lang.String pURL)
           
 void setGiftCertificateProperties(java.lang.String[] pGiftCertificateProperties)
          Set the giftCertificateProperties property.
 void setMoveToNewShippingAddressErrorURL(java.lang.String pMoveToNewShippingAddressErrorURL)
          Sets property MoveToNewShippingAddressErrorURL.
 void setMoveToNewShippingAddressSuccessURL(java.lang.String pMoveToNewShippingAddressSuccessURL)
          Sets property MoveToNewShippingAddressSuccessURL.
 void setNewShippingAddressName(java.lang.String pNewShippingAddressName)
          Sets property which contains the Shipping Address name where Commerce Items should be shipped to.
 void setOriginalShippingAddressName(java.lang.String pOriginalShippingAddressName)
          Sets property OriginalShippingAddressName.
protected  void setPaymentMethodsInOrder(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Method that deals with setting the payment methods that are to be used in an order.
 void setPropertyManager(CommercePropertyManager pPropertyManager)
          Set the PropertyManager property.
 void setQuantityToMove(int pQuantityToMove)
          Sets property QuantityToMove.
 void setSelectedCreditCardName(java.lang.String pSelectedCreditCardName)
          Set the SelectedCreditCardName property.
 void setShipToAddressName(java.lang.String pShipToAddressName)
          Set the nickname of the address from the secondary address map that will be used to ship the goods to.
 void setShipToDoneErrorURL(java.lang.String pShipToDoneErrorURL)
          Sets property ShipToDoneErrorURL
 void setShipToDoneSuccessURL(java.lang.String pShipToDoneSuccessURL)
          Sets property ShipToDoneSuccessURL.
 void setShipToMultipleDoneErrorURL(java.lang.String pShipToMultipleDoneErrorURL)
          Sets property ShipToMultipleDoneErrorURL.
 void setShipToMultipleDoneSuccessURL(java.lang.String pShipToMultipleDoneSuccessURL)
          Sets property ShipToMultipleDoneSuccessURL.
 void setShipToMultipleErrorURL(java.lang.String pShipToMultipleErrorURL)
          Sets property ShipToMultipleErrorURL.
 void setShipToMultipleSuccessURL(java.lang.String pShipToMultipleSuccessURL)
          Sets property ShipToMultipleSuccessURL.
 void setValidateShippingGroupsChainId(java.lang.String pValidateShippingGroupsChainId)
          Set the validateShippingGroupsChainId property.
 void updateShippingAddress(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          This method does two things: checks to see if a new address has been input by the user and else copies an existing profile address to the shippingGroup.
 
Methods inherited from class atg.commerce.order.ShoppingCartFormHandler
addConfigurableItemToOrder, addItemToOrder, addMoreParams, checkDuplicateDescription, checkFormRedirect, copyBillingAddrToShippingAddr, deleteItems, deleteItemsByRelationshipId, doStartService, getAddItemToOrderChainId, getAddItemToOrderErrorURL, getAddItemToOrderPricingOp, getAddItemToOrderSuccessURL, getCatalogKey, getCommerceItemIdToEdit, getCommerceItemToEdit, getConfigurableItemTypeName, getConfiguration, getCopyBillingAddrToShippingAddr, getCreditCardPaymentGroups, getCreditCardPaymentTypeName, getDeletedSkus, getDeleteItemsFromOrderPricingOp, getDescription, getEditItem, getEditItemErrorURL, getEditItemSuccessURL, getGiftCertificateNumbers, getGiftCertificatePaymentGroups, getGiftCertificatePaymentTypeName, getGiftlistId, getGiftlistItemId, getGiftlistManager, getItemAddedToOrderEventType, getItemRemovedFromOrderEventType, getLastOrder, getModifyOrderPricingOp, getMoveToConfirmationChainId, getMoveToConfirmationErrorURL, getMoveToConfirmationSuccessURL, getMoveToOrderCommitErrorURL, getMoveToOrderCommitSuccessURL, getMoveToPurchaseInfoByRelIdErrorURL, getMoveToPurchaseInfoByRelIdSuccessURL, getMoveToPurchaseInfoChainId, getMoveToPurchaseInfoErrorURL, getMoveToPurchaseInfoSuccessURL, getOrder, getOrderId, getOrderSavedEventType, getPaymentGroup, getRemovalCatalogRefIds, getRemovalCommerceIds, getRemovalRelationshipIds, getRemoveAndAddItemToOrderErrorURL, getRemoveAndAddItemToOrderSuccessURL, getRemoveItemFromOrderByRelationshipIdErrorURL, getRemoveItemFromOrderByRelationshipIdSuccessURL, getRemoveItemFromOrderErrorURL, getRemoveItemFromOrderSuccessURL, getRepriceOrder, getRepriceOrderChainId, getRepriceOrderErrorURL, getRepriceOrderSuccessURL, getSaveOrderErrorURL, getSaveOrderSuccessURL, getSessionExpirationURL, getSetOrderByRelationshipIdErrorURL, getSetOrderByRelationshipIdSuccessURL, getSetOrderChainId, getSetOrderErrorURL, getSetOrderSuccessURL, getShippingGroup, getShippingGroupCommerceItemRelationships, getShoppingCart, getUserPricingModels, handleAddConfigurableItemToOrder, handleAddItemToOrder, handleCheckForExpiredSession, handleEditItem, handleMoveToConfirmation, handleMoveToOrderCommit, handleMoveToPurchaseInfo, handleMoveToPurchaseInfoByRelId, handleRemoveAndAddItemToOrder, handleRemoveItemFromOrder, handleRemoveItemFromOrderByRelationshipId, handleRepriceOrder, handleSaveOrder, handleSetOrder, handleSetOrderByRelationshipId, haveId, isCheckForChangedQuantity, isFormSubmission, isFormSubmition, modifyOrder, modifyOrderByRelationshipId, postAddItemToOrder, postEditItem, postMoveToOrderCommit, postMoveToPurchaseInfo, postRemoveAndAddItemToOrder, postRemoveItemFromOrder, postRemoveItemFromOrderByRelationshipId, postRepriceOrder, postSaveOrder, postSetOrder, postSetOrderByRelationshipId, preAddItemToOrder, preEditItem, preMoveToOrderCommit, preMoveToPurchaseInfo, preRemoveAndAddItemToOrder, preRemoveItemFromOrder, preRemoveItemFromOrderByRelationshipId, preRepriceOrder, preSaveOrder, preSetOrder, preSetOrderByRelationshipId, runProcessAddItemToOrder, runProcessAddItemToOrder, runProcessMoveToConfirmation, runProcessMoveToPurchaseInfo, runProcessRepriceOrder, runProcessRepriceOrder, runProcessSendScenarioEvent, runProcessSendScenarioEvent, runProcessSetOrder, runRepricingProcess, saveOrder, setAddItemToOrderChainId, setAddItemToOrderErrorURL, setAddItemToOrderPricingOp, setAddItemToOrderSuccessURL, setCheckForChangedQuantity, setCommerceItemIdToEdit, setCommerceItemProperties, setConfigurableItemTypeName, setCopyBillingAddrToShippingAddr, setCreditCardPaymentGroups, setCreditCardPaymentTypeName, setDeletedSkus, setDeleteItemsFromOrderPricingOp, setDescription, setEditItem, setEditItemErrorURL, setEditItemSuccessURL, setGiftCertificateNumbers, setGiftCertificatePaymentGroups, setGiftCertificatePaymentTypeName, setGiftlistId, setGiftlistItemId, setGiftlistManager, setItemAddedToOrderEventType, setItemRemovedFromOrderEventType, setModifyOrderPricingOp, setMoveToConfirmationChainId, setMoveToConfirmationErrorURL, setMoveToConfirmationSuccessURL, setMoveToOrderCommitErrorURL, setMoveToOrderCommitSuccessURL, setMoveToPurchaseInfoByRelIdErrorURL, setMoveToPurchaseInfoByRelIdSuccessURL, setMoveToPurchaseInfoChainId, setMoveToPurchaseInfoErrorURL, setMoveToPurchaseInfoSuccessURL, setOrderId, setOrderSavedEventType, setPaymentGroup, setRemovalCatalogRefIds, setRemovalCommerceIds, setRemovalRelationshipIds, setRemoveAndAddItemToOrderErrorURL, setRemoveAndAddItemToOrderSuccessURL, setRemoveItemFromOrderByRelationshipIdErrorURL, setRemoveItemFromOrderByRelationshipIdSuccessURL, setRemoveItemFromOrderErrorURL, setRemoveItemFromOrderSuccessURL, setRepriceOrder, setRepriceOrderChainId, setRepriceOrderErrorURL, setRepriceOrderSuccessURL, setSaveOrderErrorURL, setSaveOrderSuccessURL, setSessionExpirationURL, setSetOrderByRelationshipIdErrorURL, setSetOrderByRelationshipIdSuccessURL, setSetOrderChainId, setSetOrderErrorURL, setSetOrderSuccessURL, setShippingGroup, setShoppingCart, setUserPricingModels
 
Methods inherited from class atg.commerce.order.OrderModifierFormHandler
acquireTransactionLock, addNewItemToOrder, afterSet, beforeSet, commitTransaction, createCommerceItem, defaultLocalLockManager, defaultUserProfile, ensureTransaction, findCommerceItem, formatUserMessage, formatUserMessage, formatUserMessage, formatUserMessage, generatePropertyPath, getAddress, getCatalogRefIds, getCatalogTools, getCreditCard, getCurrentTransaction, getDefaultLocale, getGeneralFailureURL, getGeneralSuccessURL, getGiftCertificate, getHardgoodShippingGroup, getLocalLockManager, getOrderManager, getPipelineManager, getProductId, getProfile, getQuantity, getQuantity, getResourceBundle, getResourceBundleName, getTransactionLockFactory, getTransactionManager, getUserLocale, handlePipelineError, isEnsureTransaction, isStringEmpty, isTransactionCreated, isTransactionMarkedAsRollBack, isUseLocksAroundTransactions, isUseRequestLocale, processException, processPipelineErrors, releaseTransactionLock, removeItemFromOrder, runProcess, runProcess, runProcess, setAddress, setCatalogRefIds, setCatalogTools, setCreditCard, setCurrentTransaction, setDefaultLocale, setEnsureTransaction, setGeneralFailureURL, setGeneralSuccessURL, setGiftCertificate, setHardgoodShippingGroup, setLocalLockManager, setOrder, setOrderManager, setPipelineManager, setProductId, setProfile, setQuantity, setTransactionCreated, setTransactionLockFactory, setTransactionManager, setTransactionToRollbackOnly, setUseLocksAroundTransactions, setUseRequestLocale, transactionLockName, unsetTransactionCreated
 
Methods inherited from class atg.droplet.GenericFormHandler
addFormException, addUncheckedFormException, createFormSubmissionMessage, getCancelURL, getCheckForValidSession, getFormError, getFormExceptions, getFormName, getMessagePort, getMessageSource, getMessageType, getPropertyExceptions, getSendMessages, getUncheckedFormExceptions, handleCancel, handleFormException, handleUncheckedFormException, hasUncheckedFormExceptions, isDeferForwardsAndRedirects, isRestorableForm, isUseForwards, isValidSession, redirectOrForward, resetFormExceptions, setCancelURL, setCheckForValidSession, setDeferForwardsAndRedirects, setFormName, setMessagePort, setMessageSource, setMessageType, setRestorableForm, setSendMessages, setUseForwards
 
Methods inherited from class atg.droplet.EmptyFormHandler
afterGet, beforeGet
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version String


MSG_ERROR_MOVING_ITEM_TO_NEW_ADDRESS

protected static final java.lang.String MSG_ERROR_MOVING_ITEM_TO_NEW_ADDRESS
See Also:
Constant Field Values

MSG_ADDRESS_ALREADY_EXISTS

protected static final java.lang.String MSG_ADDRESS_ALREADY_EXISTS
See Also:
Constant Field Values

MSG_ERROR_ADDING_ADDRESS

protected static final java.lang.String MSG_ERROR_ADDING_ADDRESS
See Also:
Constant Field Values

MSG_NO_NEW_ADDRESS_ENTERED

protected static final java.lang.String MSG_NO_NEW_ADDRESS_ENTERED
See Also:
Constant Field Values

MSG_ERROR_UNABLE_TO_ADD_CC

protected static final java.lang.String MSG_ERROR_UNABLE_TO_ADD_CC
See Also:
Constant Field Values

MSG_UNABLE_TO_COPY_CREDIT_CARD

protected static final java.lang.String MSG_UNABLE_TO_COPY_CREDIT_CARD
See Also:
Constant Field Values

MSG_NO_NICKNAME

protected static final java.lang.String MSG_NO_NICKNAME
See Also:
Constant Field Values

MSG_NO_CREDIT_CARD_NUMBER

protected static final java.lang.String MSG_NO_CREDIT_CARD_NUMBER
See Also:
Constant Field Values

SECONDARY_ADDRESS_PROPERTY_NAME

protected static final java.lang.String SECONDARY_ADDRESS_PROPERTY_NAME
See Also:
Constant Field Values

DEFAULT_CREDIT_CARD

protected static final java.lang.String DEFAULT_CREDIT_CARD
See Also:
Constant Field Values

CONTACT_INFO_ITEM_NAME

protected static final java.lang.String CONTACT_INFO_ITEM_NAME
See Also:
Constant Field Values

BILLING_ADDR_PROP_NAME

protected static final java.lang.String BILLING_ADDR_PROP_NAME
See Also:
Constant Field Values

NO_CREDIT_CARD

protected static final java.lang.String NO_CREDIT_CARD
See Also:
Constant Field Values

UNSUPPORTED_PAYMENTGROUP

protected static final java.lang.String UNSUPPORTED_PAYMENTGROUP
See Also:
Constant Field Values

UNEQUAL_GC_SIZE

protected static final java.lang.String UNEQUAL_GC_SIZE
See Also:
Constant Field Values

ERROR_MISSING_BILLING_ADDRESS

protected static final java.lang.String ERROR_MISSING_BILLING_ADDRESS
See Also:
Constant Field Values

ERROR_MISSING_CREDIT_CARD

protected static final java.lang.String ERROR_MISSING_CREDIT_CARD
See Also:
Constant Field Values

CREDIT_CARD_PROPERTIES

protected static final java.lang.String[] CREDIT_CARD_PROPERTIES

GIFT_CERTIFICATE_PROPERTIES

protected static final java.lang.String[] GIFT_CERTIFICATE_PROPERTIES

NEW

protected static final java.lang.String NEW
See Also:
Constant Field Values

REDUNDANT_CREDIT_CARD

protected static final java.lang.String REDUNDANT_CREDIT_CARD
See Also:
Constant Field Values
Constructor Detail

FullShoppingCartFormHandler

public FullShoppingCartFormHandler()
Empty Constructor

Method Detail

setConfiguration

public void setConfiguration(ShoppingCartModifierConfiguration pConfiguration)
Sets property Configuration, and in the process configures the following properties: Plus the properties in the super-class.

Overrides:
setConfiguration in class ShoppingCartFormHandler

setGiftCertificateProperties

public void setGiftCertificateProperties(java.lang.String[] pGiftCertificateProperties)
Set the giftCertificateProperties property.


getGiftCertificateProperties

public java.lang.String[] getGiftCertificateProperties()
Return the giftCertificateProperties property.


setCreditCardProperties

public void setCreditCardProperties(java.lang.String[] pCreditCardProperties)
Set the creditCardProperties property.


getCreditCardProperties

public java.lang.String[] getCreditCardProperties()
Return the creditCardProperties property.


setValidateShippingGroupsChainId

public void setValidateShippingGroupsChainId(java.lang.String pValidateShippingGroupsChainId)
Set the validateShippingGroupsChainId property.


getValidateShippingGroupsChainId

public java.lang.String getValidateShippingGroupsChainId()
Return the validateShippingGroupsChainId property.


setPropertyManager

public void setPropertyManager(CommercePropertyManager pPropertyManager)
Set the PropertyManager property.


getPropertyManager

public CommercePropertyManager getPropertyManager()
Return the PropertyManager property.


setCommerceProfileTools

public void setCommerceProfileTools(CommerceProfileTools pCommerceProfileTools)
Set the CommerceProfileTools property.


getCommerceProfileTools

public CommerceProfileTools getCommerceProfileTools()
Return the CommerceProfileTools property.


setClaimableManager

public void setClaimableManager(ClaimableManager pClaimableManager)
Set the ClaimableManager property.


getClaimableManager

public ClaimableManager getClaimableManager()
Return the ClaimableManager property.


setClaimableTools

public void setClaimableTools(ClaimableTools pClaimableTools)
Set the ClaimableTools property.


getClaimableTools

public ClaimableTools getClaimableTools()
Return the ClaimableTools property.


setAddressesToCopy

public void setAddressesToCopy(java.lang.String[] pAddressesToCopy)
Set the addresses that need to be copied from the ShippingGroup objects to the Profile "secondary addresses" map.

Parameters:
pAddressesToCopy - the names of the addresses to copy

getAddressesToCopy

public java.lang.String[] getAddressesToCopy()
Get the array of addresses to copy.

Returns:
the name of addresses to copy

setSelectedCreditCardName

public void setSelectedCreditCardName(java.lang.String pSelectedCreditCardName)
Set the SelectedCreditCardName property.


getSelectedCreditCardName

public java.lang.String getSelectedCreditCardName()
Return the SelectedCreditCardName property.


setNewShippingAddressName

public void setNewShippingAddressName(java.lang.String pNewShippingAddressName)
Sets property which contains the Shipping Address name where Commerce Items should be shipped to. Used when moving CommerceItems from one shipping group to another.


getNewShippingAddressName

public java.lang.String getNewShippingAddressName()
Returns property NewShippingAddressName


setOriginalShippingAddressName

public void setOriginalShippingAddressName(java.lang.String pOriginalShippingAddressName)
Sets property OriginalShippingAddressName. This property contains the original value for the Address name a Commerce Item was associated with. This value is used to determine if the user moved the Commerce Item to a new shipping address.


getOriginalShippingAddressName

public java.lang.String getOriginalShippingAddressName()
Returns property OriginalShippingAddressName


setQuantityToMove

public void setQuantityToMove(int pQuantityToMove)
Sets property QuantityToMove. This contains the quantity of Commerce Items the user wants to move from one shipping group to another.


getQuantityToMove

public int getQuantityToMove()
Returns property QuantityToMove


setShipToAddressName

public void setShipToAddressName(java.lang.String pShipToAddressName)
Set the nickname of the address from the secondary address map that will be used to ship the goods to. This would get set if a user wants to ship all of their items from one particular place

Parameters:
pShipToAddressName - location to ship goods to

getShipToAddressName

public java.lang.String getShipToAddressName()
Get the name of the address to ship the goods to

Returns:
the location to ship the goods to

getProfileAddressNames

public java.util.Collection getProfileAddressNames()
Return the profileAddressNames property.


setExpressCheckoutSuccessURL

public void setExpressCheckoutSuccessURL(java.lang.String pURL)

getExpressCheckoutSuccessURL

public java.lang.String getExpressCheckoutSuccessURL()
The URL to go to if Express Checkout is successful


setExpressCheckoutErrorURL

public void setExpressCheckoutErrorURL(java.lang.String pURL)

getExpressCheckoutErrorURL

public java.lang.String getExpressCheckoutErrorURL()
The URL to go to if Express Checkout fails


setCreateAddressSuccessURL

public void setCreateAddressSuccessURL(java.lang.String pCreateAddressSuccessURL)
Sets property CreateAddressSuccessURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if NO errors occur when the user pushes the CREATE ADDRESS button.


getCreateAddressSuccessURL

public java.lang.String getCreateAddressSuccessURL()
Returns property CreateAddressSuccessURL


setCreateAddressErrorURL

public void setCreateAddressErrorURL(java.lang.String pCreateAddressErrorURL)
Sets property CreateAddressErrorURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if NO errors occur when the user pushes the CREATE ADDRESS button.


getCreateAddressErrorURL

public java.lang.String getCreateAddressErrorURL()
Returns property CreateAddressErrorURL


setShipToDoneSuccessURL

public void setShipToDoneSuccessURL(java.lang.String pShipToDoneSuccessURL)
Sets property ShipToDoneSuccessURL.


getShipToDoneSuccessURL

public java.lang.String getShipToDoneSuccessURL()
Returns property ShipToDoneSuccessURL


setShipToDoneErrorURL

public void setShipToDoneErrorURL(java.lang.String pShipToDoneErrorURL)
Sets property ShipToDoneErrorURL


getShipToDoneErrorURL

public java.lang.String getShipToDoneErrorURL()
Returns property ShipToDoneErrorURL


setShipToMultipleErrorURL

public void setShipToMultipleErrorURL(java.lang.String pShipToMultipleErrorURL)
Sets property ShipToMultipleErrorURL. This property is normally set on the a jhtml page. It indicates which page we should redirect to if errors occur when the user pushes the SHIP TO MULTIPLE DESTINATIONS button on the Edit Shipping info page.


getShipToMultipleErrorURL

public java.lang.String getShipToMultipleErrorURL()
Returns property ShipToMultipleErrorURL


setShipToMultipleDoneSuccessURL

public void setShipToMultipleDoneSuccessURL(java.lang.String pShipToMultipleDoneSuccessURL)
Sets property ShipToMultipleDoneSuccessURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if NO errors occur when the user is done making all changes on the SHIP TO MULTIPLE page.


getShipToMultipleDoneSuccessURL

public java.lang.String getShipToMultipleDoneSuccessURL()
Returns property ShipToMultipleDoneSuccessURL


setShipToMultipleDoneErrorURL

public void setShipToMultipleDoneErrorURL(java.lang.String pShipToMultipleDoneErrorURL)
Sets property ShipToMultipleDoneErrorURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if errors occur when the user is done making all changes on the SHIP TO MULTIPLE page.


getShipToMultipleDoneErrorURL

public java.lang.String getShipToMultipleDoneErrorURL()
Returns property ShipToMultipleDoneErrorURL


setShipToMultipleSuccessURL

public void setShipToMultipleSuccessURL(java.lang.String pShipToMultipleSuccessURL)
Sets property ShipToMultipleSuccessURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if NO errors occur when the user pushes the SHIP TO MULTIPLE DESTINATIONS button on the Edit Shipping info page.


getShipToMultipleSuccessURL

public java.lang.String getShipToMultipleSuccessURL()
Returns property ShipToMultipleSuccessURL


setMoveToNewShippingAddressSuccessURL

public void setMoveToNewShippingAddressSuccessURL(java.lang.String pMoveToNewShippingAddressSuccessURL)
Sets property MoveToNewShippingAddressSuccessURL. This property is normally set on a jhtml page. It indicates which page we should redirect to if NO errors occur when the user pushes the MOVE TO NEW SHIPPING ADDRESS button.


getMoveToNewShippingAddressSuccessURL

public java.lang.String getMoveToNewShippingAddressSuccessURL()
Returns property MoveToNewShippingAddressSuccessURL


setMoveToNewShippingAddressErrorURL

public void setMoveToNewShippingAddressErrorURL(java.lang.String pMoveToNewShippingAddressErrorURL)
Sets property MoveToNewShippingAddressErrorURL. This property is normally set on the a jhtml page. It indicates which page we should redirect to if errors occur when the user pushes the MOVE TO NEW SHIPPING ADDRESS button.


getMoveToNewShippingAddressErrorURL

public java.lang.String getMoveToNewShippingAddressErrorURL()
Returns property MoveToNewShippingAddressErrorURL


setAddGiftItemToOrderSuccessURL

public void setAddGiftItemToOrderSuccessURL(java.lang.String pAddGiftItemToOrderSuccessURL)
Sets property AddGiftItemToOrderSuccessURL


getAddGiftItemToOrderSuccessURL

public java.lang.String getAddGiftItemToOrderSuccessURL()
Returns property AddGiftItemToOrderSuccessURL


setAddGiftItemToOrderErrorURL

public void setAddGiftItemToOrderErrorURL(java.lang.String pAddGiftItemToOrderErrorURL)
Sets property AddGiftItemToOrderErrorURL


getAddGiftItemToOrderErrorURL

public java.lang.String getAddGiftItemToOrderErrorURL()
Returns property AddGiftItemToOrderErrorURL


preMoveToConfirmation

public void preMoveToConfirmation(DynamoHttpServletRequest pRequest,
                                  DynamoHttpServletResponse pResponse)
                           throws javax.servlet.ServletException,
                                  java.io.IOException
Provide ability to interact with credit cards in user's profile and to handle multiple forms of payment.

To see if a credit card needs to be copied to/from the profile the value of selectedCreditCardName is checked. If it has a value then make a call to copyCreditCardInfo

Next, check to see if there have been new credit cards entered into list of credit cards and the user input gift certificate numbers. If either of these is true, then attempt to place the various payment methods into the user's Order object by calling setPaymentMethodsInOrder. The method isNewCreditCards() is used to see if there are new credit cards.

Overrides:
preMoveToConfirmation in class ShoppingCartFormHandler
Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postMoveToConfirmation

public void postMoveToConfirmation(DynamoHttpServletRequest pRequest,
                                   DynamoHttpServletResponse pResponse)
                            throws javax.servlet.ServletException,
                                   java.io.IOException
This method will check to see if the user entered a new credit card and additionally see if there were any errors. If there is a new credit card and there are no errors then it gets copied to the Profile via the copyCreditCardToProfile method.

Overrides:
postMoveToConfirmation in class ShoppingCartFormHandler
Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

preAddGiftItemToOrder

public void preAddGiftItemToOrder(DynamoHttpServletRequest pRequest,
                                  DynamoHttpServletResponse pResponse)
                           throws javax.servlet.ServletException,
                                  java.io.IOException
Throws:
javax.servlet.ServletException
java.io.IOException

postAddGiftItemToOrder

public void postAddGiftItemToOrder(DynamoHttpServletRequest pRequest,
                                   DynamoHttpServletResponse pResponse)
                            throws javax.servlet.ServletException,
                                   java.io.IOException
Throws:
javax.servlet.ServletException
java.io.IOException

handleAddGiftItemToOrder

public boolean handleAddGiftItemToOrder(DynamoHttpServletRequest pRequest,
                                        DynamoHttpServletResponse pResponse)
                                 throws javax.servlet.ServletException,
                                        java.io.IOException
The same as @see ShoppingCartFormHandler#handleAddItemToOrder with the added affect of adding handling to the shipping group

Parameters:
pRequest - the servlet's request
pResponse - the servlet's response
Throws:
javax.servlet.ServletException - if there was an error while executing the code
java.io.IOException - if there was an error with servlet io

preCreateAddress

public void preCreateAddress(DynamoHttpServletRequest pRequest,
                             DynamoHttpServletResponse pResponse)
                      throws javax.servlet.ServletException,
                             java.io.IOException
Called right before any processing is done by the handleCreateAddress method. Currently is empty.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postCreateAddress

public void postCreateAddress(DynamoHttpServletRequest pRequest,
                              DynamoHttpServletResponse pResponse)
                       throws javax.servlet.ServletException,
                              java.io.IOException
Called right after any processing is done by the handleCreateAddress method. Currently is empty.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

handleCreateAddress

public boolean handleCreateAddress(DynamoHttpServletRequest pRequest,
                                   DynamoHttpServletResponse pResponse)
                            throws javax.servlet.ServletException,
                                   java.io.IOException
Handles creating a new address object in the user's secondary address property. It requires that a valid value has been input for the newShippingAddressName. Two conditions are checked for in this new address name If either of these two conditions exists, then a droplet exceptions is generated and the method returns. Else, use the CommerceProfileTools to create an entry in the user's secondary address map using the name supplied by newShippingAddressName. Only an entry is made at this point, no actual address information is inserted. i.e. the key now exists, but the value for the key does not.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Returns:
a value of type 'boolean'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

preShipToMultiple

public void preShipToMultiple(DynamoHttpServletRequest pRequest,
                              DynamoHttpServletResponse pResponse)
                       throws javax.servlet.ServletException,
                              java.io.IOException
Called before any processing has been done by the handleShipToMultiple method. Currently nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postShipToMultiple

public void postShipToMultiple(DynamoHttpServletRequest pRequest,
                               DynamoHttpServletResponse pResponse)
                        throws javax.servlet.ServletException,
                               java.io.IOException
Called after processing has been done by the handleShipToMultiple method. Currently nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

handleShipToMultiple

public boolean handleShipToMultiple(DynamoHttpServletRequest pRequest,
                                    DynamoHttpServletResponse pResponse)
                             throws javax.servlet.ServletException,
                                    java.io.IOException
Called when the user selects to ship their items to multiple locations. At this point, there is a precondition that only one shipping group exists in the order. This shipping group currently will not have a description associated with it so it needs to be set to the default shipping address, as specified by the PropertyManager.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Returns:
a value of type 'boolean'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

preMoveToNewShippingAddress

public void preMoveToNewShippingAddress(DynamoHttpServletRequest pRequest,
                                        DynamoHttpServletResponse pResponse)
                                 throws javax.servlet.ServletException,
                                        java.io.IOException
Called before any processing is done by the handleMoveToNewShippingAddress method. Currently, nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postMoveToNewShippingAddress

public void postMoveToNewShippingAddress(DynamoHttpServletRequest pRequest,
                                         DynamoHttpServletResponse pResponse)
                                  throws javax.servlet.ServletException,
                                         java.io.IOException
Called after any processing is done by the handleMoveToNewShippingAddress method. Currently, nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

handleMoveToNewShippingAddress

public boolean handleMoveToNewShippingAddress(DynamoHttpServletRequest pRequest,
                                              DynamoHttpServletResponse pResponse)
                                       throws javax.servlet.ServletException,
                                              java.io.IOException
This method handles the moving of a commerce item from one shipping group to another in a user's order. It assumes that the following variables have been set: originalShippingAddressName, newShippingAddressName, commerceItemIdToEdit and quantityToMove. The originalShippingAddressName is the description name of the shipping group that the commerce items will be moved from. The newShippingAddressName is the nickname from the user's secondary address map that contains the address that the items will be moved to. The commerceItemIdToEdit should be the id of the CommerceItem that will be moved. This method simply makes a call to

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Returns:
a value of type 'boolean'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs
See Also:
to actually do movement of the commerce items.

preShipToMultipleDone

public void preShipToMultipleDone(DynamoHttpServletRequest pRequest,
                                  DynamoHttpServletResponse pResponse)
                           throws javax.servlet.ServletException,
                                  java.io.IOException
Called before any processing is done by the handleShipToMultipleDone method. Currently, nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postShipToMultipleDone

public void postShipToMultipleDone(DynamoHttpServletRequest pRequest,
                                   DynamoHttpServletResponse pResponse)
                            throws javax.servlet.ServletException,
                                   java.io.IOException
Called after processing by the handleShipToMultipleDone method. Currently, nothing is being done.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

handleShipToMultipleDone

public boolean handleShipToMultipleDone(DynamoHttpServletRequest pRequest,
                                        DynamoHttpServletResponse pResponse)
                                 throws javax.servlet.ServletException,
                                        java.io.IOException
Called after a user is done specifying the addresses that they want to move their commerce items to. This makes calls to the appropriate pre/post methods and then returns.

Parameters:
pRequest - the servlet's request
pResponse - the servlet's response
Throws:
javax.servlet.ServletException - if there was an error while executing the code
java.io.IOException - if there was an error with servlet io

preShipToDone

public void preShipToDone(DynamoHttpServletRequest pRequest,
                          DynamoHttpServletResponse pResponse)
                   throws javax.servlet.ServletException,
                          java.io.IOException
Called before any processing is done by the handleShipToDone method. Currently, it does nothing.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

postShipToDone

public void postShipToDone(DynamoHttpServletRequest pRequest,
                           DynamoHttpServletResponse pResponse)
                    throws javax.servlet.ServletException,
                           java.io.IOException
Called after any processing is done by the handleShipToDone method. Currently, it does nothing.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

handleShipToDone

public boolean handleShipToDone(DynamoHttpServletRequest pRequest,
                                DynamoHttpServletResponse pResponse)
                         throws javax.servlet.ServletException,
                                java.io.IOException
Called after the user has finished inputting their shipping information. If the user is going to be shipping to a single address, then the name of this address should be specified by the shipToAddressName. If there is a name specified for this property than

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Returns:
a value of type 'boolean'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs
See Also:
is called to copy the address information from the correct location.

Additionally, the user could have addresses info in their order which do not exist in their profile yet. If this is the case, then the names of those addresses should be in the addressesToCopy property. These addresses will be copied over by the, method.

Finally, the shipping groups in the order will attempt to be validated via the runProcessValidateShippingGroups method. If there are errors, then any added nicknames to the profile during the current submit will be removed. This is because the shipping groups have not been validated and the user will need to chagne their address info before continuing. This prevents "half" addresses from appearing in the user's profile. Since the nicknames will have been removed the copyAddressesToProfile method will not get called and the new address that the user just input will not get copied to the Profile.


preExpressCheckout

public void preExpressCheckout(DynamoHttpServletRequest pRequest,
                               DynamoHttpServletResponse pResponse)
                        throws javax.servlet.ServletException,
                               java.io.IOException
Parameters:
pRequest - the servlet's request
pResponse - the servlet's response
Throws:
javax.servlet.ServletException - if there was an error while executing the code
java.io.IOException - if there was an error with servlet io

postExpressCheckout

public void postExpressCheckout(DynamoHttpServletRequest pRequest,
                                DynamoHttpServletResponse pResponse)
                         throws javax.servlet.ServletException,
                                java.io.IOException
Parameters:
pRequest - the servlet's request
pResponse - the servlet's response
Throws:
javax.servlet.ServletException - if there was an error while executing the code
java.io.IOException - if there was an error with servlet io

handleExpressCheckout

public boolean handleExpressCheckout(DynamoHttpServletRequest pRequest,
                                     DynamoHttpServletResponse pResponse)
                              throws java.io.IOException,
                                     javax.servlet.ServletException
Parameters:
pRequest - the servlet's request
pResponse - the servlet's response
Throws:
javax.servlet.ServletException - if there was an error while executing the code
java.io.IOException - if there was an error with servlet io pje

copyCreditCardToProfile

protected void copyCreditCardToProfile(CreditCard pCreditCard)
Deprecated. this method has been moved to CommerceProfileTools

Copy the credit card passed in the parameter pCreditCard to the user's profile. This is done by creating a new Credit Card itemDescriptor object by making use of the @see atg.commmerce.profile.CommerceProfileTools class to create a creditCardItem. Next, the @see #copyCreditCard(CreditCard, RepositoryItem) is called to perform the actual copying of data. The resulting object is then updated to the repository and copied into the user's map of credit cards.

Parameters:
pCreditCard - the credit card that is to be copied to a user's profile

copyCreditCardToPaymentGroup

protected void copyCreditCardToPaymentGroup(java.lang.String pNickname,
                                            CreditCard paymentGroup,
                                            DynamoHttpServletRequest pRequest,
                                            DynamoHttpServletResponse pResponse)
                                     throws javax.servlet.ServletException,
                                            java.io.IOException
Deprecated. this method has been moved to CommerceProfileTools

Copy the credit card from the user's profile to the payment group. The credit card item named by pNickname is obtained from the user's profile and then copied into the paymentGroup parameter. This is done by making calls to @see #copyCreditCard(RepositoryItem, CreditCard)

Parameters:
pNickname - a value of type 'String'
paymentGroup - a value of type 'CreditCard'
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException
java.io.IOException

copyCreditCard

protected void copyCreditCard(RepositoryItem pFromCreditCard,
                              CreditCard pToCreditCard)
Deprecated. this method has been moved to CommerceProfileTools

Copying a credit card is a two step process.

The first is copying the shallow properties of the credit card. These are objects like String, Integer etc. that can be copied. This shallow copying is performed by the @see #copyShallowCreditCardProperties method.

Next, any post copying is done. The single object that must have a "deep" coyp performed on it is the billingAddress of the credit card. The billingAddress is obtained from both objects and then a call is made to the

Parameters:
pFromCreditCard - a value of type 'RepositoryItem'
pToCreditCard - a value of type 'CreditCard'
See Also:
to perform the copy.

If there is additional deep copying that needs to be done, this method should be overriden.


copyCreditCard

protected void copyCreditCard(CreditCard pFromCreditCard,
                              RepositoryItem pToCreditCard)
Deprecated. this method has been moved to CommerceProfileTools

Copying a credit card is a two step process.

The first is copying the shallow properties of the credit card. These are objects like String, Integer etc. that can be copied. This shallow copying is performed by the @see #copyShallowCreditCardProperties method.

Next, any post copying is done. The single object that must have a "deep" copy performed on it is the billingAddress of the credit card. The billingAddress is obtained from both objects and then a call is made to the

Parameters:
pFromCreditCard - a value of type 'RepositoryItem'
pToCreditCard - a value of type 'CreditCard'
See Also:
to perform the copy.

If there is additional deep copying that needs to be done, this method should be overriden.


copyShallowCreditCardProperties

protected void copyShallowCreditCardProperties(java.lang.Object pFromCreditCard,
                                               java.lang.Object pToCreditCard)
                                        throws PropertyNotFoundException
Deprecated. this method has been moved to CommerceProfileTools

The shallow properties of a credit card are copied. This is done by consulting the @see #propertyManager for a String array of properties to copy, as named by the shallowCreditCardPropertyNames property. These properties are then copied via DynamicBeans

Parameters:
pFromCreditCard - the credit card that the address is copied from
pToCreditCard - the destination credit card for address
Throws:
PropertyNotFoundException - if a property listed by shallowCreditCardPropertyNames is not found

removeAddedNickNameEntries

protected void removeAddedNickNameEntries()
                                   throws RepositoryException
Throws:
RepositoryException

moveCommerceItemsToNewShippingGroup

protected void moveCommerceItemsToNewShippingGroup(java.lang.String pFromAddress,
                                                   java.lang.String pToAddress,
                                                   java.lang.String pCommerceItemIdToMove,
                                                   int pQuantityToMove,
                                                   DynamoHttpServletRequest pRequest,
                                                   DynamoHttpServletResponse pResponse)
                                            throws CommerceException,
                                                   javax.servlet.ServletException,
                                                   java.io.IOException
This method moves commerce items from one shipping group to another. In performing this move there are three conditions that are checked:
  • If the address that the items are being moved to exists, then the @see OrderManager is called to update the relationship between the shipping groups
  • If the destination shipping group does not exist, but the current shipping group is only being used for the commerce item then just copy the new address information into the old shipping group. Whether or not this single relationship exists is determined by calling the @see #isSingletonRelationship method.
  • If none of the two above cases exist, then a new shipping group must be created and added to the order. After the shippingGroup has been created, the address as named by the pToAddress is obtained from the Profile and the info is copied. The

    Parameters:
    pFromAddress - a value of type 'String'
    pToAddress - a value of type 'String'
    pCommerceItemIdToMove - a value of type 'String'
    pQuantityToMove - a value of type 'int'
    pRequest - a value of type 'DynamoHttpServletRequest'
    pResponse - a value of type 'DynamoHttpServletResponse'
    Throws:
    CommerceException - if an error occurs
    javax.servlet.ServletException - if an error occurs
    java.io.IOException - if an error occurs
    See Also:
    method performs the copying

isSingletonRelationship

protected boolean isSingletonRelationship(ShippingGroup pShippingGroup,
                                          CommerceItem pCommerceItem,
                                          Order order,
                                          int pQuantityToMove)
                                   throws CommerceException
This method will determine if the relationship between a given shippingGroup and commerceItem is singleton. This means
  • The shippingGroup only has a relationship with a single commerceItem, which is the current one
  • The quantity of the commerce item being moved as indicated by the pQuantityToMove parameter should equal each other.

Parameters:
pShippingGroup - shippingGroup the commerceItem currently belongs to
pCommerceItem - the commerceItem to move
order - user's order
pQuantityToMove - the quantity of the commerceItem to move
Returns:
true if a singleton relationship exists
Throws:
CommerceException - if an error occurs

copyProfileAddressToShippingGroupAddress

protected void copyProfileAddressToShippingGroupAddress(java.lang.String pProfileAddressName,
                                                        ShippingGroup pShippingGroup,
                                                        DynamoHttpServletRequest pRequest,
                                                        DynamoHttpServletResponse pResponse)
                                                 throws javax.servlet.ServletException,
                                                        java.io.IOException
The address as specified by the pProfileAddressName is copied from the user's profile to the shippingGroup specified by pShippingGroup The profile address is obtained by using the @see #commerceProfileTools. The profile is then copied using the @see OrderManager.

Parameters:
pProfileAddressName - the profile address nickname that is the source address
pShippingGroup - the destination shippinGroup where the address is copied to
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException - if an error occurs
java.io.IOException - if an error occurs

updateShippingAddress

public void updateShippingAddress(DynamoHttpServletRequest pRequest,
                                  DynamoHttpServletResponse pResponse)
                           throws java.io.IOException,
                                  javax.servlet.ServletException,
                                  RepositoryException
This method does two things: checks to see if a new address has been input by the user and else copies an existing profile address to the shippingGroup. If the property @see #shipToAddressName is equal to @see #NEW then a new profileAddress is created using the @see #commerceProfileTools. The nickname of the new address is specified using the shipToAddressName property. After the address has been created, we add it to the list of addresses to be copied via the addressesToCopy property. This will then allow the address to be copied from the order to the profile (once info has been filled in).

If a new shipping address is not specified, that means that the user selected an address that exists in their profile. This profile address is copied to the order via the @see #copyProfileAddressToShippingGroupAddress method.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
java.io.IOException - if an error occurs
javax.servlet.ServletException - if an error occurs
RepositoryException

addNewShippingAddress

protected void addNewShippingAddress(DynamoHttpServletRequest pRequest,
                                     DynamoHttpServletResponse pResponse)
                              throws javax.servlet.ServletException,
                                     java.io.IOException
A shipping address exists in the getShippingGroup(), but not in the Profile so it needs to be propogated there. Check to see if the shipping address is currently empty; if it is then copy the address to that location, else place it in the secondary address list using the nickname supplied via the newShippingAddressProperty.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException
java.io.IOException

copyExistingAddress

protected void copyExistingAddress(DynamoHttpServletRequest pRequest,
                                   DynamoHttpServletResponse pResponse)
                            throws javax.servlet.ServletException,
                                   java.io.IOException,
                                   RepositoryException
Copies the address named by the property shipToAddressName to the primary shipping group in the order. (Shipping group returned from call getShippingGroup()) Then, check to see if there is currently a profile in the user's shippingAddress property (via the the CommerceProfileTools). If there is not one, then copy the address to that location.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
javax.servlet.ServletException
java.io.IOException
RepositoryException

copyAddressesToProfile

protected void copyAddressesToProfile(DynamoHttpServletRequest pRequest,
                                      DynamoHttpServletResponse pResponse)
                               throws java.io.IOException,
                                      javax.servlet.ServletException
Copy all the addresses that currently exist in the Order's list of Shipping Groups to the Profile's list of secondary addresses. This is only done if the address does not yet exist in the user's list of secondary addresses.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
java.io.IOException
javax.servlet.ServletException

setPaymentMethodsInOrder

protected void setPaymentMethodsInOrder(DynamoHttpServletRequest pRequest,
                                        DynamoHttpServletResponse pResponse)
                                 throws CommerceException,
                                        java.io.IOException,
                                        javax.servlet.ServletException
Method that deals with setting the payment methods that are to be used in an order. The steps that are done to perform this are:
  • remove any old payment groups from the order
  • see if any gift certificates need to be claimed and made into GiftCertificate payment groups
  • merge the payment groups listed in the properties creditCardPaymentGroup and GiftCertificatePaymentGroup into the order.

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Throws:
CommerceException
java.io.IOException
javax.servlet.ServletException

removePaymentGroupsFromOrder

protected void removePaymentGroupsFromOrder(DynamoHttpServletRequest pRequest,
                                            DynamoHttpServletResponse pResponse)
                                     throws CommerceException,
                                            javax.servlet.ServletException,
                                            java.io.IOException
Removes all payment groups from the order.

Throws:
CommerceException - if an error occurs
javax.servlet.ServletException
java.io.IOException

isPaymentGroupEmpty

protected boolean isPaymentGroupEmpty(java.lang.Object pPaymentGroup,
                                      DynamoHttpServletRequest pRequest,
                                      DynamoHttpServletResponse pResponse)
                               throws CommerceException,
                                      javax.servlet.ServletException,
                                      java.io.IOException
This method knows about two types of payment methods: CreditCards and GiftCertificates. It checks to see which type the parameter pPaymentGroup is and then calls the corresponding isCreditCardEmpty/isGiftCertificateEmpty method and returns the value from those methods.

Parameters:
pPaymentGroup - payment group to test for isEmpty
Returns:
true if the payment group is empty
Throws:
CommerceException - if the supplied parameter is not of type CreditCard or GiftCertificate.
javax.servlet.ServletException
java.io.IOException

isCreditCardEmpty

protected boolean isCreditCardEmpty(CreditCard pCreditCard)
Deprecated. this method has been moved to CommerceProfileTools

Checks to see if a CreditCard object is empty. Empty means that certain necessary fields are missing. The properties that it checks for are those specified by the creditCardProperties String array.

This behavior can be overriden by making additions to the String array creditCardProperties, or if necessary extending this method.

Parameters:
pCreditCard - a value of type 'CreditCard'
Returns:
true if the payment group is empty.

isGiftCertificateEmpty

protected boolean isGiftCertificateEmpty(GiftCertificate pGiftCertificate)
Checks to see if a GiftCertificate object is empty. Empty means that certain necessary fields are missing. The properties that it checks for are those specified by the GiftCertificateProperties String array.

This behavior can be overriden by making additions to the String array GiftCertificateProperties, or if necessary extending this method.

Parameters:
pGiftCertificate - a value of type 'GiftCertificate'
Returns:
true if the payment group is empty.

createGiftCertificatePaymentGroups

protected java.util.List createGiftCertificatePaymentGroups(DynamoHttpServletRequest pRequest,
                                                            DynamoHttpServletResponse pResponse)
                                                     throws CommerceException,
                                                            ClaimableException,
                                                            java.io.IOException,
                                                            javax.servlet.ServletException,
                                                            RepositoryException,
                                                            PropertyNotFoundException
This method will parse a string and attempt to create giftCertificatePaymentGroups out of the tokens of the string. This is done in the following manner:
  • obtain the possible list of gift certificates specified by the giftCertificateNumbers property
  • tokenize this list into the various tokens, where each token could be a gift certificate claim code. We tokenize the input here because the idea of a user being able to input multiple gift certificate claim codes on a single line is supported.
  • claim the gift certificate using the claimableManager to obtain the gift certificate.
  • Create a new giftCertificate paymentGroup using the @see OrderManager
  • copy the amount of the gift certificate into the List that will be returned

Parameters:
pRequest - a value of type 'DynamoHttpServletRequest'
pResponse - a value of type 'DynamoHttpServletResponse'
Returns:
List of the amounts of each giftCertificate that was claimed
Throws:
CommerceException - if an error occurs
ClaimableException - if an error occurs
java.io.IOException - if an error occurs
javax.servlet.ServletException - if an error occurs
PropertyNotFoundException - if an error occurs
RepositoryException

mergePaymentGroupsToOrder

protected void mergePaymentGroupsToOrder(java.util.List pGiftCertificateAmounts,
                                         DynamoHttpServletRequest pRequest,
                                         DynamoHttpServletResponse pResponse)
                                  throws CommerceException,
                                         javax.servlet.ServletException,
                                         java.io.IOException
Check two lists of payment groups: giftCertificatePaymentGroups and creditCardPaymentGroups. Each paymentGroup that exists in these lists is added to the Order's list of paymentGroups. Gift certificates are prepended to the Order's list of payment methods. CreditCards are appended onto the list of payment groups. This ensures that giftCertificates are used before creditCards.

Parameters:
pGiftCertificateAmounts - a list of the amounts that each gift certificate represents
pRequest - servletRequest object
pResponse - servletResponse object
Throws:
CommerceException
javax.servlet.ServletException
java.io.IOException

isOrderRelationshipExists

protected boolean isOrderRelationshipExists(Order pOrder,
                                            java.lang.String pPaymentGroupId)
                                     throws CommerceException
Determines if a relationship exists between a specified paymentGroup and the specified order object. If a relationship exists, true is returned.

Parameters:
pOrder - user's order
pPaymentGroupId - paymentGrou checked for relationship
Returns:
true if a relationship exists
Throws:
CommerceException - if an error occurs

removeCreditCardPaymentGroupsFromOrder

protected void removeCreditCardPaymentGroupsFromOrder()
                                               throws CommerceException
This function removes all the credit card paymentgroups from the order. It is used in this application because we enforce that no more than one CreditCard payment group exists at a time. If you want to allow from multiple CreditCard payment groups, this should not be called.

Throws:
CommerceException - if an error occurs

isNewCreditCards

protected boolean isNewCreditCards()
Check to see if there have been any new credit payment groups added to the List of creditCardPaymentGroups. If there has, then it needs to be merged to the order's PaymentGroups.

Because the list of credit cards defaults to one, return true only if there is at least one CreditCard that is not empty.

Returns:
true if there are new credit card payment groups

isNewGiftCertificates

protected boolean isNewGiftCertificates()
Check to see if there have been any new gift certificate payment groups added to the List of giftCertificatePaymentGroups. If there has, then it needs to be merged to the order's PaymentGroups.

Ensure that if there are GiftCertificates that they are not empty. i.e. they have information inputted into their necessary fields, as specified by the giftCertificateProperties property.

Returns:
true if there are new gift certificate payment groups

runProcessValidateShippingGroups

protected boolean runProcessValidateShippingGroups(Order pOrder,
                                                   PricingModelHolder pPricingModels,
                                                   java.util.Locale pLocale,
                                                   RepositoryItem pProfile,
                                                   java.util.Map pExtraParameters)
                                            throws RunProcessException
Run the pipeline which should be executed when the handleMoveToPurchaseInfo method is invoked

Parameters:
pOrder - the order to reprice
pPricingModels - the set of all pricing models for the user (item, order, shipping, tax)
pLocale - the locale that the order should be priced within
pProfile - the user who owns the order
pExtraParameters - A Map of extra parameters to be used in the pricing
Throws:
RunProcessException