Spree Commerce

Try It Now

How will online sales tax affect businesses?

Posted on January 23, 2013 by Erin Granville

Most online businesses already have to collect sales tax on some transactions. If your business has a physical presence in a state with sales tax—even if it’s just your home office—you’re required to collect sales tax from residents of that state.

But Congress may soon expand that by allowing any state to require online businesses to collect sales tax, no matter where the business is located. In fact, three bills to that effect were introduced in the last session of Congress, and a new one is expected to be introduced early this year. We can’t know exactly what the new bill will include, but we can make reasonable guesses based on the three previous bills.

So if you have an online business, what will online sales tax collection mean for you?

Will you have to collect sales tax?

All three previous bills exempted some businesses from collecting sales tax, and the new one is likely to do the same. You will probably only have to collect sales tax if all of the following statements are true for you:

  • You sell to residents of a state with sales tax
  • That state has simplified its sales tax laws as the bill requires
  • That state has chosen to require out-of-state retailers to collect sales tax
  • You do not qualify for the small seller exemption. We don’t yet know how “small seller” will be defined in the new legislation, but the most popular previous bill exempted sellers with less than $500,000 in annual remote sales.

If even one of these statements is not true, you most likely won’t have to collect sales tax.

When will you have to start collecting?

Like the previous bills, the new bill will have a timeline describing when states may receive collection authority—that is, the authority to require out-of-state retailers to collect sales tax. Once a state has collection authority, it can require a retailer in any other state to collect sales tax.

But for most online retailers, the timeline won’t really matter. A customer could be from any state, and if that state has already received collection authority, you’ll have to collect sales tax from the customer.

In other words, you’ll need to be ready to collect sales tax as soon as the first state receives collection authority. You never know where your next customer could be located.

So when will the first state receive collection authority? While we can’t know for certain, it’s reasonable to expect the new bill’s timeline to be similar to those in previous bills.

First, keep in mind that, like every previous bill, the new bill will almost certainly say that a state’s sales tax laws must be simplified before it can receive collection authority. The twenty-four states that are currently members of the Streamlined Sales and Use Tax Agreement (SSUTA) have already simplified their sales tax laws, so they will be the first to receive collection authority.

SSUTA states may be able to require you to collect sales tax on the first day of the calendar quarter at least 90 days after the legislation passes. Which means that you’ll need to be ready to collect sales tax three months after the bill becomes law.

Non-SSUTA states may be able to receive collection authority on the first day of the calendar quarter six months after they simplify their sales tax laws. Note that for non-SSUTA states, the collection authority date is based on when the state simplifies its sales tax laws, not on when the bill becomes law. But again, you’ll need to be ready to collect sales tax on the first collection authority date, likely only 90 days after the bill passes.

The previous bills required states to notify retailers in advance about when they’ll need to start collecting, and new legislation is expected to do the same.

What’s involved in collecting sales tax?

Collecting sales tax is essentially composed of three tasks: calculation, collection, and remittance.

First, you need to calculate the sales tax due for your customer’s location. This means using the state and local tax rates for the customer’s home address and not including tax-exempt items as your customer’s tax jurisdiction requires.

Next, you need to collect the sales tax due. This also includes tracking how much sales tax you collect from each customer on each purchase, so that you can remit the correct amount of sales tax to each state.

Finally, you need to remit the sales tax you’ve collected to the appropriate states through a monthly sales tax return. Keep in mind that if you’ve registered to collect sales tax in a particular state, you must submit a monthly sales tax return for that state, whether or not you’re remitting any sales tax that month.

Fortunately, there are ways to automate each of these steps, including tools that your shopping cart provider may offer and services that handle everything for you. In the next post in this series, we’ll look at the different methods available to make online sales tax collection easy for retailers.

About the Author

Erin Granville is Communications Editor at FedTax, the proud creator of TaxCloud.
TaxCloud is a free, easy-to-use sales tax management service for retailers. It handles every aspect of sales tax, from calculation to collection to filing—all at no cost for retailers.

TaxCloud can be easily integrated into most accounting, order management, and shopping cart systems. It has been evaluated by states and an independent review board and has been designated one of only six Certified Service Providers in the nation.

Check out the Spree TaxCloud extension written by Spree Community member Jerrold Thompson to integrate TaxCloud with your Spree store.

Plans for Improving Internationalization Support

Posted on January 17, 2013 by Ryan Bigg

When launching an international e-commerce store there are three areas you need to think through:

  • Translation – How to translate the site’s static text and database stored text to the consumer’s local language
  • Currency – How to charge the consumer in their local currency
  • Product Offerings – Determine if you want to offer different products to consumers in different locations.

Spree addresses the static text translation aspect of internationalizing an e-commerce store through our i18n project.

What is the origin of i18n?

i18n is a neuronym for the word “Internationalization.” A neuronym is a word where a number is used to form an abbreviation. i18n stands for the 18 letters in between the first letter “I” and the last letter “N.”

It’s rumored that the i18n neuronym derived its origin from a Digital Equipment Corporation (DEC) employee named Jan Scherpenhuizen. The system administrator at DEC shortened Jan’s last name to “s12n” because it was too long to be an account name. Shortly thereafter Jan’s co-workers began calling him “s12n” and neuronyms became a part of the DEC culture.

How does Spree approach i18n?

Spree leverages the Rails approach to internationalization. We store all of the translation information for static text like “add to cart” and “checkout” in a separate GitHub project known as spree_i18n. This is basically the same approach followed by the Rails project which keeps their localizations in rails-i18n. The Spree i18n project is actually a Spree extension. This extension contains translations only. The rest of code needed to support the i18n features is part of the Spree core. Translation for non-static text stored in the database like product names and product descriptions are addressed by the spree_multi_lingual gem.

What is working well in the Spree i18n extension?

Like most Spree features, the i18n functionality is 100% open source, ready to use, and easy to customize. Cristian Livadaru from LCX.at, a web development firm based in Austria, and Cezar Halmagean built the site Lifestyle4fun.com using the Spree i18n extension. Cristian explains “Spree is great because it provides code to address internationalization for e-commerce sites out-of-the-box.”

How can Spree’s i18n functionality be improved?

While the i18n extension provided a great framework for Cristian to translate the static text for the Lifestyle4fun.com site, he ran into some challenges keeping the translations up-to-date. “If a new piece of static text is introduced into the Spree core that has not yet been translated in the i18n extension, then I have to translate it myself. I’ve tried using a translation service, but the translations that are returned are often times inaccurate because they were translated by a non-technical person or by someone that didn’t understand the context of the text,” Cristian says.

The team at d:evolute also faced a challenge translating the database stored text for their e-commerce site — text like product names and product descriptions. Daniel Spaude and Andreas Woerle from d:evolute explain “The Spree i18n extension only translates the non-static text. We were able to use the spree_multi_lingual gem to translate the database text. But we ran into some issues keeping the Spree i18n extension and the spree_multi_lingual gem in synch when updates were released to one or the other. It would be great if the spree_multi_lingual gem functionality was part of the Sree i18n extension so we don’t have to worry about compatibility issues.”

The Spree team hears these concerns and has plans for better internationalization support in Spree 2.0, which is on the horizon. Below are three of the improvement areas we are working on.

Namespacing

The first improvement area is isn’t so much of a technical concern as it is a general inconvenience. The problem is that the translations within Spree are not namespaced. This is an issue for translations that use common words like “orders” or “actions” which may conflict with those translations coming from a parent application that contains the Spree engines.

To fix this, we will be namespacing all the translations in Spree 2.0 to be underneath a “spree” key. Translations that would have previously used something such as I18n.t(:orders) will use a new helper — Spree.t(:orders) — which would effectively do I18n.t(:orders, :scope => :spree). Doing this would allow us to avoid conflicts with translations that already exist within the base Rails application.

Keeping it up-to-date

The second improvement area is of greater concern. As Cristian mentioned, it’s really, really hard to keep the translations up-to-date in this project with what’s going on in the different branches over on the main Spree repository. While we may use a translatable piece of text within Spree’s core, the translation for that text may not reach spree_i18n until some time later. Even then, that would only be for some particular languages.

To fix this, we’ll be looking at using LocaleApp, which will allow us to store the translations in an easy-to-edit way, so that people looking to assist with translations can do so without having to open a pull request on the spree_i18n project. The translations from LocaleApp will be periodically synced with the spree_i18n project, meaning that if you would like to use them you can just add the spree_i18n gem to your application’s Gemfile:


gem ‘spree_i18n’, :github => spree/spree_i18n", :branch => “2-0-stable”

And your translations will be up to date.

Multi-lingual support

Currently in Spree, you are able to specify a single name and a single description for a product. If you want to translate this name or description into another language, you can use the spree_multi_lingual gem. We are looking at ways in which we can improve the multi-lingual support in Spree by building on the features already in this gem, perhaps even going as far as to include this functionality within the Spree core as requested by the folks at d:evolute.

  • Join the discussion: What i18n improvements would you like to see?

Online sales tax law changes the sales tax situation

Posted on January 16, 2013 by Erin Granville

Right now, online retailers only have to collect sales tax for states where they have a physical presence. But many expect Congress to change that.

In the previous session of Congress, which ended on January 3, three bills were introduced to give states the authority to require online retailers to collect sales tax, no matter where the business is located. All three expired with the end of the congressional session, but the most popular—the Marketplace Fairness Act—is expected to be reintroduced early this year.

So what can we expect from online sales tax legislation this year?

Any new legislation is likely to include the provisions that all three previous bills included:

  • States that meet certain conditions will have the authority to require out-of-state retailers to collect sales tax
  • States must simplify their sales tax laws before they are granted that authority
  • Small out-of-state businesses will be exempt from collecting sales tax, so that they are protected from any requirements that could be a burden

What we don’t yet know is how new legislation will address the two areas where the old bills disagreed: how states can meet the simplification requirements and how to define “small business.”

Meeting the Simplification Requirements

It’s a near-certainty that states will have to simplify their sales tax laws if they want to require out-of-state retailers to collect sales tax. What remains to be seen is how an online sales tax law will allow states to meet those simplification requirements.

Two ways have been proposed in previous bills. One is simply to list simplification measures in the bill itself and require states to make sure their laws include those simplifications before they can receive collection authority.

Another option requires states to adopt the Streamlined Sales and Use Tax Agreement (SSUTA), a set of guidelines created by states and the business community to make it easier for retailers to collect sales tax for multiple states. It focuses on simplifying and standardizing sales tax rules—so that, for instance, a Snickers bar isn’t taxed as candy in one state and as food in another. The SSUTA rules tend to be more in-depth than the bills’ simplification measures.

The Marketplace Fairness Act actually allowed states to use either method to simplify their sales tax laws, so that’s a possibility for future legislation as well. And the twenty-four states that have already joined SSUTA will probably be among the first to receive collection authority in any case, since they will have already simplified their sales tax laws as the legislation is likely to require.

The Small Seller Exemption

Everyone agrees that small businesses should not be required to collect out-of-state sales tax. Where everyone seems to disagree is what qualifies a business as “small.”

Here’s how the three previous bills set the definition of “small seller”:

  • The Marketplace Fairness Act: Businesses with less than $500,000 in annual remote (out-of-state) sales are exempt from collecting out-of-state sales tax.
  • The Main Street Fairness Act: The Streamlined Sales Tax Governing Board (the administrative arm of SSUTA) determines the “small seller” threshold, currently pegged at $500,000 in annual remote sales.
  • The Marketplace Equity Act: Sellers with less than $1 million in annual remote sales are exempt from collecting out-of-state sales tax. In addition, businesses are exempt from collecting for a particular state if their annual sales to that state are less than $100,000.

If the Marketplace Fairness Act is reintroduced, as most expect, its exemption level of $500,000 could remain intact. However, it’s impossible to know for sure until the new legislation is introduced this year.

It’s important to remember that no online sales tax bill creates a new tax or raises taxes (since sales tax is already due on online purchases). They do, however, create new responsibilities for some businesses. In the next post in this series, we’ll look at what online sales tax would mean for these businesses. And if you missed last week’s sales tax post, make sure to check out Why don’t online retailers collect sales tax?

About the Author

Erin Granville is Communications Editor at FedTax, the proud creator of TaxCloud.
TaxCloud is a free, easy-to-use sales tax management service for retailers. It handles every aspect of sales tax, from calculation to collection to filing—all at no cost for retailers.

TaxCloud can be easily integrated into most accounting, order management, and shopping cart systems. It has been evaluated by states and an independent review board and has been designated one of only six Certified Service Providers in the nation.

Check out the Spree TaxCloud extension written by Spree Community member Jerrold Thompson to integrate TaxCloud with your Spree store.

Chris Mar & John Dyer join Spree

Posted on January 15, 2013 by Brian D. Quinn

It’s been over a year since we’ve announced any new core team members, due primarily to the awesome job that Ryan (radar) has been doing managing the contributions and improvements to Spree. In all the time that Ryan has been doing his thing, two other staff members have been quietly working on new features, refactoring and generally helping make Spree more awesome for everyone.

Today, we’d like to officially recognize the on-going and outstanding contributions made by Chris Mar (cmar) and John Dyer (LBRapid) to Spree by announcing their official core team membership. While both Chris and John have been employees of Spree Commerce, Inc. from its inception and have had commit access for a while, joining the core team highlights their impact on the direction and quality of the entire Spree platform.

John Dyer aka JD aka LBRapid

John Dyer

John joined Railsdog back in April 2011 as an intern and has since then proven himself to be an indispensable member of the team. John’s recent contributions to Spree have included lots of work on the API which were documented recently.

John’s an avid reader and fan of The Game of Thrones series, you can find some of his literary reviews on his personal blog.

Chris Mar aka cmar

Chir Mar

Chris was one of Spree Commerce Inc’s first employees and has made a big impact since his arrival back in August, 2011. He has spoken at both SpreeConf’s and was responsible for the badly needed overhaul of Spree preferences internals.

Chris is a startup veteran, a keen home-brewer and a recovering Java developer who likes to play board games.

Please join me in finally welcoming Chris and John to the core team, and I know we all look forward to their next big contributions!