--- displayed_sidebar: servicesSidebar --- import ParameterTypes from "@site/src/components/ParameterTypes" # TaxProviderService Finds tax providers and assists in tax related operations. ## Constructors ### constructor `**new TaxProviderService**(container)` #### 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": "cacheService_", "type": "[ICacheService](../interfaces/ICacheService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "container_", "type": "AwilixContainer<any>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "eventBus_", "type": "[IEventBusService](../interfaces/IEventBusService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "manager_", "type": "EntityManager", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "smTaxLineRepo_", "type": "Repository<[ShippingMethodTaxLine](ShippingMethodTaxLine.mdx)> & `{ deleteForCart: Method deleteForCart ; upsertLines: Method upsertLines }`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "taxLineRepo_", "type": "Repository<[LineItemTaxLine](LineItemTaxLine.mdx)> & `{ deleteForCart: Method deleteForCart ; upsertLines: Method upsertLines }`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "taxProviderRepo_", "type": "Repository<[TaxProvider](TaxProvider.mdx)>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "taxRateService_", "type": "[TaxRateService](TaxRateService.mdx)", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "transactionManager_", "type": "`undefined` \\| EntityManager", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ## Accessors ### activeManager\_ `Protected get**activeManager_**(): EntityManager` #### Returns EntityManager ## Methods ### atomicPhase\_ `Protected **atomicPhase_**(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. #### 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 Promise<TResult> ___ ### clearLineItemsTaxLines `**clearLineItemsTaxLines**(itemIds): Promise<void>` #### Parameters #### Returns Promise<void> ___ ### clearTaxLines `**clearTaxLines**(cartId): Promise<void>` #### Parameters #### Returns Promise<void> ___ ### createShippingTaxLines `**createShippingTaxLines**(shippingMethod, calculationContext): Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]>` Persists the tax lines relevant for a shipping method to the database. Used for return shipping methods. #### Parameters #### Returns Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]> ___ ### createTaxLines `**createTaxLines**(cartOrLineItems, calculationContext): Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]>` Persists the tax lines relevant for an order to the database. #### Parameters #### Returns Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]> ___ ### getCacheKey `Private **getCacheKey**(id, regionId): string` The cache key to get cache hits by. #### Parameters #### Returns `string` ___ ### getRegionRatesForProduct `**getRegionRatesForProduct**(productIds, region): Promise<Map<string, [TaxServiceRate](../types/TaxServiceRate.mdx)[]>>` Gets the tax rates configured for a product. The rates are cached between calls. #### Parameters #### Returns Promise<Map<string, [TaxServiceRate](../types/TaxServiceRate.mdx)[]>> ___ ### getRegionRatesForShipping `**getRegionRatesForShipping**(optionId, regionDetails): Promise<[TaxServiceRate](../types/TaxServiceRate.mdx)[]>` Gets the tax rates configured for a shipping option. The rates are cached between calls. #### Parameters #### Returns Promise<[TaxServiceRate](../types/TaxServiceRate.mdx)[]> ___ ### getShippingTaxLines `**getShippingTaxLines**(shippingMethod, calculationContext): Promise<[ShippingMethodTaxLine](ShippingMethodTaxLine.mdx)[]>` Gets the relevant tax lines for a shipping method. Note: this method doesn't persist the tax lines. Use createShippingTaxLines if you wish to persist the tax lines to the DB layer. #### Parameters #### Returns Promise<[ShippingMethodTaxLine](ShippingMethodTaxLine.mdx)[]> ___ ### getTaxLines `**getTaxLines**(lineItems, calculationContext): Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]>` Gets the relevant tax lines for an order or cart. If an order is provided the order's tax lines will be returned. If a cart is provided the tax lines will be computed from the tax rules and potentially a 3rd party tax plugin. Note: this method doesn't persist the tax lines. Use createTaxLines if you wish to persist the tax lines to the DB layer. #### Parameters #### Returns Promise<([LineItemTaxLine](LineItemTaxLine.mdx) \| [ShippingMethodTaxLine](ShippingMethodTaxLine.mdx))[]> ___ ### getTaxLinesMap `Protected **getTaxLinesMap**(items, calculationContext): Promise<[TaxLinesMaps](../types/TaxLinesMaps.mdx)>` Return a map of tax lines for line items and shipping methods #### Parameters #### Returns Promise<[TaxLinesMaps](../types/TaxLinesMaps.mdx)> ___ ### list `**list**(): Promise<[TaxProvider](TaxProvider.mdx)[]>` #### Returns Promise<[TaxProvider](TaxProvider.mdx)[]> ___ ### registerInstalledProviders `**registerInstalledProviders**(providers): Promise<void>` #### Parameters #### Returns Promise<void> ___ ### retrieveProvider `**retrieveProvider**(region): [ITaxService](../interfaces/ITaxService.mdx)` Retrieves the relevant tax provider for the given region. #### Parameters #### Returns [ITaxService](../interfaces/ITaxService.mdx) Promise<[ProviderTaxLine](../types/ProviderTaxLine.mdx)[]>", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ___ ### shouldRetryTransaction\_ `Protected **shouldRetryTransaction_**(err): boolean` #### Parameters ` \\| `{ code: string }`", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `boolean` ___ ### withTransaction `**withTransaction**(transactionManager?): [TaxProviderService](TaxProviderService.mdx)` #### Parameters #### Returns [TaxProviderService](TaxProviderService.mdx)