Tax feature overview

Edit on GitHub

The Tax feature lets you define taxes for the items you sell. The feature is represented by two entities: tax rates and tax sets.

The tax rate is the percentage of the sales price that buyer pays as a tax. In the default Spryker implementation, the tax rate is defined per country where the tax applies. For details about how to create tax rates for countries in the Back Office, see Create tax rates.

A tax set is a set of tax rates. You can define tax sets in the Back office or import tax sets into your project.

Tax sets can be applied to an abstract product, product option, and shipment:

Abstract product Define prices File details: product_abstract.csv
Product option Creating a product option File details: product_option.csv
Shipment Add delivery methods File details: shipment.csv

International tax rates and sets

Align your business with international tax standards by defining tax rates and sets. Determine country-based tax rates for products, options, and shipments, that will automatically be applied to the respective shops.

In a tax system, the tax rate is the ratio (usually expressed as a percentage) at which a business, person, item is taxed.

A tax set is a set of tax rates that can be applied to a specific product.

Tax rate

Once the rate is defined, you can attach it to a tax set(s). A tax set can contain from one to many tax rates. Tax set

The described values are defined in the Back Office > Taxes section.

Tax section

Avalara system for automated tax compliance

You can integrate the third-party system Avalara to automatically apply tax rates that depend on such factors as location, product type, and shipping rules.

Avalara is mostly meant for the USA.

To use Avalara, set up the AvaTax platform for your application and integrate Avalara into your project. Once you do that, you can apply Avalara tax codes to automate tax calculations for your shop.

You can set the Avalara tax codes for the following entities by importing the codes:

Since shipment and products fall under different taxability categories, Avalara tax code for shipment is different from that of the abstract product or product option. For details about the codes and categories, see Avalara tax code search.

The Avalara codes are not displayed on the Storefront or in the Back Office. They are processed in the background to define taxes for order items. Avalara calculates taxes during the checkout, and, by default, the taxes are shown at the final checkout step.

When calculating taxes, Avalara takes the items’ warehouse addresses into account. Therefore, each order item you calculate a tax for with Avalara, must have a warehouse assigned. To learn how warehouses are assigned to order items by default, see Warehouse assignment to order items (with Avalara integration only).

Tax Management capability on the Storefront

A product tax set is calculated when buyers add products to the cart. Therefore, by default, the tax calculated on the basis of the product tax sets is displayed in the Tax section on the Cart page. However, the tax value on the Cart page is not always final because it does not take a possible shipment tax set into account since buyers select the shipping method during the checkout. If you have Avalara integrated, it calculates tax during the checkout as well. Therefore, the final tax value is always displayed only upon checkout.

Tax on the Cart page:


Tax in the checkout:


Current constraints

The capability has the following functional constraints:

  • There is no Back Office UI for the Avalara tax codes.
  • Many Avalara features are not supported yet. This will be resolved in the future.
Create tax rates
Edit tax rates
Create tax sets
Edit tax sets
Integrate the Tax Glue API Upgrade the Tax module Retrieve tax sets Import tax sets
Integrate the Product Tax Sets Glue API Upgrade the ProductTaxSetsRestApi module Retrieve tax sets of abstract products Import tax sets for abstract products
Import tax sets for shipment methods
Import tax sets for product options