atg.projects.store.promotion
Class StoreGWPManager

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.promotion.GWPManager
              extended by atg.projects.store.promotion.StoreGWPManager
All Implemented Interfaces:
atg.commerce.order.OrderMergeListener, 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.PostStartupAction, atg.nucleus.Service, atg.nucleus.ServiceListener, java.util.EventListener

public class StoreGWPManager
extends atg.commerce.promotion.GWPManager

CRS extension of core commerce GiftWithPurchaseFormHandler.

Version:
$Id: //hosting-blueprint/B2CBlueprint/version/10.2.1/EStore/src/atg/projects/store/promotion/StoreGWPManager.java#3 $$Change: 796506 $
Author:
ATG

Nested Class Summary
 
Nested classes/interfaces inherited from class atg.commerce.promotion.GWPManager
atg.commerce.promotion.GWPManager.GWPPipelineErrorHandler
 
Field Summary
static java.lang.String CLASS_VERSION
          Class version string
protected  StoreInventoryManager mInventoryManager
          property: inventoryManager.
 
Fields inherited from class atg.commerce.promotion.GWPManager
mCatalogProperties, mCatalogTools, mCategoryQuery, mCommerceItemManager, mGwpMarkerManager, mJMSEnabled, mPricingTools, mProductContentGroupQuery, mPromotionTools, mPurchaseProcessHelper, mRepositoryGroupContainerService, mSiteTools, mSkuContentGroupQuery, mSkuToCommerceItemTypeMapping, MY_RESOURCE_NAME, PROMOTION_ID_DELIMETER, sResourceBundle
 
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
StoreGWPManager()
           
 
Method Summary
 atg.commerce.promotion.GiftWithPurchaseSelectionChoice[] getGiftSelectionChoices(java.lang.String pGiftType, java.lang.String pGiftDetail, boolean pReturnSkus, java.util.Map pExtraParameters)
          Get gift selection choices filtered by products and SKUs start\end date.
 StoreInventoryManager getInventoryManager()
           
 long getItemGiftQuantity(atg.commerce.order.Order pOrder, atg.commerce.order.CommerceItem pItem)
          Get the gift quantity for the given commerce item.
 long getQuantityToBeSelected(atg.commerce.order.Order pOrder)
          Returns total quantity of items to be selected for the given order.
 atg.service.collections.validator.CollectionObjectValidator[] getValidators()
           
protected  void markGiftAddAsFailed(atg.repository.RepositoryItem pOrderMarker, long pQuantity)
          Invoked when a problem occurs adding the GWP item.
 atg.commerce.order.CommerceItem processAutoAdd(atg.repository.RepositoryItem pOrderMarker, long pQuantityToAdd, java.util.List<atg.commerce.order.purchase.AddCommerceItemInfo> pNewItemInfos, java.util.List<atg.commerce.order.CommerceItem> pNewItems, atg.commerce.pricing.PricingContext pPricingContext, java.util.Map pExtraParameters)
           Override commerce implementation to check inventory level of gift item marked as auto add.
 void setInventoryManager(StoreInventoryManager pInventoryManager)
           
 void setValidators(atg.service.collections.validator.CollectionObjectValidator[] pValidators)
           
 boolean validateGiftItem(atg.repository.RepositoryItem item)
          Validate repository item (SKU or product) using configured set of validators.
 
Methods inherited from class atg.commerce.promotion.GWPManager
addGiftQuantity, buildPromotionId, canRepriceItem, changeGiftQuantity, determineSiteIdForSkuId, doStartService, extractPromotionId, extractPromotionIndex, getAutoAddGiftSelectionChoice, getCatalogKey, getCatalogProperties, getCatalogTools, getCategoryQuery, getCommerceItemManager, getCommerceItemType, getGwpMarkerManager, getLocale, getPricingTools, getProductContentGroupQuery, getProductForSku, getProductGWPSelectionChoice, getPromotionTools, getPurchaseProcessHelper, getRepositoryGroupContainerService, getSelections, getSelections, getSelections, getSelections, getSiteTools, getSkuContentGroupQuery, getSkuToCommerceItemTypeMapping, invalidateGift, invalidateGiftQuantity, isJMSEnabled, isProductValidForSites, isSendMessages, isTransactionMarkedAsRollBack, makeGiftSelection, mergeItemMarker, mirrorOrderMarkers, ordersMerged, performAction, priceQuantityToFree, processGWPInfos, qualifyGift, removeAutoAddedQuantity, removeGiftQuantity, resetOrderMarkerQuantitiesfromItemMarkers, sendApplicationMessages, sendMessage, sendNonDiscountableFailureApplicationMessages, sendTargetedFailureApplicationMessages, setCatalogProperties, setCatalogTools, setCategoryQuery, setCommerceItemManager, setGwpMarkerManager, setJMSEnabled, setPricingTools, setProductContentGroupQuery, setPromotionTools, setPurchaseProcessHelper, setRepositoryGroupContainerService, setSiteTools, setSkuContentGroupQuery, setSkuToCommerceItemTypeMapping, updateRemainingQuantities, updateSelectableQuantity, updateTargetedQuantities, validateGiftSelection
 
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 final java.lang.String CLASS_VERSION
Class version string

See Also:
Constant Field Values

mInventoryManager

protected StoreInventoryManager mInventoryManager
property: inventoryManager.

Constructor Detail

StoreGWPManager

public StoreGWPManager()
Method Detail

getInventoryManager

public StoreInventoryManager getInventoryManager()
Returns:
the inventoryManager.

setInventoryManager

public void setInventoryManager(StoreInventoryManager pInventoryManager)
Parameters:
pInventoryManager - - the inventoryManager.

getValidators

public atg.service.collections.validator.CollectionObjectValidator[] getValidators()
Returns:
array of validators that will be applied to gifts

setValidators

public void setValidators(atg.service.collections.validator.CollectionObjectValidator[] pValidators)
Parameters:
validators - the validators to set

getQuantityToBeSelected

public long getQuantityToBeSelected(atg.commerce.order.Order pOrder)
                             throws atg.commerce.CommerceException
Returns total quantity of items to be selected for the given order.

Parameters:
pOrder - - Order instance.
Returns:
quantity of total items to be selected for the given order.
Throws:
atg.markers.MarkerException - if error occurs during selection retrieval.
atg.commerce.CommerceException

getItemGiftQuantity

public long getItemGiftQuantity(atg.commerce.order.Order pOrder,
                                atg.commerce.order.CommerceItem pItem)
Get the gift quantity for the given commerce item.

Parameters:
pOrder - - the order to be processed.
pItem - - the item that will determine the gift quantity.
Returns:
gift quantity for the commerce item.

processAutoAdd

public atg.commerce.order.CommerceItem processAutoAdd(atg.repository.RepositoryItem pOrderMarker,
                                                      long pQuantityToAdd,
                                                      java.util.List<atg.commerce.order.purchase.AddCommerceItemInfo> pNewItemInfos,
                                                      java.util.List<atg.commerce.order.CommerceItem> pNewItems,
                                                      atg.commerce.pricing.PricingContext pPricingContext,
                                                      java.util.Map pExtraParameters)
                                               throws atg.commerce.pricing.PricingException

Override commerce implementation to check inventory level of gift item marked as auto add.

*

Mark item as failed if out of stock.

Overrides:
processAutoAdd in class atg.commerce.promotion.GWPManager
Parameters:
pOrderMarker - - the order marker.
pQuantityToAdd - - the quantity to add.
pNewItemInfos - - List of AddCommerceItemInfo objects.
pNewItems - - List of CommerceItem objects.
pPricingContext - - the PricingContext to be used.
pExtraParameters - - Optional map of extra parameters.
Returns:
the newly added commerce item.
Throws:
atg.commerce.pricing.PricingException - when there is an error auto-adding the item.

validateGiftItem

public boolean validateGiftItem(atg.repository.RepositoryItem item)
Validate repository item (SKU or product) using configured set of validators.

Parameters:
item - the item to validate
Returns:
false - if item fails validation, true if there should be no validation or if item is valid

getGiftSelectionChoices

public atg.commerce.promotion.GiftWithPurchaseSelectionChoice[] getGiftSelectionChoices(java.lang.String pGiftType,
                                                                                        java.lang.String pGiftDetail,
                                                                                        boolean pReturnSkus,
                                                                                        java.util.Map pExtraParameters)
                                                                                 throws atg.commerce.CommerceException
Get gift selection choices filtered by products and SKUs start\end date.

Overrides:
getGiftSelectionChoices in class atg.commerce.promotion.GWPManager
Parameters:
pGiftType - String gift type, e.g. sku
pGiftDetail - String gift detail, e.g. sku1234
pReturnSkus - boolean, true to return the SKUs for all choices
pExtraParameters - Map of extra parameters (optional)
Returns:
Array of GiftWithPurchaseSelectionChoice
Throws:
atg.commerce.CommerceException

markGiftAddAsFailed

protected void markGiftAddAsFailed(atg.repository.RepositoryItem pOrderMarker,
                                   long pQuantity)
                            throws atg.commerce.pricing.PricingException
Invoked when a problem occurs adding the GWP item.

Parameters:
pOrderMarker -
pQuantity -
Throws:
atg.commerce.pricing.PricingException