TaxLineCalculationStrategy
TaxLineCalculationStrategy
This strategy defines how the TaxLines on OrderItems are calculated. By default, the DefaultTaxLineCalculationStrategy is used, which directly applies a single TaxLine based on the applicable TaxRate.
However, custom strategies may use any suitable method for calculating TaxLines. For example, a third-party tax API or a lookup of a custom tax table may be used.
Signature
interface TaxLineCalculationStrategy extends InjectableStrategy {
calculate(args: CalculateTaxLinesArgs): TaxLine[] | Promise<TaxLine[]>;
}
Extends
Members
calculate
method
type:
(args: CalculateTaxLinesArgs) => TaxLine[] | Promise<TaxLine[]>
This method is called when calculating the Order prices. Since it will be called
whenever an Order is modified in some way (adding/removing items, applying promotions,
setting ShippingMethod etc), care should be taken so that calling the function does
not adversely impact overall performance. For example, by using caching and only
calling external APIs when absolutely necessary.
CalculateTaxLinesArgs
Signature
interface CalculateTaxLinesArgs {
ctx: RequestContext;
order: Order;
orderLine: OrderLine;
applicableTaxRate: TaxRate;
}
Members
ctx
property
type:
RequestContext
order
property
type:
Order
orderLine
property
type:
OrderLine
applicableTaxRate
property
type:
TaxRate