Class OrderThresholdFreeVoucherPromotion
- java.lang.Object
-
- de.hybris.platform.util.BridgeAbstraction
-
- de.hybris.platform.jalo.Item
-
- de.hybris.platform.jalo.ExtensibleItem
-
- de.hybris.platform.jalo.c2l.LocalizableItem
-
- de.hybris.platform.jalo.GenericItem
-
- de.hybris.platform.promotions.jalo.GeneratedAbstractPromotion
-
- de.hybris.platform.promotions.jalo.AbstractPromotion
-
- de.hybris.platform.promotions.jalo.GeneratedOrderPromotion
-
- de.hybris.platform.promotions.jalo.OrderPromotion
-
- de.hybris.platform.promotions.jalo.GeneratedOrderThresholdFreeVoucherPromotion
-
- de.hybris.platform.promotions.jalo.OrderThresholdFreeVoucherPromotion
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Comparable
public class OrderThresholdFreeVoucherPromotion extends GeneratedOrderThresholdFreeVoucherPromotion
OrderThresholdFreeVoucherPromotion. Get a voucher free when you spend at least a certain value. For example: Get a free voucher when you spend over €150.00. Get a voucher when your order subtotal is at least the threshold value. Notes for implementers:
The OrderThresholdFreeVoucherPromotion does not actually apply the voucher to the cart. When this promotion fires and returns a PromotionResult, that result can be applied and undone. This has no side-effects, but the applied state of the result is stored. It is up to the site implementer to check for applied promotion results that are for OrderThresholdFreeVoucherPromotions and retrieve theGeneratedOrderThresholdFreeVoucherPromotion.getFreeVoucher()from the promotion and to give this to the user.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.GenericItem
GenericItem.GenericItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LocalizableItem.LocalizableItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.ExtensibleItem
ExtensibleItem.ExtensibleItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.Item
Item.AttributeFilter, Item.AttributeMode, Item.CachedGetter, Item.CachedSetter, Item.ItemAttributeMap, Item.ItemConstraint, Item.ItemImpl, Item.JaloCachedComputationException
-
-
Field Summary
-
Fields inherited from class de.hybris.platform.promotions.jalo.GeneratedOrderThresholdFreeVoucherPromotion
DEFAULT_INITIAL_ATTRIBUTES, FREEVOUCHER, MESSAGECOULDHAVEFIRED, MESSAGEFIRED, THRESHOLDTOTALS
-
Fields inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotion
CODE, DESCRIPTION, DETAILSURL, ENABLED, ENDDATE, IMMUTABLEKEY, IMMUTABLEKEYHASH, PRIORITY, PROMOTIONGROUP, PROMOTIONGROUPHANDLER, PROMOTIONTYPE, RESTRICTIONS, STARTDATE, TITLE
-
Fields inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LANGUAGE_FALLBACK_ENABLED
-
Fields inherited from class de.hybris.platform.jalo.Item
_CREATION_TIME_INTERNAL, _MODIFIED_TIME_INTERNAL, accessorLog, CREATION_TIME, DISABLE_ATTRIBUTE_CHECK, DISABLE_ITEMCHECK_BEFORE_REMOVABLE, EVEN, FEATURE_ACCESSMAP_QUALIFIER, HJMPTS, INITIAL_CREATION_FLAG, isJaloOnly, MODIFIED_TIME, NEGATIVE, NOT_FOUND, OWNER, PK, POSITIVE, SAVE_FROM_SERVICE_LAYER, staticTransientObjects, TYPE
-
Fields inherited from class de.hybris.platform.util.BridgeAbstraction
impl, tenant
-
-
Constructor Summary
Constructors Constructor Description OrderThresholdFreeVoucherPromotion()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbuildDataUniqueKey(SessionContext ctx, java.lang.StringBuilder builder)Build a unique data driven key.protected voidbuildPromotionResultDataUnigueKey(SessionContext ctx, PromotionResult promotionResult, java.lang.StringBuilder builder)Override buildPromotionResultDataUnigueKey.protected voiddeepCloneAttributes(SessionContext ctx, java.util.Map values)Called to deep clone attributes of this instance.java.util.List<PromotionResult>evaluate(SessionContext ctx, PromotionEvaluationContext promoContext)Evaluate whether a promotion can fire or not.java.lang.StringgetResultDescription(SessionContext ctx, PromotionResult result, java.util.Locale locale)Get a localized user presentable description for the result of this promotion.voidremove(SessionContext ctx)remove the item.-
Methods inherited from class de.hybris.platform.promotions.jalo.GeneratedOrderThresholdFreeVoucherPromotion
getAllMessageCouldHaveFired, getAllMessageCouldHaveFired, getAllMessageFired, getAllMessageFired, getDefaultAttributeModes, getFreeVoucher, getFreeVoucher, getMessageCouldHaveFired, getMessageCouldHaveFired, getMessageFired, getMessageFired, getThresholdTotals, getThresholdTotals, setAllMessageCouldHaveFired, setAllMessageCouldHaveFired, setAllMessageFired, setAllMessageFired, setFreeVoucher, setFreeVoucher, setMessageCouldHaveFired, setMessageCouldHaveFired, setMessageFired, setMessageFired, setThresholdTotals, setThresholdTotals
-
Methods inherited from class de.hybris.platform.promotions.jalo.OrderPromotion
checkRestrictions, getOrderSubtotalAfterDiscounts
-
Methods inherited from class de.hybris.platform.promotions.jalo.AbstractPromotion
buildDataUniqueKeyForCategories, buildDataUniqueKeyForPriceRows, buildDataUniqueKeyForProducts, buildMD5Hash, createImmutableDeepClone, createItem, deepClonePriceRows, deletePromotionPriceRows, findImmutablePromotionByUniqueKey, findOrCreateImmutableClone, formatMessage, getAllPromotionType, getDataUniqueKey, getPriceForOrder, getPromotionResultDataUnigueKey, getPromotionType, getRestrictions, setPromotionGroup, setRestrictions, toString
-
Methods inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotion
getAllPromotionType, getCode, getCode, getDescription, getDescription, getDetailsURL, getDetailsURL, getEndDate, getEndDate, getImmutableKey, getImmutableKey, getImmutableKeyHash, getImmutableKeyHash, getPriority, getPriority, getPriorityAsPrimitive, getPriorityAsPrimitive, getPromotionGroup, getPromotionGroup, getPromotionType, getRestrictions, getStartDate, getStartDate, getTitle, getTitle, isEnabled, isEnabled, isEnabledAsPrimitive, isEnabledAsPrimitive, setCode, setCode, setDescription, setDescription, setDetailsURL, setDetailsURL, setEnabled, setEnabled, setEnabled, setEnabled, setEndDate, setEndDate, setImmutableKey, setImmutableKey, setImmutableKeyHash, setImmutableKeyHash, setPriority, setPriority, setPriority, setPriority, setPromotionGroup, setRestrictions, setStartDate, setStartDate, setTitle, setTitle
-
Methods inherited from class de.hybris.platform.jalo.GenericItem
getImplementation, getInitialProperties, getNonInitialAttributes, getRelatedItems, setRelatedItems
-
Methods inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllValuesSessionContext, getLocalizedProperty, getLocalizedProperty, getLocalizedPropertyInternal, getLocalizedPropertyNames, getLocalizedPropertyNames, hasLanguage, isEmptyValue, isFallbackEnabled, removeLocalizedProperty, removeLocalizedProperty, setAllLocalizedProperties, setAllLocalizedProperties, setLocalizedProperty, setLocalizedProperty
-
Methods inherited from class de.hybris.platform.jalo.ExtensibleItem
createNonClassAccessor, getAllProperties, getAllProperties, getProperty, getProperty, getPropertyNames, getPropertyNames, removeProperty, removeProperty, setAllProperties, setAllProperties, setProperty, setProperty
-
Methods inherited from class de.hybris.platform.jalo.Item
addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addNegativePermission, addPermission, addPositivePermission, assureExtensionsLoaded, changeTypeAfterCreation, checkConstraint, checkItemPermission, checkMandatoryAttribute, checkMandatoryAttribute, checkPermission, checkPermission, checkRemovable, clearPermission, compareTo, ctx, doAfterRemove, doBeforeRemove, equals, getAccessorFor, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributesInternal, getAllLinkedItems, getAndCheckCacheBoundItem, getAttribute, getAttribute, getCacheBoundItem, getComposedType, getComposedTypePK, getCreationTime, getCurrentlyRemovingCount, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItemsCount, getLinkedItemsCount, getLinkedItemsCount, getModificationTime, getNegativePermissions, getOwner, getPermissionMap, getPermissions, getPersistenceVersion, getPK, getPositivePermissions, getRestrictedPrincipals, getSession, getSyncObject, getTenant, getTransientObject, getTransientObjectMap, hashCode, hasRegisteredClassAccessorFor, internal_registerClassAccessorFor, internal_registerNonClassAccessorFor, invalidateLocalCaches, isAlive, isCacheBound, isCurrentlyRemoving, isCurrentlyRemoving, isEmptyRelationValue, isInCreate, isInstanceOf, isItemCheckBeforeRemoveableDisabled, isMarkModifiedDisabled, isRelationLocalizationFallbackEnabled, newInstance, notifyExtensionsAfterItemCreation, notifyExtensionsBeforeItemCreation, notifyItemRemoval, notifyManagerAboutItemRemoval, readResolve, registerAccessFor, registerAccessFor, registerJaloInvalidationListeners, remove, removeItemCollection, removeItemCollection, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinks, removePartOfItems, removePartOfItems, setAllAttributes, setAllAttributes, setAllAttributesInternal, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAttribute, setAttribute, setAttributeFromString, setAttributeFromString, setCacheBound, setComposedType, setCreationTime, setImplementation, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setModificationTime, setNonInitialAttributes, setOwner, setPermissionsByMap, setTransientObject, setUseTA, useTA, writeReplace
-
Methods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
-
-
-
Method Detail
-
remove
public void remove(SessionContext ctx) throws ConsistencyCheckException
remove the item. you can delete this method if you don't want to intercept the removal of this item- Overrides:
removein classAbstractPromotion- Parameters:
ctx- A SessionContext object- Throws:
ConsistencyCheckException- if this item could not be removed for some reason
-
evaluate
public java.util.List<PromotionResult> evaluate(SessionContext ctx, PromotionEvaluationContext promoContext)
Description copied from class:AbstractPromotionEvaluate whether a promotion can fire or not.- Specified by:
evaluatein classAbstractPromotion- Parameters:
ctx- The context to run the operation inpromoContext- The evaluation context- Returns:
- the list of promotion results that this promotions creates
-
getResultDescription
public java.lang.String getResultDescription(SessionContext ctx, PromotionResult result, java.util.Locale locale)
Description copied from class:AbstractPromotionGet a localized user presentable description for the result of this promotion.- Specified by:
getResultDescriptionin classAbstractPromotion- Parameters:
ctx- The contextresult- The promotion result to be describedlocale- The locale to use to generate the message- Returns:
- a string description
-
buildDataUniqueKey
protected void buildDataUniqueKey(SessionContext ctx, java.lang.StringBuilder builder)
Description copied from class:AbstractPromotionBuild a unique data driven key. Build a unique key that is data driven. This will uniquely identify the rules used in this promotion and will form the immutable key for stored promotions. This method may be overridden in a subclass to customize the identifier.- Overrides:
buildDataUniqueKeyin classAbstractPromotion- Parameters:
ctx- The hybris contextbuilder- AStringBuilderused to build up the immutable key
-
deepCloneAttributes
protected void deepCloneAttributes(SessionContext ctx, java.util.Map values)
Called to deep clone attributes of this instance. The values map contains all the attributes defined on this instance. The map will be used to initialize a new instance of the Action that is a clone of this instance. This method can remove, replace or add to the Map of attributes.- Overrides:
deepCloneAttributesin classAbstractPromotion- Parameters:
ctx- The hybris contextvalues- The map to write into
-
buildPromotionResultDataUnigueKey
protected void buildPromotionResultDataUnigueKey(SessionContext ctx, PromotionResult promotionResult, java.lang.StringBuilder builder)
Override buildPromotionResultDataUnigueKey. This implementation ignores the consumed products because they are added by applying the action.- Overrides:
buildPromotionResultDataUnigueKeyin classAbstractPromotion- Parameters:
ctx- The hybris contextpromotionResult- the promotion resultbuilder- the builder to create the unique key in
-
-