summaryrefslogtreecommitdiff
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
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.
-rw-r--r--CHANGELOG.md2
-rw-r--r--lib/super_good/solidus_taxjar.rb2
-rw-r--r--lib/super_good/solidus_taxjar/api_params.rb6
3 files changed, 9 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c942fb1..5ae6633 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
## master
+- Make shipping amounts configurable to make it easier to support order-level adjustments.
+
## v0.9.1
- Fixed unreliable default cache key implementation.
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