diff options
author | Jared Norman <jared@super.gd> | 2019-01-31 09:24:44 -0800 |
---|---|---|
committer | Jared Norman <jared@super.gd> | 2019-01-31 09:24:44 -0800 |
commit | 8581484be15ed19bbd37d861b082ba1e9b34b978 (patch) | |
tree | c80167bd82aa785d9eac6006c7e76a6920c9e3d1 /lib | |
parent | 61837b129c1e580085b0f1abc1ec2f51b4b8142b (diff) |
Add ability to create refunds
Diffstat (limited to 'lib')
-rw-r--r-- | lib/super_good/solidus_taxjar/api.rb | 4 | ||||
-rw-r--r-- | lib/super_good/solidus_taxjar/api_params.rb | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/super_good/solidus_taxjar/api.rb b/lib/super_good/solidus_taxjar/api.rb index 61fecae..7309a64 100644 --- a/lib/super_good/solidus_taxjar/api.rb +++ b/lib/super_good/solidus_taxjar/api.rb @@ -32,6 +32,10 @@ module SuperGood taxjar_client.delete_order order.number end + def create_refund_for(reimbursement) + taxjar_client.create_refund APIParams.refund_params(reimbursement) + end + private attr_reader :taxjar_client diff --git a/lib/super_good/solidus_taxjar/api_params.rb b/lib/super_good/solidus_taxjar/api_params.rb index f75713c..b848eee 100644 --- a/lib/super_good/solidus_taxjar/api_params.rb +++ b/lib/super_good/solidus_taxjar/api_params.rb @@ -33,6 +33,21 @@ module SuperGood ) end + def refund_params(reimbursement) + additional_taxes = reimbursement.return_items.sum(&:additional_tax_total) + + {} + .merge(order_address_params(reimbursement.order.tax_address)) + .merge( + transaction_id: reimbursement.number, + transaction_reference_id: reimbursement.order.number, + transaction_date: reimbursement.order.completed_at.to_formatted_s(:iso8601), + amount: reimbursement.total - additional_taxes, + shipping: 0, + sales_tax: additional_taxes + ) + end + private def order_address_params(address) |