DiscountService
Provides layer to manipulate discounts.
Implements
Constructors
constructor
**new DiscountService**(«destructured»)
Parameters
__namedParametersObjectRequiredProperties
__configModule__Record<string, unknown>__container__anyRequired__moduleDeclaration__Record<string, unknown>discountConditionRepository_Repository<DiscountCondition> & { addConditionResources: Method addConditionResources ; canApplyForCustomer: Method canApplyForCustomer ; findOneWithDiscount: Method findOneWithDiscount ; getJoinTableResourceIdentifiers: Method getJoinTableResourceIdentifiers ; isValidForProduct: Method isValidForProduct ; queryConditionTable: Method queryConditionTable ; removeConditionResources: Method removeConditionResources }RequiredgiftCardRepository_Repository<GiftCard> & { listGiftCardsAndCount: Method listGiftCardsAndCount }Requiredmanager_EntityManagerRequiredtransactionManager_undefined | EntityManagerRequiredAccessors
activeManager_
Protected get**activeManager_**(): EntityManager
Returns
EntityManager
EntityManagerEntityManagerRequiredMethods
addRegion
**addRegion**(discountId, regionId): Promise<[Discount](/references/services/classes/Discount)>
Adds a region to the discount regions array.
Parameters
discountIdstringRequiredregionIdstringRequiredReturns
Promise<Discount>
atomicPhase_
Protected **atomicPhase_**<TypeParameter TResult, TypeParameter TError>(work, isolationOrErrorHandler?, maybeErrorHandlerOrDontFail?): Promise<TResult>
Wraps some work within a transactional block. If the service already has a transaction manager attached this will be reused, otherwise a new transaction manager is created.
TResultobjectRequiredTErrorobjectRequiredParameters
work(transactionManager: EntityManager) => Promise<TResult>RequiredisolationOrErrorHandlerIsolationLevel | (error: TError) => Promise<void | TResult>maybeErrorHandlerOrDontFail(error: TError) => Promise<void | TResult>Returns
Promise<TResult>
PromisePromise<TResult>RequiredcalculateDiscountForLineItem
**calculateDiscountForLineItem**(discountId, lineItem, calculationContextData): Promise<number>
Parameters
discountIdstringRequiredReturns
Promise<number>
PromisePromise<number>RequiredcanApplyForCustomer
**canApplyForCustomer**(discountRuleId, customerId): Promise<boolean>
Parameters
discountRuleIdstringRequiredcustomerIdundefined | stringRequiredReturns
Promise<boolean>
PromisePromise<boolean>Requiredcreate
**create**(discount): Promise<[Discount](/references/services/classes/Discount)>
Creates a discount with provided data given that the data is validated. Normalizes discount code to uppercase.
Parameters
Returns
Promise<Discount>
createDynamicCode
**createDynamicCode**(discountId, data): Promise<[Discount](/references/services/classes/Discount)>
Creates a dynamic code for a discount id.
Parameters
discountIdstringRequiredReturns
Promise<Discount>
delete
**delete**(discountId): Promise<void>
Deletes a discount idempotently
Parameters
discountIdstringRequiredReturns
Promise<void>
PromisePromise<void>RequireddeleteDynamicCode
**deleteDynamicCode**(discountId, code): Promise<void>
Deletes a dynamic code for a discount id.
Parameters
discountIdstringRequiredcodestringRequiredReturns
Promise<void>
PromisePromise<void>RequiredhasCustomersGroupCondition
**hasCustomersGroupCondition**(discount): boolean
Parameters
Returns
boolean
booleanbooleanhasExpired
**hasExpired**(discount): boolean
Parameters
Returns
boolean
booleanbooleanhasNotStarted
**hasNotStarted**(discount): boolean
Parameters
Returns
boolean
booleanbooleanhasReachedLimit
**hasReachedLimit**(discount): boolean
Parameters
Returns
boolean
booleanbooleanisDisabled
**isDisabled**(discount): boolean
Parameters
Returns
boolean
booleanbooleanisValidForRegion
**isValidForRegion**(discount, region_id): Promise<boolean>
Parameters
region_idstringRequiredReturns
Promise<boolean>
PromisePromise<boolean>Requiredlist
**list**(selector?, config?): Promise<[Discount](/references/services/classes/Discount)[]>
Parameters
Default: {}
Returns
Promise<Discount[]>
listAndCount
**listAndCount**(selector?, config?): Promise<[[Discount](/references/services/classes/Discount)[], number]>
Parameters
Default: {}
Returns
Promise<[Discount[], number]>
listByCodes
**listByCodes**(discountCodes, config?): Promise<[Discount](/references/services/classes/Discount)[]>
List all the discounts corresponding to the given codes
Parameters
discountCodesstring[]RequiredDefault: {}
Returns
Promise<Discount[]>
removeRegion
**removeRegion**(discountId, regionId): Promise<[Discount](/references/services/classes/Discount)>
Removes a region from the discount regions array.
Parameters
discountIdstringRequiredregionIdstringRequiredReturns
Promise<Discount>
retrieve
**retrieve**(discountId, config?): Promise<[Discount](/references/services/classes/Discount)>
Gets a discount by id.
Parameters
discountIdstringRequiredDefault: {}
Returns
Promise<Discount>
retrieveByCode
**retrieveByCode**(discountCode, config?): Promise<[Discount](/references/services/classes/Discount)>
Gets the discount by discount code.
Parameters
discountCodestringRequiredDefault: {}
Returns
Promise<Discount>
shouldRetryTransaction_
Protected **shouldRetryTransaction_**(err): boolean
Parameters
errRecord<string, unknown> | { code: string }RequiredReturns
boolean
booleanbooleanupdate
**update**(discountId, update): Promise<[Discount](/references/services/classes/Discount)>
Updates a discount.
Parameters
discountIdstringRequiredReturns
Promise<Discount>
validateDiscountForCartOrThrow
**validateDiscountForCartOrThrow**(cart, discount): Promise<void>
Parameters
Returns
Promise<void>
PromisePromise<void>RequiredvalidateDiscountForProduct
**validateDiscountForProduct**(discountRuleId, productId?): Promise<boolean>
Parameters
discountRuleIdstringRequiredproductIdstringReturns
Promise<boolean>
PromisePromise<boolean>RequiredvalidateDiscountRule_
**validateDiscountRule_**<TypeParameter T>(discountRule): T
Creates a discount rule with provided data given that the data is validated.
TobjectRequiredParameters
discountRuleTRequiredReturns
T
withTransaction
**withTransaction**(transactionManager?): [DiscountService](/references/services/classes/DiscountService)
Parameters
transactionManagerEntityManager