Package de.hybris.platform.voucher
Interface VoucherModelService
- All Known Implementing Classes:
DefaultVoucherModelService
public interface VoucherModelService
The vouchers are redeemed on the total value of an order.
The calculation of the discount is done on the total value of the applicable product's prices,
inclusive of VAT.
Non-applicable products in the order are not subject to the discount rules.
To discover to which products in the order the voucher is applicable one could assign
various restrictions to the voucher.
-
Method Summary
Modifier and TypeMethodDescriptionbooleancheckVoucherCode(VoucherModel voucher, String voucherCode) Returns true if the specified voucher code is valid for this voucher.createVoucherInvalidation(VoucherModel voucher, String voucherCode, OrderModel order) generateVoucherCode(VoucherModel voucher) getApplicableEntries(VoucherModel voucher, AbstractOrderModel order) Returns all positions or parts of positions of the specified abstract order that are eligible for this voucher.getAppliedValue(VoucherModel voucher, AbstractOrderModel order) Returns a VoucherValue object representing the discount value of this voucher.getDiscountValue(VoucherModel voucher, AbstractOrderModel order) getViolatedRestrictions(VoucherModel voucher, AbstractOrderModel order) Returns all restrictions that are not fulfilled by the specified abstract order.getViolatedRestrictions(VoucherModel voucher, ProductModel product) Returns all restrictions that are not fulfilled by the specified product.getViolationMessages(VoucherModel voucher, AbstractOrderModel order) getViolationMessages(VoucherModel voucher, ProductModel product) getVoucherValue(VoucherModel voucher, AbstractOrderModel order) booleanisApplicable(VoucherModel voucher, AbstractOrderModel order) Returns true if the specified abstract order is eligible for this voucher.booleanisApplicable(VoucherModel voucher, ProductModel product) Returns true if the specified product is eligible for this voucher.booleanisReservable(VoucherModel voucher, String voucherCode, AbstractOrderModel order) booleanisReservable(VoucherModel voucher, String voucherCode, UserModel user) booleanredeem(VoucherModel voucher, String voucherCode, CartModel cart) WARNING!
If some methods for checking voucher availability are called before this method, all these methods have to be in one synchronize block! Suggested synchronization object is cart.redeem(VoucherModel voucher, String voucherCode, OrderModel order) voidrelease(VoucherModel voucher, String voucherCode, CartModel cart) voidrelease(VoucherModel voucher, String voucherCode, OrderModel order) reserve(VoucherModel voucher, String voucherCode, OrderModel order)
-
Method Details
-
createVoucherInvalidation
VoucherInvalidationModel createVoucherInvalidation(VoucherModel voucher, String voucherCode, OrderModel order) -
checkVoucherCode
Returns true if the specified voucher code is valid for this voucher.- Parameters:
voucher- the vouchervoucherCode- the voucher code to check validity of.- Returns:
- true if the specified voucher code is valid for this voucher, false else.
-
getApplicableEntries
Returns all positions or parts of positions of the specified abstract order that are eligible for this voucher.- Parameters:
voucher- the voucherorder- the abstract order to get eligible positions of.- Returns:
- a VoucherEntrySet containing a VoucherEntry object for every position that is fully or partly eligible for this voucher.
-
getAppliedValue
Returns a VoucherValue object representing the discount value of this voucher. If the voucher is applicable to the specified abstract order this value is calculated in consideration of the applicable value returned by getApplicableValue(AbstractOrder).- Parameters:
voucher- the voucherorder- the abstract order to get discount value of.- Returns:
- a VoucherValue representing the discount value of this voucher.
-
getDiscountValue
-
getViolatedRestrictions
Returns all restrictions that are not fulfilled by the specified abstract order.- Parameters:
voucher- the voucherorder- the abstract order to return violated restrictions for.- Returns:
- a List object containing all Restriction objects associated with this voucher that the specified abstract order does not fulfill.
-
getViolatedRestrictions
Returns all restrictions that are not fulfilled by the specified product.- Parameters:
voucher- the voucherproduct- the product to return violated restrictions for.- Returns:
- a List object containing all Restriction objects associated with this voucher that the specified product does not fulfill.
-
getViolationMessages
-
getViolationMessages
-
getVoucherValue
-
isApplicable
Returns true if the specified abstract order is eligible for this voucher. More formally, returns true if the specified abstract order fulfills all restrictions associated with this voucher.- Parameters:
voucher- the voucherorder- the abstract order to check whether it is eligible for this voucher.- Returns:
- true if the specified abstract order is eligible for this voucher, false else.
-
isApplicable
Returns true if the specified product is eligible for this voucher. More formally, returns true if the specified product fulfills all restrictions associated with this voucher.- Parameters:
voucher- the voucherproduct- the product to check whether it is eligible for this voucher.- Returns:
- true if the specified product is eligible for this voucher, false else.
-
isReservable
-
isReservable
-
redeem
boolean redeem(VoucherModel voucher, String voucherCode, CartModel cart) throws JaloPriceFactoryException WARNING!
If some methods for checking voucher availability are called before this method, all these methods have to be in one synchronize block! Suggested synchronization object is cart.- Throws:
JaloPriceFactoryException
-
redeem
-
release
void release(VoucherModel voucher, String voucherCode, OrderModel order) throws ConsistencyCheckException - Throws:
ConsistencyCheckException
-
release
void release(VoucherModel voucher, String voucherCode, CartModel cart) throws JaloPriceFactoryException - Throws:
JaloPriceFactoryException
-
reserve
-
generateVoucherCode
- Throws:
NoSuchAlgorithmException
-