Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/solidusio/solidus_avatax

Avatax integration with Solidus
https://github.com/solidusio/solidus_avatax

avatax solidus

Last synced: 3 months ago
JSON representation

Avatax integration with Solidus

Awesome Lists containing this project

README

        

Solidus Avatax
===========

[![Build Status](https://travis-ci.org/solidusio/solidus_avatax.svg?branch=master)](https://travis-ci.org/solidusio/solidus_avatax)

Avatax integration with Solidus.

**WARNING**: Currently, Solidus Team is not supporting this extension. If you need to implement Avalara AvaTax functionality into your store, please have a look at [solidus_avatax_certified](https://github.com/boomerdigital/solidus_avatax_certified) by Boomer Digital.

Installation
------------

In your Gemfile:

```ruby
gem "solidus_avatax"
```

Then run from the command line:

```shell
bundle install
rails g solidus_avatax:install
```

Configuration
-------------

#### Disabling Avatax and Avatax API Timeouts

In case of service problems or outages on Avatax's end, you can disable Avatax
or change the API timeout. These values are stored in the database so that they
can be applied instantly and without restarting your application. To change the
values create a new SpreeAvatax::Config. The default values are:

```ruby
SpreeAvatax::Config.create!(enabled: true, timeout: SpreeAvatax::Config::DEFAULT_TIMEOUT)
```

This is an append-only table and solidus_avatax will read these config values
from the last record (by id).

#### Short Ships

If you want to notify Avatax about short ships you should configure the
following:

```ruby
Spree::OrderCancellations.short_ship_tax_notifier = ->(unit_cancels) do
SpreeAvatax::ShortShipReturnInvoice.generate(unit_cancels: unit_cancels)
end
```

Known Issues
------------

1. "Additional tax" (e.g. US taxes) *is* supported but "included tax" (e.g.
VAT) is *not*. This feature is not on the roadmap but we'd be willing to
look at pull requests for it.
2. Note for future development: There is currently a bug in Solidus where the
"open all adjustments" admin button doesn't work for line item adjustments.
See
[here](https://github.com/spree/spree/blob/v2.2.2/backend/app/controllers/spree/admin/orders_controller.rb#L103).
If that bug were ever fixed, we'd want to monkey patch the controller action
to prevent tax adjustments from ever being re-opened. We always want tax
adjustments to be "closed", which tells Solidus not to try to recalculate
them automatically.

Testing
-------

First bundle your dependencies, then run `rake`. `rake` will default to
building the dummy app if it does not exist, then it will run specs. The dummy
app can be regenerated by using `rake test_app`.

```shell
bundle
bundle exec rake
```

Live tests are provided to insure that the Avalara gem works as promised. The
credentials must be provided under `spec/avalara_config.yml` to run them
successfully. See the example YAML for guidance.

```
username: 'USERNAME'
password: 'PASSWORD'
company_code: 'COMPANY'
```

These tests will communicate against the test Avatax API.