Integrating Avalara Tax + Shipment
Edit on GitHubTo enable the AvalaraTax + Shipment component of the Avalara partner integration, use the spryker-eco/avalara-tax-shipment module.
Install feature core
Follow the steps below to install the feature core.
Prerequisites
To start the feature integration, overview and install the necessary features:
NAME | VERSION | INTEGRATION GUIDE |
---|---|---|
Shipment | master | Shipment feature integration guide |
Avalara Tax | master | Avalara Tax integration |
1) Install the required modules using Composer
Install the required modules:
composer require spryker-eco/avalara-tax-shipment:"^0.1.0" --update-with-dependencies
Verification
Make sure that the following modules have been installed:
MODULE | EXPECTED DIRECTORY |
---|---|
AvalaraTaxShipment | vendor/spryker-eco/avalara-tax-shipment |
2) Set up database schema
Apply database changes, generate entity and transfer changes:
console transfer:generate
console propel:install
console transfer:generate
Verification
Make sure that the following changes have been applied by checking your database:
DATABASE ENTITY | TYPE | EVENT |
---|---|---|
spy_shipment_method.avalara_tax_code | column | created |
3) Set up behavior
- Activate the following plugins:
PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
---|---|---|---|
AvalaraShipmentCreateTransactionRequestExpanderPlugin | Expands AvalaraCreateTransactionRequestTransfer with shipments. |
None | SprykerEco\Zed\AvalaraTaxShipment\Communication\Plugin\AvalaraTax |
AvalaraShipmentCreateTransactionRequestAfterPlugin | Calculates taxes for shipment methods based on AvalaraCreateTransactionResponseTransfer . |
None | SprykerEco\Zed\AvalaraTaxShipment\Communication\Plugin\AvalaraTax |
src/Pyz/Zed/AvalaraTax/AvalaraTaxDependencyProvider.php
<?php
namespace Pyz\Zed\AvalaraTax;
use SprykerEco\Zed\AvalaraTax\AvalaraTaxDependencyProvider as SprykerAvalaraTaxDependencyProvider;
use SprykerEco\Zed\AvalaraTaxShipment\Communication\Plugin\AvalaraTax\AvalaraShipmentCreateTransactionRequestAfterPlugin;
use SprykerEco\Zed\AvalaraTaxShipment\Communication\Plugin\AvalaraTax\AvalaraShipmentCreateTransactionRequestExpanderPlugin;
class AvalaraTaxDependencyProvider extends SprykerAvalaraTaxDependencyProvider
{
/**
* @return \SprykerEco\Zed\AvalaraTaxExtension\Dependency\Plugin\CreateTransactionRequestExpanderPluginInterface[]
*/
protected function getCreateTransactionRequestExpanderPlugins(): array
{
return [
new AvalaraShipmentCreateTransactionRequestExpanderPlugin(),
];
}
/**
* @return \SprykerEco\Zed\AvalaraTaxExtension\Dependency\Plugin\CreateTransactionRequestAfterPluginInterface[]
*/
protected function getCreateTransactionRequestAfterPlugins(): array
{
return [
new AvalaraShipmentCreateTransactionRequestAfterPlugin(),
];
}
}
Verification
Make sure you’ve enabled the plugins:
- Add an item to a cart.
- Proceeding to checkout.
- On the summary page, you should see the calculated tax amount for your order, including taxes for product options and shipment methods.
- Update the following data import .csv files:
FILE NAME | COLUMN TO ADD | LOCATION |
---|---|---|
shipment.csv | avalara_tax_code | data/import/common/common/shipment.csv |
- To handle the new field, adjust
Shipment
data importer using the following example:
data/import/common/common/shipment.csv
>shipment_method_key,name,carrier,taxSetName,avalaraTaxCode
spryker_dummy_shipment-standard,Standard,Spryker Dummy Shipment,Shipment Taxes,PC040111
4) Import data:
Import data using the following command:
console data:import shipment
Verification
Make sure that the data has been imported to spy_shipment_method
.
Thank you!
For submitting the form