DiscountService
internal.internal.DiscountService
Provides layer to manipulate discounts.
Implements
Properties
__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
EntityManagerEntityManagerRequiredInherited from
TransactionBaseService.activeManager_
Methods
addRegion
addRegion(discountId, regionId): Promise<Discount>
Adds a region to the discount regions array.
Parameters
discountIdstringRequiredregionIdstringRequiredReturns
Promise<Discount>
the result of the update operation
atomicPhase_
Protected atomicPhase_<TResult, 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>RequiredInherited from
TransactionBaseService.atomicPhase_
calculateDiscountForLineItem
calculateDiscountForLineItem(discountId, lineItem, calculationContextData): Promise<number>
Parameters
discountIdstringRequiredReturns
Promise<number>
PromisePromise<number>Required
PromisePromise<number>RequiredcanApplyForCustomer
canApplyForCustomer(discountRuleId, customerId): Promise<boolean>
Parameters
discountRuleIdstringRequiredcustomerIdundefined | stringRequiredReturns
Promise<boolean>
PromisePromise<boolean>Required
PromisePromise<boolean>Requiredcreate
create(discount): Promise<Discount>
Creates a discount with provided data given that the data is validated. Normalizes discount code to uppercase.
Parameters
Returns
Promise<Discount>
the result of the create operation
createDynamicCode
createDynamicCode(discountId, data): Promise<Discount>
Creates a dynamic code for a discount id.
Parameters
discountIdstringRequiredReturns
Promise<Discount>
the newly created dynamic code
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>Required
PromisePromise<boolean>Requiredlist
list(selector?, config?): Promise<Discount[]>
Parameters
selectorFilterableDiscountPropsconfigFindConfig<Discount>Returns
Promise<Discount[]>
the result of the find operation
listAndCount
listAndCount(selector?, config?): Promise<[Discount[], number]>
Parameters
selectorFilterableDiscountPropsconfigFindConfig<Discount>Returns
Promise<[Discount[], number]>
the result of the find operation
listByCodes
listByCodes(discountCodes, config?): Promise<Discount[]>
List all the discounts corresponding to the given codes
Parameters
discountCodesstring[]RequiredconfigFindConfig<Discount>Returns
Promise<Discount[]>
the discounts
removeRegion
removeRegion(discountId, regionId): Promise<Discount>
Removes a region from the discount regions array.
Parameters
discountIdstringRequiredregionIdstringRequiredReturns
Promise<Discount>
the result of the update operation
retrieve
retrieve(discountId, config?): Promise<Discount>
Gets a discount by id.
Parameters
discountIdstringRequiredconfigFindConfig<Discount>Returns
Promise<Discount>
the discount
retrieveByCode
retrieveByCode(discountCode, config?): Promise<Discount>
Gets the discount by discount code.
Parameters
discountCodestringRequiredconfigFindConfig<Discount>Returns
Promise<Discount>
the discount
shouldRetryTransaction_
Protected shouldRetryTransaction_(err): boolean
Parameters
errRecord<string, unknown> | { code: string }RequiredReturns
boolean
booleanbooleanInherited from
TransactionBaseService.shouldRetryTransaction_
update
update(discountId, update): Promise<Discount>
Updates a discount.
Parameters
discountIdstringRequiredReturns
Promise<Discount>
the result of the update operation
validateDiscountForCartOrThrow
validateDiscountForCartOrThrow(cart, discount): Promise<void>
Parameters
Returns
Promise<void>
PromisePromise<void>RequiredvalidateDiscountForProduct
validateDiscountForProduct(discountRuleId, productId?): Promise<boolean>
Parameters
discountRuleIdstringRequiredproductIdstringReturns
Promise<boolean>
PromisePromise<boolean>Required
PromisePromise<boolean>RequiredvalidateDiscountRule_
validateDiscountRule_<T>(discountRule): T
Creates a discount rule with provided data given that the data is validated.
TobjectRequiredParameters
discountRuleTRequiredReturns
T
withTransaction
withTransaction(transactionManager?): DiscountService
Parameters
transactionManagerEntityManager