Skip to content

Latest commit

 

History

History
256 lines (184 loc) · 15.8 KB

CHANGELOG.md

File metadata and controls

256 lines (184 loc) · 15.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

  • Nothing yet.

v1.0.0

Added

  • #190 Add transaction sync batch show page
  • #188 Show transaction sync batches in user interface
  • #185 Backfill transactions in batches
  • #139 Refund and create a new order transaction when an order is recalculated
  • #175 Add request logging to TaxJar API requests
  • #138 Add admin UI for configuring reporting
  • #158 Update sandbox bin stub for solidus@3
  • #88 Fire shipment_shipped event when any shipment on an order ships.
  • #81 Add install generator
  • #98 Add generator for TaxJar transaction IDs
  • #103 Add reporting_enabled configuration option
  • #97 Add public API method to request the latest transaction associated with a solidus order.
  • #100 Add public API method to post a taxjar refund transaction for a solidus order.
  • #102 Add description to transaction line item params
  • #108 Add new model associated with a Spree::Order to represent taxjar order creation transactions
  • #114 Add new model associated with a SuperGood::SolidusTaxjar::OrderTransaction to represent taxjar refund creation transactions
  • #116 Update the OrderTransaction model to record the transaction date.
  • #109 Save OrderTransaction after API call to TaxJar
  • #111 Create a new taxjar transaction when a shipment is shipped.
  • #141 Handle unimplemented reporting features
  • #129 Report transaction asynchronously when a shipment is shipped.
  • #127 Add acceptance test for calculating taxes with the extension.
  • #160 Add tax categories API endpoint wrapper
  • #171 Display existing Nexus regions
  • #170 Hide all reporting features behind API key
  • #174 Provide a link to Taxjar state settings
  • #177 Make nexus caching configurable
  • #169 Add basic backfill transaction functionality
  • #176 Create refund transaction database models when reporting refunds.
  • #192 Handle failures that occur in the middle of refunding a transaction.
  • #194 Move the transaction backfill button to it's own unique page
  • #198 Don't create zero dollar transactions when an order is fully refunded.
  • #195 Run transaction backfills asynchronously
  • #200 Expand solidus gem into dependencies to support Solidus 3.2+
  • #183 Add ability to fetch tax codes from TaxJar and assign to tax categories in admin
  • #200 Render error message when backfilling transactions fails
  • #203 Remove outdated backfill button
  • #202 Add TaxJar transaction sync status to order show page
  • #204 Add page to render an orders TaxJar transactions
  • #201 Allow transaction backfills to be filtered by date range
  • #244 Let admins manually retry syncing failed TaxJar transactions
  • #255 Add a delay before reporting transactions
  • #253 Fix various bugs with reporting refund transactions

Changed

  • #95 Only require "state" for Canadian and US addresses
  • #181 Take all non-tax adjustment types into account when calculating a line item's discount
  • #182 Automatically create default Tax Rate
  • #205 Use nexus regions for taxable address checks
  • #218 Removed order_recalculated event backport
  • #216 Add deface as a dependency.
  • #217 Handle updates to orders that have not been reported
  • #227 Fix reporting for orders with refunds
  • #226 Refactor reporting subscriber logic
  • #238 Drop support for loading of reporting subscriber for Solidus < 2.11
  • #237 Sort order transactions by created_at
  • #236 Don't send cancelled or returned line items
  • #225 Create sync logs for replace transaction jobs
  • #231 Load Solidus factories using new conventions
  • #246 Fix bugs with sync retries when reporting or replacing a transaction fails

Removed

  • #137 Only run tests against Solidus 2.11. This also represents the drop of official support for Solidus 2.9 and 2.10.
  • #193 Bump version requirement for solidus_support to ">= 0.9.0", and as a result drop support for Rails 5.2.

Fixed

  • #107 Fix rails-engine binstub to point to correct engine entry point
  • #117 Fix migration install
  • #119 Move the install generator into the correct path so that it will be installed in the dummy app.
  • #250 Improve error handling for ReportTransactionJob
  • #254 Get tests and binstubs working against Solidus main

Development Changes

These changes only affect the development of this extension.

  • #120 Change default SOLIDUS_BRANCH and RAILS_VERSION
  • #137 Run tests against the most up to date versions of Solidus
  • #249 Don't depend on webdrivers gem

Upgrading from 0.18.x to 1.0.0

If you had previously configured a Spree::TaxRate with the name "Sales Tax", it can be deleted after upgrading, as a new Spree::TaxRate with the name "Solidus TaxJar Rate" will automatically be created. Alternatively, you can rename your existing Spree::TaxRate from "Sales Tax" to "Solidus TaxJar Rate". #182

v0.18.2

  • #71 Unlock ExecJS version. This reverts the temporary fix introduced in #69
  • #79 Relax Ruby required version to support Ruby 3.0+
  • #51 Add nexus regions method to API
  • #58 Take shipping promotions into account in default calculator
  • #59 Add pry debugging tools
  • #69 Lock ExecJS version
  • #37 Added a basic Taxjar settings admin interface which displays placeholder text.
  • #64 Provide Spree::Address.address2 to TaxJar address validation if it is present.
  • #80 Support order_recalculated event in < 2.11

v0.18.1

#52 fixes a critical bug in the API class that was released in v0.18.0. Please upgrade.

  • #47 Fixed bug in validate_address_params for addresses without a state
  • #52 Fixed critical bug in API class

v0.18.0

v0.18.0 was removed due to a regression in the API class that was fixed in #52 and v0.18.1

  • #21 Migrated project to solidus_dev_support
  • #22 Added support for TaxJar address validation API through SuperGood::SolidusTaxJar::Addresses class
  • #34 Include API version in request headers
  • #38 Added a rails engine to support future solidus backend UI
  • #43 Support zeitwerk loading

Breaking Changes:

  • Module name SolidusTaxJar renamed to SolidusTaxjar
  • Class name API renamed to Api
  • Class name APIParams renamed to ApiParams

Upgrading from 0.17.X to 0.18.X

If you're currently using version 0.17.X and want to upgrade to 0.18.X, follow these steps:

  • Rename any instances of the module SolidusTaxJar to SolidusTaxjar
  • Rename any instances of the class API to Api
  • Rename any instances of the class APIParams to ApiParams

v0.17.1

  • Fixed bug where shipping calculator was not used for order shipping param. (Thanks @spaghetticode!)

v0.17.0

  • Added SuperGood::SolidusTaxJar.custom_order_params to allow for custom overrides to the parameters sent to TaxJar when calculating order taxes. For example, if you needed to send a custom nexus address you could do:
    SuperGood::SolidusTaxJar.custom_order_params = ->(order) {
      {
        nexus_addresses: [
          {
            id: 'Main Location',
            country: 'AU',
            zip: 'NSW 2000',
            city: 'Sydney',
            street: '483 George St',
          }
        ]
      }
    }
    The callback receives the Spree::Order that the params are for and the return value can override existing values like the order's ID.

v0.16.0

  • Fix #incomplete_address? method to be friendly also to completely blank addresses.

  • Added SuperGood::SolidusTaxJar::TaxRateCalculator for retrieving the tax rate for a given Spree::Address. The calculator follows TaxCalculator conventions by relying on address validators and custom exception handling.

v0.15.2

  • Add order number to param logging.

v0.15.1

  • Add support for request/response logging.

v0.15.0

  • Made sure cache key is a string, instead of a giant nested hash/array structure that probably won't get interpreted by Rails well. Still not happy with the caching behaviour, but it's configurable.

v0.14.0

  • Added SuperGood::SolidusTaxJar.taxable_order_check option which can be set to a proc that receives the order and will prevent actual tax calculation from occurring if it returns false. If your app has introduced a method like Spree::Order#complimentary?, you could avoid trying to compute taxes on complimentary orders by doing the following in an initializer:
    SuperGood::SolidusTaxJar.taxable_order_check = ->(order) { order.complimentary? }

v0.13.0

  • Report order.user_id as customer_id when calculating taxes and creating transactions. This enables the use of per customer exemptions.

v0.12.0

  • Report no tax collected on order and line items when order total zeroed out.

v0.11.1

  • Avoid sending negative amounts for order totals.

v0.11.0

  • Avoid sending 0 quantity line items. TaxJar doesn't like them.

v0.10.0

  • Make shipping amounts configurable to make it easier to support order-level adjustments.

v0.9.1

  • Fixed unreliable default cache key implementation.

v0.9.0

  • Made response cache key and cache duration configurable.

v0.8.0

  • Increased response caching time to 3 hours.

v0.7.0

  • Switched to sending the full list of line items when creating/updating transactions in TaxJar.

v0.6.2

  • Fixed issued where orders without tax address would cause errors because Spree::Order#tax_address will return a Spree::Tax::TaxLocation when called on an order without a tax address. Spree::Tax::TaxLocation isn't enough like a real address and this was causing exceptions.

    To fix this SuperGood::SolidusTaxJar#incomplete_address? was updated to treat Spree::Tax::TaxLocations as "incomplete". (Thanks to @JuanCrg90!)

v0.6.1

Warning: v0.6.1 has a critical bug and should not be used.

  • Stopped using the deprecated method Spree::Address#empty? in favour of simply checking that we have all of the fields on the address required for doing a TaxJar lookup.

v0.6.0

  • Added SuperGood::SolidusTaxJar.shipping_tax_label_maker for customizing the labels on the tax adjustments on shipments.
  • Added SuperGood::SolidusTaxJar.line_item_tax_label_maker for customizing the labels on the line iteme tax adjustments.

v0.5.0

  • Moved exception handler configuration to SuperGood::SolidusTaxJar.exception_handler from SuperGood::SolidusTaxJar::TaxCalculator.exception_handler. Now all the configuration options are in the same place.
  • Added SuperGood::SolidusTaxJar.taxable_address_check option which can be set to a block that receives the address and will prevent actual tax calculator from occurring if it returns false. If your app has introduced a method like Spree::Address#us?, you could avoid trying to compute taxes on non-US orders by doing the following in an initializer:
    SuperGood::SolidusTaxJar.taxable_address_check = ->(address) { address.us? }