diff options
Diffstat (limited to 'lib/super_good')
-rw-r--r-- | lib/super_good/solidus_taxjar.rb | 2 | ||||
-rw-r--r-- | lib/super_good/solidus_taxjar/tax_calculator.rb | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb index 6d6c47c..af2c7e8 100644 --- a/lib/super_good/solidus_taxjar.rb +++ b/lib/super_good/solidus_taxjar.rb @@ -19,6 +19,7 @@ module SuperGood attr_accessor :shipping_calculator attr_accessor :shipping_tax_label_maker attr_accessor :taxable_address_check + attr_accessor :taxable_order_check attr_accessor :test_mode end @@ -32,6 +33,7 @@ module SuperGood self.shipping_calculator = ->(order) { order.shipment_total } self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" } self.taxable_address_check = ->(address) { true } + self.taxable_order_check = ->(order) { true } self.test_mode = false end end diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb index 0ddd50f..c7d44a9 100644 --- a/lib/super_good/solidus_taxjar/tax_calculator.rb +++ b/lib/super_good/solidus_taxjar/tax_calculator.rb @@ -13,6 +13,7 @@ module SuperGood def calculate return no_tax if SuperGood::SolidusTaxJar.test_mode return no_tax if incomplete_address?(order.tax_address) || order.line_items.none? + return no_tax unless taxable_order? order return no_tax unless taxable_address? order.tax_address cache do @@ -133,6 +134,10 @@ module SuperGood SuperGood::SolidusTaxJar.exception_handler end + def taxable_order?(order) + SuperGood::SolidusTaxJar.taxable_order_check.(order) + end + def taxable_address?(address) SuperGood::SolidusTaxJar.taxable_address_check.(address) end |