atg.projects.store.order.purchase
Class StorePurchaseProcessHelper

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.order.purchase.PurchaseProcessHelper
              extended by atg.projects.store.order.purchase.StorePurchaseProcessHelper
All Implemented Interfaces:
atg.naming.AbsoluteNameable, atg.naming.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameContextParentable, atg.naming.NameResolver, atg.nucleus.AdminableService, atg.nucleus.Configured, atg.nucleus.logging.ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, atg.nucleus.naming.ComponentNameResolver, atg.nucleus.Service, atg.nucleus.ServiceListener, java.util.EventListener
Direct Known Subclasses:
StoreBillingProcessHelper, StoreCartProcessHelper, StoreCommitOrderProcessHelper, StoreExpressCheckoutProcessHelper, StoreShippingProcessHelper

public class StorePurchaseProcessHelper
extends atg.commerce.order.purchase.PurchaseProcessHelper

Store implementation of the purchase process helper.

Version:
$Id: //hosting-blueprint/B2CBlueprint/version/10.2.1/EStore/src/atg/projects/store/order/purchase/StorePurchaseProcessHelper.java#3 $$Change: 791692 $
Author:
ATG

Field Summary
static java.lang.String ADDRESS_PROP_NAME
           
static java.lang.String CITY_PROP_NAME
           
static java.lang.String CLASS_VERSION
          Class version string.
static java.lang.String COUNTRY_PROP_NAME
           
static java.lang.String FIRST_NAME_PROP_NAME
           
static java.lang.String LAST_NAME_PROP_NAME
           
static java.lang.String MSG_MISSING_REQUIRED_ADDRESS_PROPERTY
          Missing required address property.
static java.lang.String MSG_MULTIPLE_COUPONS_PER_ORDER
          Multiple coupons per order error message key.
static java.lang.String MSG_UNCLAIMABLE_COUPON
          Unclaimable coupon error message key.
static java.lang.String POSTAL_CODE_PROP_NAME
           
static java.lang.String PRICING_ERROR
          Pricing error message key.
static java.lang.String PRICING_ERROR_ADDRESS
          Pricing error invalid address message key.
static java.lang.String STATE_PROP_NAME
           
 
Fields inherited from class atg.commerce.order.purchase.PurchaseProcessHelper
ERROR_FETCHING_PROFILE, MSG_ERROR_ADDING_CREDIT_CARD, MSG_ERROR_ADDING_SHIPPINGGROUP, MSG_ERROR_ADDING_TO_ORDER, MSG_ERROR_CHANGING_ITEM_QUANTITY, MSG_ERROR_CREATING_ORDER, MSG_ERROR_MOVING_ITEM_BETWEEN_SHIPPING_GROUPS, MSG_ERROR_PROCESS_ADD_ITEM_CHAIN, MSG_ERROR_REMOVING_ITEM, MSG_ERROR_REMOVING_ITEM_FROM_SHIPPING_GROUP, MSG_ERROR_REPRICING_ORDER_AFTER_ADD_ITEM, MSG_ERROR_SETTING_ORDER_AMOUNT, MSG_INVALID_PROFILE_ID
 
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
StorePurchaseProcessHelper()
           
 
Method Summary
 java.util.List checkForRequiredAddressProperties(atg.core.util.ContactInfo pContactInfo)
          Validates the required billing properties.
 void claimCoupon(java.lang.String pCouponCode, StoreOrderImpl pOrder, atg.repository.RepositoryItem pProfile, boolean pRepriceOrder, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale)
          This method claims a coupon specified by its code for a specific user and order.
 void claimCoupon(java.lang.String pCouponCode, StoreOrderImpl pOrder, atg.repository.RepositoryItem pProfile, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale)
          This method claims a coupon specified by its code for a specific user and order and reprices the order.
 java.util.Map getAddressPropertyNameMap()
           
 atg.commerce.claimable.ClaimableManager getClaimableManager()
           
protected  java.util.List getMandatoryStateCountryList(atg.servlet.DynamoHttpServletRequest pRequest)
          Get mandatory state country list.
 atg.commerce.util.PlaceUtils getPlaceUtils()
           
 atg.commerce.pricing.PricingTools getPricingTools()
           
 java.lang.String[] getRequiredAddressPropertyNames()
           
 StoreConfiguration getStoreConfiguration()
           
 StoreOrderTools getStoreOrderTools()
           
 void removeCoupon(StoreOrderImpl pOrder, atg.repository.RepositoryItem pProfile, boolean pRepriceOrder, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale)
          This method removes a coupon from the order specified.
 void removeCoupon(StoreOrderImpl pOrder, atg.repository.RepositoryItem pProfile, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale)
          This method removes a coupon from the order specified and re-prices the order.
 void repriceOrder(atg.commerce.order.Order pOrder, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale, atg.repository.RepositoryItem pProfile)
          Logic to re-price order, and parse any errors.
 void setAddressPropertyNameMap(java.util.Map pAddressPropertyNameMap)
           
 void setClaimableManager(atg.commerce.claimable.ClaimableManager pClaimableManager)
           
 void setPlaceUtils(atg.commerce.util.PlaceUtils pPlaceUtils)
           
 void setPricingTools(atg.commerce.pricing.PricingTools pPricingTools)
           
 void setRequiredAddressPropertyNames(java.lang.String[] pRequiredAddressPropertyNames)
           
 void setStoreConfiguration(StoreConfiguration pStoreConfiguration)
           
 void setStoreOrderTools(StoreOrderTools pStoreOrderTools)
           
 boolean tenderCoupon(java.lang.String pCouponCode, StoreOrderImpl pOrder, atg.repository.RepositoryItem pProfile, atg.commerce.pricing.PricingModelHolder pUserPricingModels, java.util.Locale pUserLocale)
           Attempt to claim the specified coupon code for a specific user and order.
 
Methods inherited from class atg.commerce.order.purchase.PurchaseProcessHelper
addCreditCardToOrder, addItemsToOrder, addItemsToOrder, addItemToOrder, addItemToShippingGroup, addShippingAddressToOrder, adjustItemRelationshipsForQuantityChange, adjustNonGiftHandlingInstructionsForQuantityDecrease, adjustNonGiftHandlingInstructionsForQuantityIncrease, applyValueDictionary, changeItemQuantity, copyCreditCardInfo, createCommerceItem, createConfigurableSubitems, createOrder, decreaseRelationshipQuantity, deleteItem, deleteItems, deleteItems, getAddItemToOrderChainId, getAddItemToOrderPricingOp, getCommerceItemManager, getDefaultHardgoodShippingGroupType, getDeleteItemsFromOrderPricingOp, getFirstShippingGroup, getGiftlistManager, getOrderManager, getPipelineManager, getRepriceOrderChainId, getShippingGroupForItem, getShippingGroupManager, getTransactionManager, increaseRelationshipQuantity, isAddItemToDefaultShippingGroup, isTransactionMarkedAsRollBack, moveItemBetweenShippingGroups, postAddItemsToOrder, postDeleteItem, postDeleteItem, processGiftAddition, processPipelineErrors, removeEntireRelationshipQuantity, removeItemQuantityFromShippingGroup, runProcess, runProcess, runProcess, runProcessAddItemToOrder, runProcessRepriceOrder, runProcessSendScenarioEvent, runProcessSendScenarioEvent, runProcessSendScenarioEvent, runRepricingProcess, setAddItemToDefaultShippingGroup, setAddItemToOrderChainId, setAddItemToOrderPricingOp, setCommerceItemManager, setCommerceItemProperties, setDefaultHardgoodShippingGroupType, setDeleteItemsFromOrderPricingOp, setGiftlistManager, setOrderAmountToPaymentGroup, setOrderManager, setPipelineManager, setRepriceOrderChainId, setShippingGroupManager, setTransactionManager
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, 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 final java.lang.String CLASS_VERSION
Class version string.

See Also:
Constant Field Values

POSTAL_CODE_PROP_NAME

public static final java.lang.String POSTAL_CODE_PROP_NAME
See Also:
Constant Field Values

STATE_PROP_NAME

public static final java.lang.String STATE_PROP_NAME
See Also:
Constant Field Values

COUNTRY_PROP_NAME

public static final java.lang.String COUNTRY_PROP_NAME
See Also:
Constant Field Values

CITY_PROP_NAME

public static final java.lang.String CITY_PROP_NAME
See Also:
Constant Field Values

ADDRESS_PROP_NAME

public static final java.lang.String ADDRESS_PROP_NAME
See Also:
Constant Field Values

LAST_NAME_PROP_NAME

public static final java.lang.String LAST_NAME_PROP_NAME
See Also:
Constant Field Values

FIRST_NAME_PROP_NAME

public static final java.lang.String FIRST_NAME_PROP_NAME
See Also:
Constant Field Values

MSG_MISSING_REQUIRED_ADDRESS_PROPERTY

public static final java.lang.String MSG_MISSING_REQUIRED_ADDRESS_PROPERTY
Missing required address property.

See Also:
Constant Field Values

PRICING_ERROR_ADDRESS

public static final java.lang.String PRICING_ERROR_ADDRESS
Pricing error invalid address message key.

See Also:
Constant Field Values

PRICING_ERROR

public static final java.lang.String PRICING_ERROR
Pricing error message key.

See Also:
Constant Field Values

MSG_MULTIPLE_COUPONS_PER_ORDER

public static final java.lang.String MSG_MULTIPLE_COUPONS_PER_ORDER
Multiple coupons per order error message key.

See Also:
Constant Field Values

MSG_UNCLAIMABLE_COUPON

public static final java.lang.String MSG_UNCLAIMABLE_COUPON
Unclaimable coupon error message key.

See Also:
Constant Field Values
Constructor Detail

StorePurchaseProcessHelper

public StorePurchaseProcessHelper()
Method Detail

getAddressPropertyNameMap

public java.util.Map getAddressPropertyNameMap()
Returns:
the address property name map.

setAddressPropertyNameMap

public void setAddressPropertyNameMap(java.util.Map pAddressPropertyNameMap)
Parameters:
pAddressPropertyNameMap - - the address property name map to set.

getRequiredAddressPropertyNames

public java.lang.String[] getRequiredAddressPropertyNames()
Returns:
the address property names.

setRequiredAddressPropertyNames

public void setRequiredAddressPropertyNames(java.lang.String[] pRequiredAddressPropertyNames)
Parameters:
pRequiredAddressPropertyNames - - the address property name map to set.

getStoreOrderTools

public StoreOrderTools getStoreOrderTools()
Returns:
the Store order tools property.

setStoreOrderTools

public void setStoreOrderTools(StoreOrderTools pStoreOrderTools)
Parameters:
pStoreOrderTools - - the Store order tools property.

getStoreConfiguration

public StoreConfiguration getStoreConfiguration()
Returns:
the store configuration.

setStoreConfiguration

public void setStoreConfiguration(StoreConfiguration pStoreConfiguration)
Parameters:
pStoreConfiguration - - the store configuration to set.

setPricingTools

public void setPricingTools(atg.commerce.pricing.PricingTools pPricingTools)
Parameters:
pPricingTools - - pricing tools.

getPricingTools

public atg.commerce.pricing.PricingTools getPricingTools()
Returns:
mPricingTools - pricing tools.

getPlaceUtils

public atg.commerce.util.PlaceUtils getPlaceUtils()
Returns:
Utility methods class for PlaceList handling.

setPlaceUtils

public void setPlaceUtils(atg.commerce.util.PlaceUtils pPlaceUtils)
Parameters:
pPlaceUtils - - Utility methods class for PlaceList handling.

getClaimableManager

public atg.commerce.claimable.ClaimableManager getClaimableManager()
Returns:
the claimable manager.

setClaimableManager

public void setClaimableManager(atg.commerce.claimable.ClaimableManager pClaimableManager)
Parameters:
pClaimableManager - - the claimable manager to set.

getMandatoryStateCountryList

protected java.util.List getMandatoryStateCountryList(atg.servlet.DynamoHttpServletRequest pRequest)
Get mandatory state country list.

Parameters:
pRequest - - HTTP request.
Returns:
mandatory state country list.

checkForRequiredAddressProperties

public java.util.List checkForRequiredAddressProperties(atg.core.util.ContactInfo pContactInfo)
Validates the required billing properties.

Parameters:
pContactInfo - - Contact information.
pRequest - - HTTP request.
Returns:
a list of required properties that are missing from the ContactInfo.

repriceOrder

public void repriceOrder(atg.commerce.order.Order pOrder,
                         atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                         java.util.Locale pUserLocale,
                         atg.repository.RepositoryItem pProfile)
                  throws atg.commerce.pricing.PricingException
Logic to re-price order, and parse any errors.

Parameters:
pOrder - - the order to price.
pUserLocale - - the locale of the user, may be null.
pProfile - - the user, may be null.
pUserPricingModels - - the PricingModelHolder is an object which contains all the pricing models associated with a user (i.e. item, shipping, order and tax).
Throws:
atg.commerce.pricing.PricingException - if there was an error while computing the pricing information.

tenderCoupon

public boolean tenderCoupon(java.lang.String pCouponCode,
                            StoreOrderImpl pOrder,
                            atg.repository.RepositoryItem pProfile,
                            atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                            java.util.Locale pUserLocale)
                     throws atg.commerce.CommerceException,
                            java.lang.IllegalArgumentException

Attempt to claim the specified coupon code for a specific user and order.


If the tendered coupon code is empty then remove any existing coupon on the order. If the tendered coupon is not empty then check this is a valid claimable item before removing any existing coupon and claiming the tendered coupon. This avoids issues such as revoke promotion events if we simply remove the coupon and then roll-back when claiming the coupon fails.

Parameters:
pCouponCode - - coupon code to be claimed.
pOrder - - order to be re-priced when the coupon has been claimed.
pProfile - - user who claims a coupon.
pUserPricingModels - - user's pricing models to be used for order re-price process.
pUserLocale - - user's locale to be used when re-pricing order.
Returns:
true if the coupon has been successfully removed or tendered/claimed; otherwise false.
Throws:
atg.commerce.CommerceException - if an error occurred during claiming the coupon.
java.lang.IllegalArgumentException - indicate that a method has been passed an illegal or inappropriate argument.

claimCoupon

public void claimCoupon(java.lang.String pCouponCode,
                        StoreOrderImpl pOrder,
                        atg.repository.RepositoryItem pProfile,
                        atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                        java.util.Locale pUserLocale)
                 throws atg.commerce.CommerceException,
                        java.lang.IllegalArgumentException
This method claims a coupon specified by its code for a specific user and order and reprices the order.

Parameters:
pCouponCode - - coupon code to be claimed.
pOrder - - order to be re-priced when the coupon has been claimed.
pProfile - - user who claims a coupon.
pUserPricingModels - - user's pricing models to be used for order reprice process.
pUserLocale - - user's locale to be used when re-pricing order.
Throws:
atg.commerce.CommerceException - - if something goes wrong.
java.lang.IllegalArgumentException - - if order has a claimed coupon already.

claimCoupon

public void claimCoupon(java.lang.String pCouponCode,
                        StoreOrderImpl pOrder,
                        atg.repository.RepositoryItem pProfile,
                        boolean pRepriceOrder,
                        atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                        java.util.Locale pUserLocale)
                 throws atg.commerce.CommerceException,
                        java.lang.IllegalArgumentException
This method claims a coupon specified by its code for a specific user and order. The order is re-priced if the 'pRepriceOrder' parameter is true.

Parameters:
pCouponCode - - coupon code to be claimed.
pOrder - - order to be re-priced when the coupon has been claimed.
pProfile - - user who claims a coupon.
pRepriceOrder - - boolean flag to indicate if order should be re-priced.
pUserPricingModels - - user's pricing models to be used for order re-price process.
pUserLocale - - user's locale to be used when re-pricing order.
Throws:
atg.commerce.CommerceException - - if something goes wrong.
java.lang.IllegalArgumentException - - if order has a claimed coupon already.

removeCoupon

public void removeCoupon(StoreOrderImpl pOrder,
                         atg.repository.RepositoryItem pProfile,
                         atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                         java.util.Locale pUserLocale)
                  throws atg.commerce.CommerceException
This method removes a coupon from the order specified and re-prices the order.

Parameters:
pOrder - - order with coupon claimed.
pProfile - - user who removes a coupon.
pUserPricingModels - - user's pricing models to be used in order re-pricing process.
pUserLocale - - user's locale to be used when re-pricing order.
Throws:
atg.commerce.CommerceException - - if something goes wrong.

removeCoupon

public void removeCoupon(StoreOrderImpl pOrder,
                         atg.repository.RepositoryItem pProfile,
                         boolean pRepriceOrder,
                         atg.commerce.pricing.PricingModelHolder pUserPricingModels,
                         java.util.Locale pUserLocale)
                  throws atg.commerce.CommerceException
This method removes a coupon from the order specified. The order is re-priced if the 'pRepriceOrder' parameter is true.

Parameters:
pOrder - - order with coupon claimed.
pProfile - - user who removes a coupon.
pRepriceOrder - - boolean flag to indicate if order should be re-priced.
pUserPricingModels - - user's pricing models to be used in order re-pricing process.
pUserLocale - - user's locale to be used when re-pricing order.
Throws:
atg.commerce.CommerceException - - if something goes wrong.