Avoid duplicate queries when running estimator taxation. #2219
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix for #2204
Instead of loading the tax rates for the order for each rate which needs taxing, we can perform the SQL queries only once.
This is done by building a single instance of the shipping_rate_tax_calculator_class for a shipment, and calling
calculate
on that object for each rate, allowing it to cache the order rates.This removes the
shipping_rate_taxer_class
config option, which was necessary to useshipping_rate_tax_calculator_class
directly from the estimator.I'm not sure this is the best way to achieve this, but I hope it illustrates the issue and one solution to it.