Version Notes
* Fix calculations with associated items sharing the same product ID in configurable/bundled products.
* Fix calculations fallback for earlier versions of Magento CE before 1.8.
* Add tax by line item rather than subtotal to prevent rounding issues.
* Fix nexus check for international locations.
Download this release
Release Info
| Developer | TaxJar |
| Extension | Taxjar_Salestaxautomation |
| Version | 2.1.2 |
| Comparing to | |
| See all releases | |
Code changes from version 2.1.1 to 2.1.2
- app/code/community/Taxjar/SalesTax/Block/Adminhtml/Tax/Nexus/Edit/Form.php +1 -3
- app/code/community/Taxjar/SalesTax/Model/Debug.php +1 -1
- app/code/community/Taxjar/SalesTax/Model/Sales/Total/Quote/Tax.php +5 -61
- app/code/community/Taxjar/SalesTax/Model/Smartcalcs.php +32 -19
- app/code/community/Taxjar/SalesTax/Model/Tax/Nexus.php +0 -4
- app/code/community/Taxjar/SalesTax/etc/config.xml +1 -1
- package.xml +9 -8
app/code/community/Taxjar/SalesTax/Block/Adminhtml/Tax/Nexus/Edit/Form.php
CHANGED
|
@@ -106,9 +106,7 @@ class Taxjar_SalesTax_Block_Adminhtml_Tax_Nexus_Edit_Form extends Mage_Adminhtml
|
|
| 106 |
array(
|
| 107 |
'name' => 'region_id',
|
| 108 |
'label' => Mage::helper('taxjar')->__('State/Region'),
|
| 109 |
-
'
|
| 110 |
-
'values' => $regions,
|
| 111 |
-
'required' => true
|
| 112 |
)
|
| 113 |
);
|
| 114 |
|
| 106 |
array(
|
| 107 |
'name' => 'region_id',
|
| 108 |
'label' => Mage::helper('taxjar')->__('State/Region'),
|
| 109 |
+
'values' => $regions
|
|
|
|
|
|
|
| 110 |
)
|
| 111 |
);
|
| 112 |
|
app/code/community/Taxjar/SalesTax/Model/Debug.php
CHANGED
|
@@ -49,7 +49,7 @@ class Taxjar_SalesTax_Model_Debug
|
|
| 49 |
$states = unserialize(Mage::getStoreConfig('tax/taxjar/states'));
|
| 50 |
$apiUser = Mage::getModel('api/user');
|
| 51 |
$existingUserId = $apiUser->load('taxjar', 'username')->getUserId();
|
| 52 |
-
$pluginVersion = '2.1.
|
| 53 |
$phpMemory = @ini_get('memory_limit');
|
| 54 |
$phpVersion = @phpversion();
|
| 55 |
$magentoVersion = Mage::getVersion();
|
| 49 |
$states = unserialize(Mage::getStoreConfig('tax/taxjar/states'));
|
| 50 |
$apiUser = Mage::getModel('api/user');
|
| 51 |
$existingUserId = $apiUser->load('taxjar', 'username')->getUserId();
|
| 52 |
+
$pluginVersion = '2.1.2';
|
| 53 |
$phpMemory = @ini_get('memory_limit');
|
| 54 |
$phpVersion = @phpversion();
|
| 55 |
$magentoVersion = Mage::getVersion();
|
app/code/community/Taxjar/SalesTax/Model/Sales/Total/Quote/Tax.php
CHANGED
|
@@ -50,11 +50,6 @@ class Taxjar_SalesTax_Model_Sales_Total_Quote_Tax extends Mage_Tax_Model_Sales_T
|
|
| 50 |
} else {
|
| 51 |
$shippingTaxAmount = 0;
|
| 52 |
}
|
| 53 |
-
|
| 54 |
-
$taxAmount = $rates['amount_to_collect'] - $shippingTaxAmount;
|
| 55 |
-
|
| 56 |
-
$this->_addAmount($store->convertPrice($taxAmount));
|
| 57 |
-
$this->_addBaseAmount($taxAmount);
|
| 58 |
|
| 59 |
$this->_addAmount($store->convertPrice($shippingTaxAmount));
|
| 60 |
$this->_addBaseAmount($shippingTaxAmount);
|
|
@@ -64,70 +59,19 @@ class Taxjar_SalesTax_Model_Sales_Total_Quote_Tax extends Mage_Tax_Model_Sales_T
|
|
| 64 |
|
| 65 |
if (count($items) > 0) {
|
| 66 |
foreach ($items as $item) {
|
| 67 |
-
$itemTax = $smartCalcs->getResponseLineItem($item->
|
| 68 |
|
| 69 |
if (isset($itemTax)) {
|
|
|
|
|
|
|
| 70 |
$item->setTaxPercent($itemTax['combined_tax_rate'] * 100);
|
| 71 |
$item->setTaxAmount($store->convertPrice($itemTax['tax_collectable']));
|
| 72 |
-
$item->setBaseTaxAmount($itemTax['tax_collectable']);
|
| 73 |
}
|
| 74 |
}
|
| 75 |
}
|
| 76 |
} else {
|
| 77 |
-
|
| 78 |
-
$customer = $address->getQuote()->getCustomer();
|
| 79 |
-
if ($customer) {
|
| 80 |
-
$this->_calculator->setCustomer($customer);
|
| 81 |
-
}
|
| 82 |
-
|
| 83 |
-
if (!$address->getAppliedTaxesReset()) {
|
| 84 |
-
$address->setAppliedTaxes(array());
|
| 85 |
-
}
|
| 86 |
-
|
| 87 |
-
$items = $this->_getAddressItems($address);
|
| 88 |
-
if (!count($items)) {
|
| 89 |
-
return $this;
|
| 90 |
-
}
|
| 91 |
-
$request = $this->_calculator->getRateRequest(
|
| 92 |
-
$address,
|
| 93 |
-
$address->getQuote()->getBillingAddress(),
|
| 94 |
-
$address->getQuote()->getCustomerTaxClassId(),
|
| 95 |
-
$this->_store
|
| 96 |
-
);
|
| 97 |
-
|
| 98 |
-
if ($this->_config->priceIncludesTax($this->_store)) {
|
| 99 |
-
if ($this->_helper->isCrossBorderTradeEnabled($this->_store)) {
|
| 100 |
-
$this->_areTaxRequestsSimilar = true;
|
| 101 |
-
} else {
|
| 102 |
-
$this->_areTaxRequestsSimilar = $this->_calculator->compareRequests(
|
| 103 |
-
$this->_calculator->getRateOriginRequest($this->_store),
|
| 104 |
-
$request
|
| 105 |
-
);
|
| 106 |
-
}
|
| 107 |
-
}
|
| 108 |
-
|
| 109 |
-
switch ($this->_config->getAlgorithm($this->_store)) {
|
| 110 |
-
case Mage_Tax_Model_Calculation::CALC_UNIT_BASE:
|
| 111 |
-
$this->_unitBaseCalculation($address, $request);
|
| 112 |
-
break;
|
| 113 |
-
case Mage_Tax_Model_Calculation::CALC_ROW_BASE:
|
| 114 |
-
$this->_rowBaseCalculation($address, $request);
|
| 115 |
-
break;
|
| 116 |
-
case Mage_Tax_Model_Calculation::CALC_TOTAL_BASE:
|
| 117 |
-
$this->_totalBaseCalculation($address, $request);
|
| 118 |
-
break;
|
| 119 |
-
default:
|
| 120 |
-
break;
|
| 121 |
-
}
|
| 122 |
-
|
| 123 |
-
$this->_addAmount($address->getExtraTaxAmount());
|
| 124 |
-
$this->_addBaseAmount($address->getBaseExtraTaxAmount());
|
| 125 |
-
$this->_calculateShippingTax($address, $request);
|
| 126 |
-
|
| 127 |
-
$this->_processHiddenTaxes();
|
| 128 |
-
|
| 129 |
-
//round total amounts in address
|
| 130 |
-
$this->_roundTotals($address);
|
| 131 |
}
|
| 132 |
|
| 133 |
return $this;
|
| 50 |
} else {
|
| 51 |
$shippingTaxAmount = 0;
|
| 52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
|
| 54 |
$this->_addAmount($store->convertPrice($shippingTaxAmount));
|
| 55 |
$this->_addBaseAmount($shippingTaxAmount);
|
| 59 |
|
| 60 |
if (count($items) > 0) {
|
| 61 |
foreach ($items as $item) {
|
| 62 |
+
$itemTax = $smartCalcs->getResponseLineItem($item->getId());
|
| 63 |
|
| 64 |
if (isset($itemTax)) {
|
| 65 |
+
$this->_addAmount($store->convertPrice($itemTax['tax_collectable']));
|
| 66 |
+
$this->_addBaseAmount($itemTax['tax_collectable']);
|
| 67 |
$item->setTaxPercent($itemTax['combined_tax_rate'] * 100);
|
| 68 |
$item->setTaxAmount($store->convertPrice($itemTax['tax_collectable']));
|
| 69 |
+
$item->setBaseTaxAmount($itemTax['tax_collectable']);
|
| 70 |
}
|
| 71 |
}
|
| 72 |
}
|
| 73 |
} else {
|
| 74 |
+
return parent::collect($address);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
}
|
| 76 |
|
| 77 |
return $this;
|
app/code/community/Taxjar/SalesTax/Model/Smartcalcs.php
CHANGED
|
@@ -43,11 +43,11 @@ class Taxjar_SalesTax_Model_Smartcalcs
|
|
| 43 |
return;
|
| 44 |
}
|
| 45 |
|
| 46 |
-
if (!$address->
|
| 47 |
return;
|
| 48 |
}
|
| 49 |
|
| 50 |
-
if (!$this->_hasNexus($address->getRegionCode())) {
|
| 51 |
return;
|
| 52 |
}
|
| 53 |
|
|
@@ -130,16 +130,16 @@ class Taxjar_SalesTax_Model_Smartcalcs
|
|
| 130 |
*
|
| 131 |
* @return array
|
| 132 |
*/
|
| 133 |
-
public function getResponseLineItem($
|
| 134 |
{
|
| 135 |
if ($this->_response) {
|
| 136 |
$responseBody = json_decode($this->_response->getBody(), true);
|
| 137 |
|
| 138 |
if (isset($responseBody['tax']['breakdown']['line_items'])) {
|
| 139 |
$lineItems = $responseBody['tax']['breakdown']['line_items'];
|
| 140 |
-
$matchedKey = array_search($
|
| 141 |
|
| 142 |
-
if (isset($lineItems[$matchedKey])) {
|
| 143 |
return $lineItems[$matchedKey];
|
| 144 |
}
|
| 145 |
}
|
|
@@ -150,17 +150,28 @@ class Taxjar_SalesTax_Model_Smartcalcs
|
|
| 150 |
* Verify if nexus is triggered for location
|
| 151 |
*
|
| 152 |
* @param string $regionCode
|
|
|
|
| 153 |
* @return bool
|
| 154 |
*/
|
| 155 |
-
private function _hasNexus($regionCode)
|
| 156 |
{
|
| 157 |
-
$
|
| 158 |
-
|
| 159 |
-
if ($
|
| 160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
} else {
|
| 162 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
}
|
|
|
|
|
|
|
| 164 |
}
|
| 165 |
|
| 166 |
/**
|
|
@@ -176,20 +187,22 @@ class Taxjar_SalesTax_Model_Smartcalcs
|
|
| 176 |
|
| 177 |
if (count($items) > 0) {
|
| 178 |
foreach ($items as $item) {
|
| 179 |
-
$id = $item->
|
| 180 |
$quantity = $item->getQty();
|
| 181 |
$taxClass = Mage::getModel('tax/class')->load($item->getProduct()->getTaxClassId());
|
| 182 |
$taxCode = $taxClass->getTjSalestaxCode();
|
| 183 |
$unitPrice = (float) $item->getPrice();
|
| 184 |
$discount = (float) $item->getDiscountAmount();
|
| 185 |
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
|
|
|
|
|
|
| 193 |
}
|
| 194 |
}
|
| 195 |
|
| 43 |
return;
|
| 44 |
}
|
| 45 |
|
| 46 |
+
if (!$address->getPostcode()) {
|
| 47 |
return;
|
| 48 |
}
|
| 49 |
|
| 50 |
+
if (!$this->_hasNexus($address->getRegionCode(), $address->getCountry())) {
|
| 51 |
return;
|
| 52 |
}
|
| 53 |
|
| 130 |
*
|
| 131 |
* @return array
|
| 132 |
*/
|
| 133 |
+
public function getResponseLineItem($id)
|
| 134 |
{
|
| 135 |
if ($this->_response) {
|
| 136 |
$responseBody = json_decode($this->_response->getBody(), true);
|
| 137 |
|
| 138 |
if (isset($responseBody['tax']['breakdown']['line_items'])) {
|
| 139 |
$lineItems = $responseBody['tax']['breakdown']['line_items'];
|
| 140 |
+
$matchedKey = array_search($id, Mage::helper('taxjar')->array_column($lineItems, 'id'));
|
| 141 |
|
| 142 |
+
if (isset($lineItems[$matchedKey]) && $matchedKey !== false) {
|
| 143 |
return $lineItems[$matchedKey];
|
| 144 |
}
|
| 145 |
}
|
| 150 |
* Verify if nexus is triggered for location
|
| 151 |
*
|
| 152 |
* @param string $regionCode
|
| 153 |
+
* @param string $country
|
| 154 |
* @return bool
|
| 155 |
*/
|
| 156 |
+
private function _hasNexus($regionCode, $country)
|
| 157 |
{
|
| 158 |
+
$nexusCollection = Mage::getModel('taxjar/tax_nexus')->getCollection();
|
| 159 |
+
|
| 160 |
+
if ($country == 'US') {
|
| 161 |
+
$nexusInRegion = $nexusCollection->addFieldToFilter('region_code', $regionCode);
|
| 162 |
+
|
| 163 |
+
if ($nexusInRegion->getSize()) {
|
| 164 |
+
return true;
|
| 165 |
+
}
|
| 166 |
} else {
|
| 167 |
+
$nexusInCountry = $nexusCollection->addFieldToFilter('country_id', $country);
|
| 168 |
+
|
| 169 |
+
if ($nexusInCountry->getSize()) {
|
| 170 |
+
return true;
|
| 171 |
+
}
|
| 172 |
}
|
| 173 |
+
|
| 174 |
+
return false;
|
| 175 |
}
|
| 176 |
|
| 177 |
/**
|
| 187 |
|
| 188 |
if (count($items) > 0) {
|
| 189 |
foreach ($items as $item) {
|
| 190 |
+
$id = $item->getId();
|
| 191 |
$quantity = $item->getQty();
|
| 192 |
$taxClass = Mage::getModel('tax/class')->load($item->getProduct()->getTaxClassId());
|
| 193 |
$taxCode = $taxClass->getTjSalestaxCode();
|
| 194 |
$unitPrice = (float) $item->getPrice();
|
| 195 |
$discount = (float) $item->getDiscountAmount();
|
| 196 |
|
| 197 |
+
if ($unitPrice) {
|
| 198 |
+
array_push($lineItems, array(
|
| 199 |
+
'id' => $id,
|
| 200 |
+
'quantity' => $quantity,
|
| 201 |
+
'product_tax_code' => $taxCode,
|
| 202 |
+
'unit_price' => $unitPrice,
|
| 203 |
+
'discount' => $discount,
|
| 204 |
+
));
|
| 205 |
+
}
|
| 206 |
}
|
| 207 |
}
|
| 208 |
|
app/code/community/Taxjar/SalesTax/Model/Tax/Nexus.php
CHANGED
|
@@ -153,10 +153,6 @@ class Taxjar_SalesTax_Model_Tax_Nexus extends Mage_Core_Model_Abstract
|
|
| 153 |
$errors[] = Mage::helper('taxjar')->__('Country can\'t be empty');
|
| 154 |
}
|
| 155 |
|
| 156 |
-
if (!Zend_Validate::is($this->getRegionId(), 'NotEmpty')) {
|
| 157 |
-
$errors[] = Mage::helper('taxjar')->__('State/region can\'t be empty');
|
| 158 |
-
}
|
| 159 |
-
|
| 160 |
if (!Zend_Validate::is($this->getPostcode(), 'NotEmpty')) {
|
| 161 |
$errors[] = Mage::helper('taxjar')->__('Zip/Post Code can\'t be empty');
|
| 162 |
}
|
| 153 |
$errors[] = Mage::helper('taxjar')->__('Country can\'t be empty');
|
| 154 |
}
|
| 155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
if (!Zend_Validate::is($this->getPostcode(), 'NotEmpty')) {
|
| 157 |
$errors[] = Mage::helper('taxjar')->__('Zip/Post Code can\'t be empty');
|
| 158 |
}
|
app/code/community/Taxjar/SalesTax/etc/config.xml
CHANGED
|
@@ -19,7 +19,7 @@
|
|
| 19 |
<config>
|
| 20 |
<modules>
|
| 21 |
<Taxjar_SalesTax>
|
| 22 |
-
<version>2.1.
|
| 23 |
</Taxjar_SalesTax>
|
| 24 |
</modules>
|
| 25 |
<global>
|
| 19 |
<config>
|
| 20 |
<modules>
|
| 21 |
<Taxjar_SalesTax>
|
| 22 |
+
<version>2.1.2</version>
|
| 23 |
</Taxjar_SalesTax>
|
| 24 |
</modules>
|
| 25 |
<global>
|
package.xml
CHANGED
|
@@ -1,20 +1,21 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Taxjar_Salestaxautomation</name>
|
| 4 |
-
<version>2.1.
|
| 5 |
<stability>stable</stability>
|
| 6 |
-
<license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Easily collect sales tax without altering your Magento store’s checkout experience or performance.</summary>
|
| 10 |
<description>TaxJar for Magento allows you to quickly calculate sales tax at checkout using our SmartCalcs API and zip-based rates as a backup.</description>
|
| 11 |
-
<notes>* Fix
|
| 12 |
-
*
|
| 13 |
-
*
|
|
|
|
| 14 |
<authors><author><name>TaxJar</name><user>taxjar</user><email>support@taxjar.com</email></author></authors>
|
| 15 |
-
<date>2016-06-
|
| 16 |
-
<time>
|
| 17 |
-
<contents><target name="magecommunity"><dir name="Taxjar"><dir name="SalesTax"><dir name="Block"><dir name="Adminhtml"><file name="Backup.php" hash="97933cb0f04c30baab4af5af24412f8d"/><file name="Enabled.php" hash="29462c876c8ea67c21a6f4d799b53925"/><file name="Multiselect.php" hash="a1a7ea16e85cbc27b3014a2cc7d24c95"/><dir name="Tax"><dir name="Class"><dir name="Edit"><file name="Form.php" hash="655e276e44ad233b055eee8965391088"/></dir><file name="Grid.php" hash="a52bbe41bc9255bf54720ab4142bfaa7"/></dir><dir name="Nexus"><dir name="Edit"><file name="Form.php" hash="
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Taxjar_Salestaxautomation</name>
|
| 4 |
+
<version>2.1.2</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
+
<license>OSL-3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Easily collect sales tax without altering your Magento store’s checkout experience or performance.</summary>
|
| 10 |
<description>TaxJar for Magento allows you to quickly calculate sales tax at checkout using our SmartCalcs API and zip-based rates as a backup.</description>
|
| 11 |
+
<notes>* Fix calculations with associated items sharing the same product ID in configurable/bundled products.
|
| 12 |
+
* Fix calculations fallback for earlier versions of Magento CE before 1.8.
|
| 13 |
+
* Add tax by line item rather than subtotal to prevent rounding issues.
|
| 14 |
+
* Fix nexus check for international locations.</notes>
|
| 15 |
<authors><author><name>TaxJar</name><user>taxjar</user><email>support@taxjar.com</email></author></authors>
|
| 16 |
+
<date>2016-06-24</date>
|
| 17 |
+
<time>23:14:57</time>
|
| 18 |
+
<contents><target name="magecommunity"><dir name="Taxjar"><dir name="SalesTax"><dir name="Block"><dir name="Adminhtml"><file name="Backup.php" hash="97933cb0f04c30baab4af5af24412f8d"/><file name="Enabled.php" hash="29462c876c8ea67c21a6f4d799b53925"/><file name="Multiselect.php" hash="a1a7ea16e85cbc27b3014a2cc7d24c95"/><dir name="Tax"><dir name="Class"><dir name="Edit"><file name="Form.php" hash="655e276e44ad233b055eee8965391088"/></dir><file name="Grid.php" hash="a52bbe41bc9255bf54720ab4142bfaa7"/></dir><dir name="Nexus"><dir name="Edit"><file name="Form.php" hash="7f192c00ce3630910e40a120f90d3fa6"/></dir><file name="Edit.php" hash="e8bffbb5bc4ff17c368543c2508c00a5"/><file name="Grid.php" hash="ccb748472a7a20ae0f5f0e3df58d5edf"/></dir><file name="Nexus.php" hash="65d93fb5dbfa747b2d59a5f521863fc6"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="d19f2af9ff020d2e0d31369cf43eac50"/></dir><dir name="Model"><file name="Calculation.php" hash="89c05ee42f8316563ea610f11b53a26d"/><file name="Categories.php" hash="934947240f1a1c7ae7b9ba323aacabd6"/><file name="Client.php" hash="1bda5172a54d2f7c7ef290a9d71a8f37"/><file name="Comment.php" hash="07bf5fbd4fe084233f11dc64a3b6de43"/><file name="Configuration.php" hash="c59b69931392eb896e4d0c46b7d2e38b"/><file name="Debug.php" hash="8cb4df29a5898e28d1f306c4ed224b56"/><dir name="Import"><file name="Comment.php" hash="958de1f883a6f67f1fa1c26d5d67e3ec"/><file name="Rate.php" hash="00ad69812c8d2f31915cac959483c1eb"/><file name="Rule.php" hash="597ff0e337b4e04e43660b4d4f05d0e0"/></dir><dir name="Observer"><file name="AdminMenuItems.php" hash="f62dbedd59e82f6b556c832064859ded"/><file name="AdminNotifications.php" hash="462c1210a649d81a2a49db7c03d7f293"/><file name="ConfigChanged.php" hash="9a916f26f223c22cda229c2e61a3d119"/><file name="ConfigReview.php" hash="d1ae83a4e074e034440f3074724bdefb"/><file name="ImportData.php" hash="ca21015ca41f8352fe015b4a82fc428d"/><file name="ImportRates.php" hash="95cbcd73ed1914bdfc3459631308d35d"/><file name="SalesQuoteCollectTotalsBefore.php" hash="37c28ddaf8a27d548bf463fff1aa7da1"/></dir><dir name="Resource"><dir name="Tax"><dir name="Nexus"><file name="Collection.php" hash="75cae3600991518db909a08d5031ff6a"/></dir><file name="Nexus.php" hash="b43e437c89ed549c9ec20af2841dfb1b"/></dir></dir><dir name="Sales"><dir name="Total"><dir name="Quote"><file name="Tax.php" hash="385d9e5622f30297f83c025c02cca2ac"/></dir></dir></dir><file name="Smartcalcs.php" hash="acd9bf32449dd416e0d79fe322f0e0c0"/><dir name="Tax"><dir name="Class"><dir name="Source"><file name="Customer.php" hash="9f2941032dc80219f9def35de5c5afc8"/><file name="Product.php" hash="3e0d0826d3d43e8a7c63f2e2e44b810a"/></dir></dir><file name="Nexus.php" hash="df4d5c4247d3a590647a91a25dda338b"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Tax"><file name="NexusController.php" hash="cc61d7e6dd1adc53996513d549c757bd"/></dir><file name="TaxjarController.php" hash="4aa4178a4f810c199de947b13223fdab"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="b88bc6bfb95dfbd8f5343ae0128dbe11"/><file name="config.xml" hash="de2ffbd59ae15382074417b1b364040d"/><file name="system.xml" hash="7307753f550f490112ded20317c1a07d"/></dir><dir name="sql"><dir name="salestax_setup"><file name="install-1.6.0.php" hash="9d400004ec642113a8cc907fe5d33960"/><file name="upgrade-2.0.1-2.1.0.php" hash="f4571be5edfe2a7d6a54a0e239792907"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Taxjar_SalesTax.xml" hash="552596be5ec12440753bf69ed6005747"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="taxjar"><dir name="nexus"><file name="form.phtml" hash="e5b3ac4950aa351f9bd0876f3adcf136"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 19 |
<compatible/>
|
| 20 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
| 21 |
</package>
|
