--- displayed_sidebar: servicesSidebar --- import ParameterTypes from "@site/src/components/ParameterTypes" # DiscountService Provides layer to manipulate discounts. ## Implements ## constructor ### Parameters ___ ## Properties `", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__container__", "type": "`any`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "__moduleDeclaration__", "type": "`Record`", "description": "", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "customerService_", "type": "[CustomerService](services.CustomerService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "discountConditionRepository_", "type": "Repository<[DiscountCondition](../../entities/classes/entities.DiscountCondition.mdx)> & `object`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "discountConditionService_", "type": "[DiscountConditionService](services.DiscountConditionService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "discountRepository_", "type": "Repository<[Discount](../../entities/classes/entities.Discount.mdx)>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "discountRuleRepository_", "type": "Repository<[DiscountRule](../../entities/classes/entities.DiscountRule.mdx)>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "eventBus_", "type": "[EventBusService](services.EventBusService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "featureFlagRouter_", "type": "`FlagRouter`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "giftCardRepository_", "type": "Repository<[GiftCard](../../entities/classes/entities.GiftCard.mdx)> & `object`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager_", "type": "`EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "newTotalsService_", "type": "[NewTotalsService](services.NewTotalsService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "productService_", "type": "[ProductService](services.ProductService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "regionService_", "type": "[RegionService](services.RegionService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "totalsService_", "type": "[TotalsService](services.TotalsService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager_", "type": "`undefined` \\| `EntityManager`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ___ ## Accessors ### activeManager\_ #### Returns ___ ## Methods ### addRegion Adds a region to the discount regions array. #### Parameters #### Returns ___ ### atomicPhase\_ 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. #### Type Parameters #### Parameters Promise<TResult>", "description": "the transactional work to be done", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "isolationOrErrorHandler", "type": "`IsolationLevel` \\| (`error`: `TError`) => Promise<void \\| TResult>", "description": "the isolation level to be used for the work.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "maybeErrorHandlerOrDontFail", "type": "(`error`: `TError`) => Promise<void \\| TResult>", "description": "Potential error handler", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### calculateDiscountForLineItem #### Parameters #### Returns ___ ### canApplyForCustomer #### Parameters #### Returns ___ ### create Creates a discount with provided data given that the data is validated. Normalizes discount code to uppercase. #### Parameters #### Returns ___ ### createDynamicCode Creates a dynamic code for a discount id. #### Parameters #### Returns ___ ### delete Deletes a discount idempotently #### Parameters #### Returns ___ ### deleteDynamicCode Deletes a dynamic code for a discount id. #### Parameters #### Returns ___ ### hasCustomersGroupCondition #### Parameters #### Returns ___ ### hasExpired #### Parameters #### Returns ___ ### hasNotStarted #### Parameters #### Returns ___ ### hasReachedLimit #### Parameters #### Returns ___ ### isDisabled #### Parameters #### Returns ___ ### isValidForRegion #### Parameters #### Returns ___ ### list #### Parameters #### Returns ___ ### listAndCount #### Parameters #### Returns ___ ### listByCodes List all the discounts corresponding to the given codes #### Parameters #### Returns ___ ### removeRegion Removes a region from the discount regions array. #### Parameters #### Returns ___ ### retrieve Gets a discount by id. #### Parameters #### Returns ___ ### retrieveByCode Gets the discount by discount code. #### Parameters #### Returns ___ ### shouldRetryTransaction\_ #### Parameters ` \\| `object`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns ___ ### update Updates a discount. #### Parameters #### Returns ___ ### validateDiscountForCartOrThrow #### Parameters #### Returns ___ ### validateDiscountForProduct #### Parameters #### Returns ___ ### validateDiscountRule\_ Creates a discount rule with provided data given that the data is validated. #### Type Parameters #### Parameters #### Returns ___ ### withTransaction #### Parameters #### Returns