GithubHelp home page GithubHelp logo

spree-contrib / spree_tax_cloud Goto Github PK

View Code? Open in Web Editor NEW
15.0 5.0 51.0 2.3 MB

US sales tax extension for Spree using the Tax Cloud service.

Home Page: https://spreecommerce.org

Ruby 94.57% HTML 5.43%

spree_tax_cloud's Introduction

Spree::TaxCloud

Spree::TaxCloud is a US sales tax extension for Spree using the Tax Cloud service.

Based on the work of Chris Mar and Drew Tempelmeyer.

TaxCloud Configuration

  1. Create an account with Tax Cloud (https://taxcloud.net)...

  2. ...and get an api_login_id and api_key.

  3. Go to Your Account >> Tax States, and turn on sales tax collection for the relevant states in which you want/need to collect sales tax. (NOTE: Unless states are explicitly added, TaxCloud will return zero sales tax by default for orders shipping to those states.)

Spree Configuration

Installation

  1. Add this extension to your Gemfile with this line:
gem 'spree_tax_cloud', github: 'spree-contrib/spree_tax_cloud', branch: 'X-X-stable'

The branch option is important: it must match the version of Spree you're using. For example, use 3-0-stable if you're using Spree 3-0-stable or any 3.0.x version.

  1. Install the gem using Bundler:
bundle install
  1. Copy & run migrations
bundle exec rails g spree_tax_cloud:install
  1. Restart your server

If your server was running, restart it so that it can find the assets properly.

In the Admin section of Spree, go to Configurations, then select TaxCloud Settings.

Enter your api_login_id and api_key, and optionally your USPS login. You can also configure the default Product TIC and Shipping TIC for TaxCloud to use, although it is recommended to leave the defaults as is: 00000 for product default and 11010 for shipping default.

All Products will default to the default product TIC specified here unless they are given an explicit value. Specific product-level TICs may be specified per-product in the Products section of the Spree admin backend. If you are uncertain about the correct TIC for a product (whether it be clothing, books, etc.), taxability code information may be obtained from Tax Cloud.

To complete your Spree::TaxCloud configuration, you will need to create a TaxRate to apply rates obtained from Tax Cloud to your Spree LineItems and Shipments. Under Configuration select Tax Rates, and click Create a New Tax Rate. Recommended defaults are as follows:

  • Name: Sales Tax (This label will be visible to users during the checkout process)
  • Zone: USA (Note that TaxCloud is only designed for United States sales tax)
  • Rate: 0.0 (Note that the actual rates will be applied by the calculator)
  • Tax Category: Taxable
  • Included in Price: False (US taxes are 'additional' rather than 'included')
  • Show Rate in Label: False (We will not display the static rate, which is left at 0%)
  • Calculator: Tax Cloud

Notes

Spree::TaxCloud is designed to function in a single TaxCategory. It is expected that all Products and all ShippingMethods will be in the same TaxCategory as the one configured for the TaxRate using the Tax Cloud calculator above (in this example, Taxable).

Spree::TaxCloud is designed to perform all US-related tax calculation itself, and as such does not use Spree configuration like TaxCategories to specify whether goods are Taxable, Tax-Exempt, Clothing, Food, etc. Spree::TaxCloud does not use the Spree configuration tax_address (which specifies whether the shipping or billing address should be used to compute tax), instead always using the shipping address if possible, and only falling back to the billing address if the shipping address is nil. (Asking Spree::TaxCloud to compute orders whose shipping and billing addresses are nil will result in an exception.)

TODO

Some work on the Spree:TaxCloud extension is ongoing. Namely:

  • Fill out a more complete set of feature specs using the test case scenarios provided by Tax Cloud.

  • Address Validation: Support an address validation step via the Tax Cloud gem (which will fix the one non-passing spec at the moment).

  • Split Shipments: Scope Tax Cloud transactions to Shipments rather than Orders, to account for the unusual cases where sales tax depends on the origin address as well as, or instead of, the destination address.

  • Item Returns: Create feature specs and make the appropriate API calls to properly process sales tax on item returns.

  • Promotions: Spree::TaxCloud is not (yet) fully compatible with some types of Spree promotions. For instance in cases such as "$10 off all orders over $100," it is not explicit how such a discount will affect the costs of individual items. In these cases, Spree::TaxCloud will fall back to charging sales tax on the full (undiscounted) item price.

Discussion and pull requests addressing this functionality are welcomed.

COPYRIGHT

Copyright by Jerrold R Thompson

spree_tax_cloud's People

Contributors

bbonislawski avatar benmorganio avatar bobforever avatar brchristian avatar damianlegawiec avatar jdutil avatar jhawthorn avatar mattfenelon avatar mauazua avatar mike-bourgeous avatar misinformeddna avatar rterbush avatar schwartzdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

spree_tax_cloud's Issues

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler could not find compatible versions for gem "spree_frontend":
  In Gemfile:
    spree_frontend (>= 3.1.0, < 4.0)

    spree was resolved to 4.3.0.alpha, which depends on
      spree_frontend (= 4.3.0.alpha)

Could not find gem 'spree_frontend (= 4.3.0.alpha)', which is required by gem 'spree', in any of the relevant sources:
  rubygems repository https://rubygems.org/ or installed locally

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

No Tax lookup on Transition to payment

I do not believe that a default behavior of only displaying tax when transitioning to 'complete' is such a good strategy.

+) Believe your average customer will want to see a tax amount displayed BEFORE completion of an order, pushing the big red 'BUY' button.

+) Tax is no longer displayed in the cart, if the customer goes there to update order.

2-3-stable spec failures

JDutil@Jeffs-MacBook-Pro ~/Code/spree_tax_cloud$ be rspec                                                                                                                               2-3-stable ‹2.1.2›
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
......F.F.F

Failures:

  1) Checkout completes TaxCloud test case 1b
     Failure/Error: page.should have_content("Sales Tax $0.95")
       expected to find text "Sales Tax $0.95" in "HOME CART: (1) $10.86 Checkout ADDRESSDELIVERYPAYMENTCOMPLETE DELIVERY PACKAGE FROM NY WAREHOUSE ITEM QTY PRICE RoR Mug 1 $10.00 SHIPPING METHOD UPS Ground $10.00 ORDER SUMMARY Item Total: $10.00 Sales Tax $0.86 Shipping total $0.00 Order Total: $10.86 Powered by Spree"
     # ./spec/features/checkout_spec.rb:155:in `block (2 levels) in <top (required)>'

  2) Checkout completes TaxCloud test case 2b
     Failure/Error: page.should have_content("Order Total: $30.76")
       expected to find text "Order Total: $30.76" in "HOME CART: (2) $20.76 Checkout ADDRESSDELIVERYPAYMENTCOMPLETE DELIVERY PACKAGE FROM NY WAREHOUSE ITEM QTY PRICE RoR Mug 1 $10.00 Shirt 1 $10.00 SHIPPING METHOD UPS Ground $10.00 ORDER SUMMARY Item Total: $20.00 Sales Tax $0.76 Shipping total $0.00 Order Total: $20.76 Powered by Spree"
     # ./spec/features/checkout_spec.rb:193:in `block (2 levels) in <top (required)>'

  3) Checkout completes TaxCloud test case 6
     Failure/Error: page.should have_content("Order Total: $20.80")
       expected to find text "Order Total: $20.80" in "HOME CART: (1) $10.80 Checkout ADDRESSDELIVERYPAYMENTCOMPLETE DELIVERY PACKAGE FROM NY WAREHOUSE ITEM QTY PRICE Shirt 1 $10.00 SHIPPING METHOD UPS Ground $10.00 ORDER SUMMARY Item Total: $10.00 Sales Tax $0.80 Shipping total $0.00 Order Total: $10.80 Powered by Spree"
     # ./spec/features/checkout_spec.rb:254:in `block (2 levels) in <top (required)>'

Only the first failure is the known and expected failure, but getting a couple more failures on 2-3-stable. Not sure what has caused them, but appears to have been the case for quite some time. Anyone familiar with these?

Use tax_address instead of ship_address?

I have a situation where I need to provide estimated sales tax for orders before a shipping address has been entered based on a user provided postal code. If Spree::TaxCloud used an order's tax_address instead of its ship_address I could override or redefine the tax_address method to return the postal code-based address without touching the shipping or billing address.

Invalid version of rubyntlm. Please use v0.3.2+

I can't find any dependency of rubyntlm, but after trying to switch from my fork to this fork to test 2-2-stable my application breaks with this error...

JDutil@Jeffs-MacBook-Pro ~/Code/vt_made$ be rspec                                                                                                                                      ✖ ✹tax-cloud ‹2.1.2›
/usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/httpi-2.2.4/lib/httpi/adapter/net_http.rb:12:in `<top (required)>': Invalid version of rubyntlm. Please use v0.3.2+. (ArgumentError)
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/httpi-2.2.4/lib/httpi.rb:8:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/savon-2.6.0/lib/savon/options.rb:2:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/savon-2.6.0/lib/savon/operation.rb:1:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/savon-2.6.0/lib/savon/client.rb:1:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/savon-2.6.0/lib/savon.rb:26:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
        from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/tax_cloud-0.3.0/lib/tax_cloud.rb:1:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/skylight-0.3.17/lib/skylight/probes.rb:81:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:214:in `load_dependency'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.0.6/lib/active_support/dependencies.rb:229:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/spree_tax_cloud-b774d0f40373/lib/spree_tax_cloud.rb:7:in `<top (required)>'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `each'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `block in require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `each'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `require'
    from /usr/local/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler.rb:132:in `require'
    from /Users/JDutil/Code/vt_made/config/application.rb:5:in `<top (required)>'
    from /Users/JDutil/Code/vt_made/config/environment.rb:2:in `require'
    from /Users/JDutil/Code/vt_made/config/environment.rb:2:in `<top (required)>'
    from /Users/JDutil/Code/vt_made/spec/spec_helper.rb:16:in `require'
    from /Users/JDutil/Code/vt_made/spec/spec_helper.rb:16:in `<top (required)>'
    from /Users/JDutil/Code/vt_made/spec/features/admin/suppliers_spec.rb:1:in `require'
    from /Users/JDutil/Code/vt_made/spec/features/admin/suppliers_spec.rb:1:in `<top (required)>'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/configuration.rb:1065:in `load'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/configuration.rb:1065:in `block in load_spec_files'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/configuration.rb:1065:in `each'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/configuration.rb:1065:in `load_spec_files'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/command_line.rb:18:in `run'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/runner.rb:103:in `run'
    from /usr/local/Cellar/rbenv/0.4.0/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-2.99.1/lib/rspec/core/runner.rb:17:in `block in autorun'
Coverage report generated for RSpec to /Users/JDutil/Code/vt_made/coverage. 7 / 36 LOC (19.44%) covered.

I tried removing skylight as well as it was the last thing in the stacktrace to see if that was a conflict but didn't help.

Did not see tax on products on checkout page and cart page.

I integrated the spree_tax_cloud gem and follow the steps that are written

  1. Taxable Category
  2. USA Zone
  3. Tax rate with these characteristics

Name: Sales Tax (This label will be visible to users during the checkout process)
Zone: USA (Note that TaxCloud is only designed for United States sales tax)
Rate: 0.0 (Note that the actual rates will be applied by the calculator)
Tax Category: Taxable
Included in Price: False (US taxes are 'additional' rather than 'included')
Show Rate in Label: False (We will not display the static rate, which is left at 0%)
Calculator: Tax Cloud

  1. Add taxable category on product
  2. Provide tax cloud api thing.
  3. Correct the stock location

After all doing this i solved my errors .. but now i have not seen any tax calculation in my whole checkout process.. Please help me what i did wrong or what i miss steps .

Thanks

required spree version

In your gemspec you have

s.add_dependency 'spree_core', '~> 3.0.0.beta'

but in your versionFile you have

'2.4.x' => { branch: master}

Invalid apiLoginID and/or apiKey

This issue of Address Verification Failed is haunting me right now, and from reading the other issues here, this is just a default error which could be caused by several different problems.

I am using a fresh install of spree 3.6.3 with spree_tax_cloud. I am using the spree database seeds for development. To reproduce all I did was linked my taxcloud, and create the "Taxable" category, and a "USA" Tax rate that uses taxcloud calculator. I changed one item to the "Taxable" category and tried to go through the checkout process, and received this "Address Verification Failed". Upon removing this item from the cart i get the error:
TaxCloud::Errors::ApiError in Spree::OrdersController#update
TaxCloud::Errors::ApiError (
Problem:
Invalid apiLoginID and/or apiKey
Summary:
The TaxCloud server returned an error in the response: {:lookup_response=>{:lookup_result=>{:response_type=>"Error", :messages=>{:response_message=>{:response_type=>"Error", :message=>"Invalid apiLoginID and/or apiKey"}}, :cart_items_response=>nil}, :@xmlns=>"http://taxcloud.net"}}
Resolution:
Check the request parameters.):

So, I tried to use the admin navigation to an order. First, I made a customer in a state that by default has sales tax enabled with TaxCloud, so I setup the customer in NJ. Then, I tried to add the product to the order, nothing happened on the front end except the box to add the item disappeared without actually adding it. Server side I get the same taxcloud error

Which seems like it this should be easy to fix, just double-check the API ID and KEY in the TaxCloud settings, but they are correct and I am not sure where to go from here.

Tax lookup fails for guests

As a guest user the first item added to cart fails because order address doesn't exist yet.

NoMethodError: undefined method `address1' for nil:NilClass

/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree_tax_cloud-359f38df1f14/app/models/spree/tax_cloud.rb:29 in "address_from_spree_address"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree_tax_cloud-359f38df1f14/app/models/spree/tax_cloud.rb:15 in "transaction_from_order"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree_tax_cloud-359f38df1f14/app/models/spree/calculator/tax_cloud_calculator.rb:56 in "block in tax_for_item"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:298 in "block in fetch"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:558 in "block in save_block_result_to_cache"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:517 in "block in instrument"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/notifications.rb:159 in "block in instrument"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/notifications/instrumenter.rb:20 in "instrument"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/notifications.rb:159 in "instrument"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:517 in "instrument"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:557 in "save_block_result_to_cache"
/vendor/bundle/ruby/2.1.0/gems/activesupport-4.0.8/lib/active_support/cache.rb:298 in "fetch"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree_tax_cloud-359f38df1f14/app/models/spree/calculator/tax_cloud_calculator.rb:49 in "tax_for_item"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree_tax_cloud-359f38df1f14/app/models/spree/calculator/tax_cloud_calculator.rb:20 in "compute_shipment_or_line_item"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/calculator.rb:14 in "compute"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:182 in "compute_amount"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:154 in "adjust"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:84 in "block (2 levels) in adjust"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:83 in "each"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:83 in "block in adjust"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:79 in "each"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/tax_rate.rb:79 in "adjust"
/var/www/apps/vt_made/shared/vendor_bundle/ruby/2.1.0/bundler/gems/spree-0391029e787e/core/app/models/spree/line_item.rb:121 in "update_tax_charge"

Spec always fails the first time, succeeds the second

Curiously, every time I run a fresh be rake test_app & be rspec spec I see the following error.

Failure/Error: Unable to find matching line from backtrace
 TaxCloud::Errors::MissingConfigOption:

   Problem:
     Missing configuration option: api_login_id.
   Summary:
     A configuration option was not provided when configuration TaxCloud.
   Resolution:
     Review your `TaxCloud.configure` code. Are you using an environment variable that has not been set?

However, whenever I run be rspec spec a second time, everything is fine and the specs pass.

@JDutil Any idea what might be causing that? Am I defining the config variables wrong or something?

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.2.10.0)

    poltergeist was resolved to 1.18.1, which depends on
      capybara (>= 2.1, < 4) was resolved to 3.1.1, which depends on
        nokogiri (~> 1.8) was resolved to 1.10.10, which depends on
          Ruby (>= 2.3.0)

Bundler could not find compatible versions for gem "spree_core":
  In Gemfile:
    spree was resolved to 4.3.0.alpha, which depends on
      spree_core (= 4.3.0.alpha)

    spree_tax_cloud was resolved to 0.0.1, which depends on
      spree_core (>= 3.1.0, < 4.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler could not find compatible versions for gem "spree_frontend":
  In Gemfile:
    spree_frontend (>= 3.1.0, < 4.0)

    spree was resolved to 4.3.0.alpha, which depends on
      spree_frontend (= 4.3.0.alpha)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

When adding a line item promotion to an order taxes are not re-adjusted with TaxCloud.

When using the Spree::Calculator::DefaultTax an additional tax total is recalculated after applying a line item promotion to an order, however when using the Spree::Calculator::TaxCloudCalculator the taxes are not adjusted after applying the promotion.

Gemfile.lock -- https://gist.github.com/Lyonsclay/2480bf8229afc1a07a0a123343875c28

I have created a repo with a default Spree 3.0.8 app and added a test that demonstrates the behavior.

https://github.com/Lyonsclay/spree_3-0-stable_app

Clone the repo, run bundle install, and spec.

Tax amount of 0.0 returned

We're running into an issue in which we're having 0.0 returned as the tax amount. This doesn't seem correct. We're running 2-4-stable of spree and tax_cloud. We've got multiple stock locations and tax rates setup as per the instructions.

Any thoughts?

`gem 'spree', github: 'spree/spree', branch: '2-4-stable'

gem 'spree_tax_cloud', github: 'spree-contrib/spree_tax_cloud', branch: '2-4-stable'
`

screen shot 2015-04-28 at 22 58 24

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler could not find compatible versions for gem "spree_frontend":
  In Gemfile:
    spree_frontend (>= 3.1.0, < 4.0)

    spree was resolved to 4.2.0.rc5, which depends on
      spree_frontend (= 4.2.0.rc5)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Calculate tax rate for items including discounts

Using this extension on a fairly large production Spree installation and were running into problems when calculating taxes when an order promotion was involved.

Example: An item is $50, but there is a whole order promotion for 50% off, so the line item is $25, however taxes are based on the individual line items, so the customer pays tax for $50.

This is probably a deal breaker for most people wanting to use this extension, so I came up with a way to take discounts into account when calculating tax rates.


First step is to understand how to get the "final" price of the line item so the proper tax rate can be calculated. This is not so bad when there are %off promos, but it gets dicey when there are $off promotions because it becomes hard to tell where those discounts are going. As a general rule, I will distribute all discount amounts across the line items evenly. Here's how the equation looks in code:

adjustment_total = line_item.order.adjustments.eligible.sum(:amount)
item_total = line_item.order.line_items.sum('price * quantity')
taxable_discount_amount = (item.price * (adjustment_total / item_total)).to_d.truncate(2).to_f
return line_item.price + taxable_discount_amount

The to_d.truncate(2).to_f is a little weird, because I kept getting rounding issues, but that combination seemed to fix it.

This has been working well for awhile, however there are a few other places where I needed to append values to a model's tax_cloud_cache_key or re-trigger tax rates manually in certain places. There were many times where orders would change, but taxes would not get re-calculated, or it would just return a cached value that wasn't correct.

I'd love to open up a discussion about this problem, and if anyone thinks the code I came up with this is useful, I could submit a PR with the additions.

Thanks!

Product Specific TIC Field Missing in Admin

Everything seems to be working great with my installation of spree_tax_cloud except that the field for product specific TICs is not showing up. I even created my own override and copied over the _edit_tax_cloud_tic.html.erb partial to see if I could better control the override but that still didn't help.

Any ideas as to why it wouldn't be showing up?

Spree 3.2

Hello !

Is this gem compatible with Spree 3.2 ? Does anyone already shipping it in production with this setup ?

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler could not find compatible versions for gem "spree_frontend":
  In Gemfile:
    spree_frontend (>= 3.1.0, < 4.0)

    spree was resolved to 4.2.0, which depends on
      spree_frontend (= 4.2.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Address Verification Failing

This error is captured, so no stack dump.

However, in 2 manual tests, address verification failed both times when transitioning to
'complete' state.

This transaction has already been marked as authorized

I just updated to Spree tag v2.4.3 and am getting an error when placing an order, specifically when transitioning from confirm to complete.

You can repro this by running this walkthrough. In the logs you will see

Problem:
  This transaction has already been marked as authorized (CartID : R487222301)
Summary:
  The TaxCloud server returned an error in the response: `{:authorized_with_capture_response=>{:authorized_with_capture_result=>{:response_type=>"Error", :messages=>{:response_message=>{:response_type=>"Error", :message=>"This transactio
n has already been marked as authorized (CartID : R487222301)"}}}, :@xmlns=>"http://taxcloud.net"}}`
Resolution:
  Check the request parameters.

Any ideas?

Address Verification Failed

I, [2015-10-12T00:04:27.710747 #6706]  INFO -- : [ActiveJob] [ActionMailer::DeliveryJob] [de203660-8042-43ea-8574-c8345570a908] Performed ActionMailer::DeliveryJob from Inline(mailers) in 832.66ms
D, [2015-10-12T00:04:27.716082 #6706] DEBUG -- :   SQL (2.5ms)  UPDATE "spree_orders" SET "confirmation_delivered" = 't' WHERE "spree_orders"."id" = $1  [["id", 63]]
D, [2015-10-12T00:04:27.722047 #6706] DEBUG -- :    (0.8ms)  SELECT COUNT(*) FROM "spree_payments" WHERE "spree_payments"."order_id" = $1 AND (avs_response IN ('A','C','E','F','G','I','K','L','N','O','P','R','S','U','W','Z') OR (cvv_response_code IS NOT NULL and cvv_response_code != 'M') OR state = 'failed')  [["order_id", 63]]
D, [2015-10-12T00:04:27.727314 #6706] DEBUG -- :   Spree::Address Load (2.6ms)  SELECT  "spree_addresses".* FROM "spree_addresses" WHERE "spree_addresses"."id" = $1 LIMIT 1  [["id", 96]]
D, [2015-10-12T00:04:27.734028 #6706] DEBUG -- :   SQL (1.7ms)  SELECT "spree_zones"."id" AS t0_r0, "spree_zones"."name" AS t0_r1, "spree_zones"."description" AS t0_r2, "spree_zones"."default_tax" AS t0_r3, "spree_zones"."zone_members_count" AS t0_r4, "spree_zones"."created_at" AS t0_r5, "spree_zones"."updated_at" AS t0_r6, "spree_zones"."kind" AS t0_r7, "spree_zone_members"."id" AS t1_r0, "spree_zone_members"."zoneable_id" AS t1_r1, "spree_zone_members"."zoneable_type" AS t1_r2, "spree_zone_members"."zone_id" AS t1_r3, "spree_zone_members"."created_at" AS t1_r4, "spree_zone_members"."updated_at" AS t1_r5 FROM "spree_zones" LEFT OUTER JOIN "spree_zone_members" ON "spree_zone_members"."zone_id" = "spree_zones"."id" WHERE ((spree_zone_members.zoneable_type = 'Spree::Country' AND spree_zone_members.zoneable_id = 232) OR (spree_zone_members.zoneable_type = 'Spree::State' AND spree_zone_members.zoneable_id = 3446))  ORDER BY spree_zones.zone_members_count, spree_zones.created_at
D, [2015-10-12T00:04:27.743453 #6706] DEBUG -- :   Spree::TaxRate Load (2.5ms)  SELECT DISTINCT spree_tax_rates.*, spree_zones.default_tax FROM "spree_tax_rates" INNER JOIN "spree_zones" ON "spree_zones"."id" = "spree_tax_rates"."zone_id" LEFT OUTER JOIN "spree_zone_members" ON "spree_zone_members"."zone_id" = "spree_zones"."id" AND "spree_zone_members"."zoneable_type" = $1 LEFT OUTER JOIN "spree_countries" ON "spree_countries"."id" = "spree_zone_members"."zoneable_id" LEFT OUTER JOIN "spree_zone_members" "zone_members_spree_countries_join" ON "zone_members_spree_countries_join"."zoneable_id" = "spree_countries"."id" AND "zone_members_spree_countries_join"."zoneable_type" = $2 LEFT OUTER JOIN "spree_zones" "zones_spree_countries" ON "zones_spree_countries"."id" = "zone_members_spree_countries_join"."zone_id" WHERE "spree_tax_rates"."deleted_at" IS NULL AND (zone_members_spree_countries_join.zone_id = 2 OR spree_zones.default_tax = 't')  ORDER BY spree_zones.default_tax DESC  [["zoneable_type", "Spree::Country"], ["zoneable_type", "Spree::Country"]]
D, [2015-10-12T00:04:27.746668 #6706] DEBUG -- :   Spree::Zone Load (0.5ms)  SELECT "spree_zones".* FROM "spree_zones" WHERE "spree_zones"."id" IN (2)
D, [2015-10-12T00:04:27.749566 #6706] DEBUG -- :   Spree::ZoneMember Load (0.5ms)  SELECT "spree_zone_members".* FROM "spree_zone_members" WHERE "spree_zone_members"."zone_id" IN (2)
D, [2015-10-12T00:04:27.752587 #6706] DEBUG -- :   Spree::Country Load (0.5ms)  SELECT "spree_countries".* FROM "spree_countries" WHERE "spree_countries"."id" IN (232)
D, [2015-10-12T00:04:27.756738 #6706] DEBUG -- :   Spree::Calculator Load (0.4ms)  SELECT  "spree_calculators".* FROM "spree_calculators" WHERE "spree_calculators"."deleted_at" IS NULL AND "spree_calculators"."calculable_id" = $1 AND "spree_calculators"."calculable_type" = $2 LIMIT 1  [["calculable_id", 2], ["calculable_type", "Spree::TaxRate"]]
D, [2015-10-12T00:04:27.762834 #6706] DEBUG -- :   Spree::State Load (0.4ms)  SELECT  "spree_states".* FROM "spree_states" WHERE "spree_states"."id" = $1 LIMIT 1  [["id", 3446]]
D, [2015-10-12T00:04:27.764564 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT  "spree_states".* FROM "spree_states" WHERE "spree_states"."id" = $1 LIMIT 1  [["id", 3446]]
D, [2015-10-12T00:04:27.767652 #6706] DEBUG -- :   Spree::Product Load (0.3ms)  SELECT  "spree_products".* FROM "spree_products" WHERE "spree_products"."id" = $1 LIMIT 1  [["id", 35]]
D, [2015-10-12T00:04:27.770124 #6706] DEBUG -- :   Spree::Preference Load (0.3ms)  SELECT  "spree_preferences".* FROM "spree_preferences" WHERE "spree_preferences"."key" = $1 LIMIT 1  [["key", "spree/app_configuration/taxcloud_shipping_tic"]]
D, [2015-10-12T00:04:27.863669 #6706] DEBUG -- :   CACHE (0.1ms)  SELECT DISTINCT spree_tax_rates.*, spree_zones.default_tax FROM "spree_tax_rates" INNER JOIN "spree_zones" ON "spree_zones"."id" = "spree_tax_rates"."zone_id" LEFT OUTER JOIN "spree_zone_members" ON "spree_zone_members"."zone_id" = "spree_zones"."id" AND "spree_zone_members"."zoneable_type" = $1 LEFT OUTER JOIN "spree_countries" ON "spree_countries"."id" = "spree_zone_members"."zoneable_id" LEFT OUTER JOIN "spree_zone_members" "zone_members_spree_countries_join" ON "zone_members_spree_countries_join"."zoneable_id" = "spree_countries"."id" AND "zone_members_spree_countries_join"."zoneable_type" = $2 LEFT OUTER JOIN "spree_zones" "zones_spree_countries" ON "zones_spree_countries"."id" = "zone_members_spree_countries_join"."zone_id" WHERE "spree_tax_rates"."deleted_at" IS NULL AND (zone_members_spree_countries_join.zone_id = 2 OR spree_zones.default_tax = 't')  ORDER BY spree_zones.default_tax DESC  [["zoneable_type", "Spree::Country"], ["zoneable_type", "Spree::Country"]]
D, [2015-10-12T00:04:27.866339 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT "spree_zones".* FROM "spree_zones" WHERE "spree_zones"."id" IN (2)
D, [2015-10-12T00:04:27.868517 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT "spree_zone_members".* FROM "spree_zone_members" WHERE "spree_zone_members"."zone_id" IN (2)
D, [2015-10-12T00:04:27.871017 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT "spree_countries".* FROM "spree_countries" WHERE "spree_countries"."id" IN (232)
D, [2015-10-12T00:04:27.874364 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT  "spree_calculators".* FROM "spree_calculators" WHERE "spree_calculators"."deleted_at" IS NULL AND "spree_calculators"."calculable_id" = $1 AND "spree_calculators"."calculable_type" = $2 LIMIT 1  [["calculable_id", 2], ["calculable_type", "Spree::TaxRate"]]
I, [2015-10-12T00:04:27.952353 #6706]  INFO -- : Redirected to https://www.clubpatina.com/checkout/address
I, [2015-10-12T00:04:27.953042 #6706]  INFO -- : Completed 302 Found in 3796ms (ActiveRecord: 135.2ms)
I, [2015-10-12T00:04:27.983141 #6706]  INFO -- : Started GET "/checkout/address" for 68.173.232.164 at 2015-10-12 00:04:27 -0400
I, [2015-10-12T00:04:27.986804 #6706]  INFO -- : Processing by Spree::CheckoutController#edit as HTML
I, [2015-10-12T00:04:27.986972 #6706]  INFO -- :   Parameters: {"state"=>"address"}
D, [2015-10-12T00:04:27.990151 #6706] DEBUG -- :   Spree::Preference Load (0.4ms)  SELECT  "spree_preferences".* FROM "spree_preferences" WHERE "spree_preferences"."key" = $1 LIMIT 1  [["key", "spree/frontend_configuration/locale"]]
D, [2015-10-12T00:04:27.996432 #6706] DEBUG -- :   Spree::Store Load (0.8ms)  SELECT  "spree_stores".* FROM "spree_stores" WHERE (url like '%www.clubpatina.com%')  ORDER BY "spree_stores"."id" ASC LIMIT 1
D, [2015-10-12T00:04:28.001218 #6706] DEBUG -- :   Spree::Order Load (2.0ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."completed_at" IS NULL AND "spree_orders"."currency" = $1 AND "spree_orders"."guest_token" = $2 AND "spree_orders"."store_id" = $3 AND "spree_orders"."user_id" IS NULL LIMIT 1 FOR UPDATE  [["currency", "USD"], ["guest_token", "xP2xoJ_ptsYLxNg_W82C5g"], ["store_id", 1]]
I, [2015-10-12T00:04:28.003669 #6706]  INFO -- : Redirected to https://www.clubpatina.com/cart
I, [2015-10-12T00:04:28.003972 #6706]  INFO -- : Filter chain halted as :load_order_with_lock rendered or redirected
I, [2015-10-12T00:04:28.004393 #6706]  INFO -- : Completed 302 Found in 17ms (ActiveRecord: 3.2ms)
I, [2015-10-12T00:04:28.032878 #6706]  INFO -- : Started GET "/cart" for 68.173.232.164 at 2015-10-12 00:04:28 -0400
I, [2015-10-12T00:04:28.036017 #6706]  INFO -- : Processing by Spree::OrdersController#edit as HTML
D, [2015-10-12T00:04:28.039181 #6706] DEBUG -- :   Spree::Preference Load (0.4ms)  SELECT  "spree_preferences".* FROM "spree_preferences" WHERE "spree_preferences"."key" = $1 LIMIT 1  [["key", "spree/frontend_configuration/locale"]]
D, [2015-10-12T00:04:28.043591 #6706] DEBUG -- :   Spree::Order Load (0.9ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."number" IS NULL LIMIT 1
D, [2015-10-12T00:04:28.047169 #6706] DEBUG -- :   Spree::Store Load (0.8ms)  SELECT  "spree_stores".* FROM "spree_stores" WHERE (url like '%www.clubpatina.com%')  ORDER BY "spree_stores"."id" ASC LIMIT 1
D, [2015-10-12T00:04:28.049688 #6706] DEBUG -- :   Spree::Order Load (0.4ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."completed_at" IS NULL AND "spree_orders"."currency" = $1 AND "spree_orders"."guest_token" = $2 AND "spree_orders"."store_id" = $3 AND "spree_orders"."user_id" IS NULL LIMIT 1  [["currency", "USD"], ["guest_token", "xP2xoJ_ptsYLxNg_W82C5g"], ["store_id", 1]]
D, [2015-10-12T00:04:28.060850 #6706] DEBUG -- :   CACHE (0.0ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."completed_at" IS NULL AND "spree_orders"."currency" = $1 AND "spree_orders"."guest_token" = $2 AND "spree_orders"."store_id" = $3 AND "spree_orders"."user_id" IS NULL LIMIT 1  [["currency", "USD"], ["guest_token", "xP2xoJ_ptsYLxNg_W82C5g"], ["store_id", 1]]
D, [2015-10-12T00:04:28.064420 #6706] DEBUG -- :   Spree::Order Load (1.0ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."completed_at" IS NULL AND "spree_orders"."guest_token" = $1 LIMIT 1  [["guest_token", "xP2xoJ_ptsYLxNg_W82C5g"]]
I, [2015-10-12T00:04:28.077305 #6706]  INFO -- :   Rendered spree/orders/edit.html.erb within spree/layouts/spree_application (5.3ms)
I, [2015-10-12T00:04:28.082604 #6706]  INFO -- :   Rendered spree/shared/_head.html.erb (4.2ms)
I, [2015-10-12T00:04:28.086492 #6706]  INFO -- :   Rendered spree/shared/_nav_bar.html.haml (2.2ms)
I, [2015-10-12T00:04:28.086763 #6706]  INFO -- :   Rendered spree/shared/_header.html.haml (3.6ms)
I, [2015-10-12T00:04:28.092135 #6706]  INFO -- :   Rendered spree/shared/_footer.html.haml (4.6ms)
D, [2015-10-12T00:04:28.096043 #6706] DEBUG -- :   Spree::Tracker Load (1.1ms)  SELECT  "spree_trackers".* FROM "spree_trackers" WHERE "spree_trackers"."active" = 't'  ORDER BY "spree_trackers"."id" ASC LIMIT 1
I, [2015-10-12T00:04:28.097366 #6706]  INFO -- :   Rendered spree/shared/_google_analytics.html.erb (4.7ms)
I, [2015-10-12T00:04:28.098131 #6706]  INFO -- : Completed 200 OK in 62ms (Views: 29.0ms | ActiveRecord: 4.5ms)
I, [2015-10-12T00:04:28.383041 #6706]  INFO -- : Started GET "/cart_link" for 68.173.232.164 at 2015-10-12 00:04:28 -0400
I, [2015-10-12T00:04:28.386258 #6706]  INFO -- : Processing by Spree::StoreController#cart_link as */*
D, [2015-10-12T00:04:28.389333 #6706] DEBUG -- :   Spree::Preference Load (0.3ms)  SELECT  "spree_preferences".* FROM "spree_preferences" WHERE "spree_preferences"."key" = $1 LIMIT 1  [["key", "spree/frontend_configuration/locale"]]
D, [2015-10-12T00:04:28.395835 #6706] DEBUG -- :   Spree::Store Load (0.9ms)  SELECT  "spree_stores".* FROM "spree_stores" WHERE (url like '%www.clubpatina.com%')  ORDER BY "spree_stores"."id" ASC LIMIT 1
D, [2015-10-12T00:04:28.398927 #6706] DEBUG -- :   Spree::Order Load (0.5ms)  SELECT  "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."completed_at" IS NULL AND "spree_orders"."currency" = $1 AND "spree_orders"."guest_token" = $2 AND "spree_orders"."store_id" = $3 AND "spree_orders"."user_id" IS NULL LIMIT 1  [["currency", "USD"], ["guest_token", "xP2xoJ_ptsYLxNg_W82C5g"], ["store_id", 1]]
I, [2015-10-12T00:04:28.401515 #6706]  INFO -- :   Rendered spree/shared/_link_to_cart.html.erb (9.4ms)
I, [2015-10-12T00:04:28.402713 #6706]  INFO -- : Completed 200 OK in 16ms (Views: 9.2ms | ActiveRecord: 1.8ms)

This happens after the order is placed and email is delivered successfully. Spree admin shows the order as ready to ship

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.