summaryrefslogtreecommitdiff
path: root/lib/super_good
diff options
context:
space:
mode:
authorJared Norman <jared@super.gd>2019-04-05 16:23:35 +1300
committerJared Norman <jared@super.gd>2019-04-05 16:26:15 +1300
commit7a53a1f4923215b7784f31e3d21435e091832f8b (patch)
treed093cbca92a3fb6d87265adf77f08130df1a86a1 /lib/super_good
parent0cb3cb6ef633898d609c0cc43c5e48b2d0afd280 (diff)
Make shipping amount calculator configurable
Necessary if you need to factor in order level adjustments (boooooo) into your shipping amounts to make things add up correctly.
Diffstat (limited to 'lib/super_good')
-rw-r--r--lib/super_good/solidus_taxjar.rb2
-rw-r--r--lib/super_good/solidus_taxjar/api_params.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb
index 4e7d9c5..6d6c47c 100644
--- a/lib/super_good/solidus_taxjar.rb
+++ b/lib/super_good/solidus_taxjar.rb
@@ -16,6 +16,7 @@ module SuperGood
attr_accessor :discount_calculator
attr_accessor :exception_handler
attr_accessor :line_item_tax_label_maker
+ attr_accessor :shipping_calculator
attr_accessor :shipping_tax_label_maker
attr_accessor :taxable_address_check
attr_accessor :test_mode
@@ -28,6 +29,7 @@ module SuperGood
Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}"
}
self.line_item_tax_label_maker = ->(taxjar_line_item, spree_line_item) { "Sales Tax" }
+ self.shipping_calculator = ->(order) { order.shipment_total }
self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" }
self.taxable_address_check = ->(address) { true }
self.test_mode = false
diff --git a/lib/super_good/solidus_taxjar/api_params.rb b/lib/super_good/solidus_taxjar/api_params.rb
index cb554a8..8596856 100644
--- a/lib/super_good/solidus_taxjar/api_params.rb
+++ b/lib/super_good/solidus_taxjar/api_params.rb
@@ -29,7 +29,7 @@ module SuperGood
transaction_id: order.number,
transaction_date: order.completed_at.to_formatted_s(:iso8601),
amount: order.total - order.additional_tax_total,
- shipping: order.shipment_total,
+ shipping: shipping(order),
sales_tax: order.additional_tax_total
)
end
@@ -94,6 +94,10 @@ module SuperGood
def discount(line_item)
::SuperGood::SolidusTaxJar.discount_calculator.new(line_item).discount
end
+
+ def shipping(order)
+ SuperGood::SolidusTaxJar.shipping_calculator.(order)
+ end
end
end
end