Version Notes
Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x
Download this release
Release Info
| Developer | Exactor, Inc. |
| Extension | Mage_Exactor_Tax |
| Version | 2015.03.31 |
| Comparing to | |
| See all releases | |
Code changes from version 2014.12.15 to 2015.03.31
- app/code/local/ZzzzzExactor/Sales/Model/Observer.php +3 -0
- app/code/local/ZzzzzExactor/Tax/Helper/Mapping.php +55 -2
- app/code/local/ZzzzzExactor/Tax/Model/Sales/Total/Quote/Tax.php +3 -0
- lib/ExactorCommons/ExactorCommons.php +31 -14
- lib/ExactorCommons/Magento.php +23 -10
- lib/ExactorCommons/config.php +1 -1
- package.xml +4 -4
app/code/local/ZzzzzExactor/Sales/Model/Observer.php
CHANGED
|
@@ -357,6 +357,9 @@ class ZzzzzExactor_Sales_Model_Observer
|
|
| 357 |
*/
|
| 358 |
private function applyTaxPercent($quoteItem, $resultItem)
|
| 359 |
{
|
|
|
|
|
|
|
|
|
|
| 360 |
$taxPercent = 0;
|
| 361 |
foreach ($resultItem->getTaxInfo() as $taxInfo) {
|
| 362 |
$taxPercent += $taxInfo->getTaxRate();
|
| 357 |
*/
|
| 358 |
private function applyTaxPercent($quoteItem, $resultItem)
|
| 359 |
{
|
| 360 |
+
if (!$resultItem->getTaxInfo()) {
|
| 361 |
+
return;
|
| 362 |
+
}
|
| 363 |
$taxPercent = 0;
|
| 364 |
foreach ($resultItem->getTaxInfo() as $taxInfo) {
|
| 365 |
$taxPercent += $taxInfo->getTaxRate();
|
app/code/local/ZzzzzExactor/Tax/Helper/Mapping.php
CHANGED
|
@@ -436,12 +436,13 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
|
|
| 436 |
if (!$this->isDiscountExempt($magentoItem)) {
|
| 437 |
$this->applyDiscountToLineItem($lineItem, $magentoItem->getDiscountAmount());
|
| 438 |
}
|
| 439 |
-
// Check if it is bundle or
|
| 440 |
$product = $magentoItem->getProduct();
|
| 441 |
if (empty($product) && $magentoItem->getOrderItem() != null) {
|
| 442 |
$product = $magentoItem->getOrderItem()->getProduct();
|
| 443 |
}
|
| 444 |
-
|
|
|
|
| 445 |
$product = Mage::getModel('catalog/product')
|
| 446 |
->setStoreId($magentoItem->getStoreId())
|
| 447 |
->load($magentoItem->getProductId());
|
|
@@ -453,6 +454,11 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
|
|
| 453 |
return null; // Doesn't show it in the Exactor transaction.
|
| 454 |
}
|
| 455 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 456 |
return $lineItem;
|
| 457 |
}
|
| 458 |
|
|
@@ -969,4 +975,51 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
|
|
| 969 |
return $this->isAddessFullyPopulated($invoice->getShipTo());
|
| 970 |
//&& $this->isAddessFullyPopulated($invoice->getBillTo());
|
| 971 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 972 |
}
|
| 436 |
if (!$this->isDiscountExempt($magentoItem)) {
|
| 437 |
$this->applyDiscountToLineItem($lineItem, $magentoItem->getDiscountAmount());
|
| 438 |
}
|
| 439 |
+
// Check if it is bundle or grouped product
|
| 440 |
$product = $magentoItem->getProduct();
|
| 441 |
if (empty($product) && $magentoItem->getOrderItem() != null) {
|
| 442 |
$product = $magentoItem->getOrderItem()->getProduct();
|
| 443 |
}
|
| 444 |
+
$isSfcDropshipCommerceModuleEnabled = $this->isSfcDropshipCommerceModuleEnabled();
|
| 445 |
+
if ($magentoItem->getProductId() != null && (empty($product) || $isSfcDropshipCommerceModuleEnabled)) {
|
| 446 |
$product = Mage::getModel('catalog/product')
|
| 447 |
->setStoreId($magentoItem->getStoreId())
|
| 448 |
->load($magentoItem->getProductId());
|
| 454 |
return null; // Doesn't show it in the Exactor transaction.
|
| 455 |
}
|
| 456 |
}
|
| 457 |
+
|
| 458 |
+
if ($isSfcDropshipCommerceModuleEnabled) {
|
| 459 |
+
$lineItem->setShipFrom($this->buildExactorAddressForProductShipFrom($product));
|
| 460 |
+
}
|
| 461 |
+
|
| 462 |
return $lineItem;
|
| 463 |
}
|
| 464 |
|
| 975 |
return $this->isAddessFullyPopulated($invoice->getShipTo());
|
| 976 |
//&& $this->isAddessFullyPopulated($invoice->getBillTo());
|
| 977 |
}
|
| 978 |
+
|
| 979 |
+
//region SFC_DropshipCommerce related methods
|
| 980 |
+
/**
|
| 981 |
+
* Designed to be used in getSupplierShipFromAddress only. Represents supplier address per request cache.
|
| 982 |
+
* @var array {supplierId(int):shipFrom(AddressType)}
|
| 983 |
+
*/
|
| 984 |
+
private $supplierCache = array();
|
| 985 |
+
|
| 986 |
+
private function getSupplierShipFromAddress($supplierId)
|
| 987 |
+
{
|
| 988 |
+
if (array_key_exists($supplierId, $this->supplierCache)) {
|
| 989 |
+
return $this->supplierCache[$supplierId];
|
| 990 |
+
}
|
| 991 |
+
/** @var SFC_DropshipCommerce_Model_Supplier $supplier */
|
| 992 |
+
$supplier = Mage::getModel('dropshipcommerce/supplier')->load($supplierId);
|
| 993 |
+
$shipFrom = $this->buildExactorAddressForSupplier($supplier);
|
| 994 |
+
$this->supplierCache[$supplierId] = $shipFrom;
|
| 995 |
+
return $shipFrom;
|
| 996 |
+
}
|
| 997 |
+
|
| 998 |
+
/**
|
| 999 |
+
* @param Mage_Catalog_Model_Product $product
|
| 1000 |
+
* @return AddressType|null
|
| 1001 |
+
*/
|
| 1002 |
+
private function buildExactorAddressForProductShipFrom($product)
|
| 1003 |
+
{
|
| 1004 |
+
if ($product == null) return null;
|
| 1005 |
+
$exactorAddress = new AddressType();
|
| 1006 |
+
$exactorAddress->setFullName($product->getData('ship_from_attention'));
|
| 1007 |
+
$exactorAddress->setStreet1($product->getData('ship_from_address_1'));
|
| 1008 |
+
$exactorAddress->setStreet2($product->getData('ship_from_address_2'));
|
| 1009 |
+
$exactorAddress->setCity($product->getData('ship_from_city'));
|
| 1010 |
+
$exactorAddress->setStateOrProvince($product->getData('ship_from_state'));
|
| 1011 |
+
$exactorAddress->setPostalCode($product->getData('ship_from_postal_code'));
|
| 1012 |
+
$exactorAddress->setCountry($product->getData('ship_from_country'));
|
| 1013 |
+
if (!$exactorAddress->hasData()) return null;
|
| 1014 |
+
return $exactorAddress;
|
| 1015 |
+
}
|
| 1016 |
+
|
| 1017 |
+
/**
|
| 1018 |
+
* @return bool true if SFC_DropshipCommerce module enabled, false otherwise
|
| 1019 |
+
*/
|
| 1020 |
+
private function isSfcDropshipCommerceModuleEnabled()
|
| 1021 |
+
{
|
| 1022 |
+
return Mage::helper('core')->isModuleEnabled('SFC_DropshipCommerce');
|
| 1023 |
+
}
|
| 1024 |
+
//endregion
|
| 1025 |
}
|
app/code/local/ZzzzzExactor/Tax/Model/Sales/Total/Quote/Tax.php
CHANGED
|
@@ -252,6 +252,9 @@ class ZzzzzExactor_Tax_Model_Sales_Total_Quote_Tax extends Mage_Sales_Model_Quot
|
|
| 252 |
*/
|
| 253 |
private function applyTaxPercent($quoteItem, $resultItem)
|
| 254 |
{
|
|
|
|
|
|
|
|
|
|
| 255 |
$taxPercent = 0;
|
| 256 |
foreach ($resultItem->getTaxInfo() as $taxInfo) {
|
| 257 |
$taxPercent += $taxInfo->getTaxRate();
|
| 252 |
*/
|
| 253 |
private function applyTaxPercent($quoteItem, $resultItem)
|
| 254 |
{
|
| 255 |
+
if (!$resultItem->getTaxInfo()) {
|
| 256 |
+
return;
|
| 257 |
+
}
|
| 258 |
$taxPercent = 0;
|
| 259 |
foreach ($resultItem->getTaxInfo() as $taxInfo) {
|
| 260 |
$taxPercent += $taxInfo->getTaxRate();
|
lib/ExactorCommons/ExactorCommons.php
CHANGED
|
@@ -6,7 +6,8 @@
|
|
| 6 |
* Time: 5:33 PM
|
| 7 |
*/
|
| 8 |
|
| 9 |
-
abstract class IExactorLogger
|
|
|
|
| 10 |
|
| 11 |
const TRACE = 0;
|
| 12 |
const DEBUG = 1;
|
|
@@ -15,32 +16,48 @@ abstract class IExactorLogger{
|
|
| 15 |
|
| 16 |
private $logLevel = self::INFO;
|
| 17 |
private $loggerName = 'root';
|
| 18 |
-
protected abstract function doOutput($body);
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
// Check if we should just skip this message on our Log Level
|
| 23 |
if ($level < $this->getLogLevel()) return;
|
| 24 |
|
| 25 |
-
if ($callee==null)
|
| 26 |
$callee = '';
|
| 27 |
-
$
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
}
|
| 30 |
|
| 31 |
-
public function debug($msg, $callee=null)
|
|
|
|
| 32 |
$this->log($msg, $callee, self::DEBUG);
|
| 33 |
}
|
| 34 |
|
| 35 |
-
public function trace($msg, $callee=null)
|
|
|
|
| 36 |
$this->log($msg, $callee, self::TRACE);
|
| 37 |
}
|
| 38 |
|
| 39 |
-
public function info($msg, $callee=null)
|
|
|
|
| 40 |
$this->log($msg, $callee, self::INFO);
|
| 41 |
}
|
| 42 |
|
| 43 |
-
public function error($msg, $callee=null)
|
|
|
|
| 44 |
$this->log($msg, $callee, self::ERROR);
|
| 45 |
}
|
| 46 |
|
|
@@ -56,7 +73,7 @@ abstract class IExactorLogger{
|
|
| 56 |
|
| 57 |
public function setLoggerName($loggerName)
|
| 58 |
{
|
| 59 |
-
if (!is_string($loggerName)){ // This is not class name
|
| 60 |
$loggerName = get_class($loggerName); // Get class name
|
| 61 |
}
|
| 62 |
$this->loggerName = $loggerName;
|
|
@@ -68,12 +85,12 @@ abstract class IExactorLogger{
|
|
| 68 |
}
|
| 69 |
}
|
| 70 |
|
| 71 |
-
class ExactorFakeLogger extends IExactorLogger
|
| 72 |
-
|
|
|
|
| 73 |
{
|
| 74 |
// Just do nothing
|
| 75 |
}
|
| 76 |
-
|
| 77 |
}
|
| 78 |
|
| 79 |
class ExactorLoggingFactory{
|
| 6 |
* Time: 5:33 PM
|
| 7 |
*/
|
| 8 |
|
| 9 |
+
abstract class IExactorLogger
|
| 10 |
+
{
|
| 11 |
|
| 12 |
const TRACE = 0;
|
| 13 |
const DEBUG = 1;
|
| 16 |
|
| 17 |
private $logLevel = self::INFO;
|
| 18 |
private $loggerName = 'root';
|
|
|
|
| 19 |
|
| 20 |
+
protected abstract function doOutput($message, $callee, $level, $time);
|
| 21 |
+
|
| 22 |
+
public function log($message, $callee = null, $level = self::DEBUG)
|
| 23 |
+
{
|
| 24 |
|
| 25 |
// Check if we should just skip this message on our Log Level
|
| 26 |
if ($level < $this->getLogLevel()) return;
|
| 27 |
|
| 28 |
+
if ($callee == null)
|
| 29 |
$callee = '';
|
| 30 |
+
$this->doOutput($message, $callee, $level, new DateTime());
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/**
|
| 34 |
+
* @param $message string
|
| 35 |
+
* @param $callee string
|
| 36 |
+
* @param $time DateTime
|
| 37 |
+
* @return string in default log format
|
| 38 |
+
*/
|
| 39 |
+
protected function format($message, $callee, $time)
|
| 40 |
+
{
|
| 41 |
+
return '[' . $time->format('Y-m-d H:i:s') . '] ' . $this->getLoggerName() . ' - ' . $callee . ': ' . $message . "\n";
|
| 42 |
}
|
| 43 |
|
| 44 |
+
public function debug($msg, $callee = null)
|
| 45 |
+
{
|
| 46 |
$this->log($msg, $callee, self::DEBUG);
|
| 47 |
}
|
| 48 |
|
| 49 |
+
public function trace($msg, $callee = null)
|
| 50 |
+
{
|
| 51 |
$this->log($msg, $callee, self::TRACE);
|
| 52 |
}
|
| 53 |
|
| 54 |
+
public function info($msg, $callee = null)
|
| 55 |
+
{
|
| 56 |
$this->log($msg, $callee, self::INFO);
|
| 57 |
}
|
| 58 |
|
| 59 |
+
public function error($msg, $callee = null)
|
| 60 |
+
{
|
| 61 |
$this->log($msg, $callee, self::ERROR);
|
| 62 |
}
|
| 63 |
|
| 73 |
|
| 74 |
public function setLoggerName($loggerName)
|
| 75 |
{
|
| 76 |
+
if (!is_string($loggerName)) { // This is not class name
|
| 77 |
$loggerName = get_class($loggerName); // Get class name
|
| 78 |
}
|
| 79 |
$this->loggerName = $loggerName;
|
| 85 |
}
|
| 86 |
}
|
| 87 |
|
| 88 |
+
class ExactorFakeLogger extends IExactorLogger
|
| 89 |
+
{
|
| 90 |
+
protected function doOutput($message, $callee, $level, $time)
|
| 91 |
{
|
| 92 |
// Just do nothing
|
| 93 |
}
|
|
|
|
| 94 |
}
|
| 95 |
|
| 96 |
class ExactorLoggingFactory{
|
lib/ExactorCommons/Magento.php
CHANGED
|
@@ -1,18 +1,30 @@
|
|
| 1 |
<?php
|
|
|
|
| 2 |
/**
|
| 3 |
* User: LOGICIFY\corvis
|
| 4 |
* Date: 4/20/12
|
| 5 |
* Time: 10:39 AM
|
| 6 |
*/
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
{
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
| 12 |
}
|
| 13 |
}
|
| 14 |
|
| 15 |
-
class MagentoExactorCallback extends IExactorPluginCallback
|
|
|
|
| 16 |
|
| 17 |
private $logger;
|
| 18 |
/**
|
|
@@ -20,7 +32,8 @@ class MagentoExactorCallback extends IExactorPluginCallback{
|
|
| 20 |
*/
|
| 21 |
private $sessionCache;
|
| 22 |
|
| 23 |
-
public function __construct()
|
|
|
|
| 24 |
$this->logger = ExactorLoggingFactory::getInstance()->getLogger($this);
|
| 25 |
$this->sessionCache = Mage::helper('ZzzzzExactor_Core_SessionCache/');
|
| 26 |
}
|
|
@@ -34,9 +47,9 @@ class MagentoExactorCallback extends IExactorPluginCallback{
|
|
| 34 |
function loadTransactionInfo($shoppingCartTrnId)
|
| 35 |
{
|
| 36 |
$this->logger->trace('called', 'loadTransactionInfo');
|
| 37 |
-
/** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction
|
| 38 |
$exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 39 |
-
$exatorTransaction = $exatorTransaction->getCollection()->addFilter("OrderID"
|
| 40 |
if (!$exatorTransaction->hasData()) return null;
|
| 41 |
// Populating common object with DB dat
|
| 42 |
$transactionInfo = new ExactorTransactionInfo();
|
|
@@ -61,10 +74,10 @@ class MagentoExactorCallback extends IExactorPluginCallback{
|
|
| 61 |
function saveTransactionInfo(ExactorTransactionInfo $transactionInfo, $requestKey)
|
| 62 |
{
|
| 63 |
$this->logger->trace('called', 'saveTransactionInfo');
|
| 64 |
-
/** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction
|
| 65 |
$exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 66 |
$exatorTransaction = $exatorTransaction->getCollection()
|
| 67 |
-
|
| 68 |
if (!$exatorTransaction->hasData()) $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 69 |
|
| 70 |
$transactionInfo->setSignature($requestKey);
|
| 1 |
<?php
|
| 2 |
+
|
| 3 |
/**
|
| 4 |
* User: LOGICIFY\corvis
|
| 5 |
* Date: 4/20/12
|
| 6 |
* Time: 10:39 AM
|
| 7 |
*/
|
| 8 |
+
class MagentoLogger extends IExactorLogger
|
| 9 |
+
{
|
| 10 |
+
private static $severity_mapping = array(
|
| 11 |
+
self::TRACE => Zend_Log::DEBUG,
|
| 12 |
+
self::DEBUG => Zend_Log::DEBUG,
|
| 13 |
+
self::INFO => Zend_Log::INFO,
|
| 14 |
+
self::ERROR => Zend_Log::ERR
|
| 15 |
+
);
|
| 16 |
+
|
| 17 |
+
protected function doOutput($message, $callee, $level, $time)
|
| 18 |
{
|
| 19 |
+
if ($callee) {
|
| 20 |
+
$callee = ' - ' . $callee;
|
| 21 |
+
}
|
| 22 |
+
Mage::Log($this->getLoggerName() . $callee . ': ' . $message, self::$severity_mapping[$level], "exactor.log");
|
| 23 |
}
|
| 24 |
}
|
| 25 |
|
| 26 |
+
class MagentoExactorCallback extends IExactorPluginCallback
|
| 27 |
+
{
|
| 28 |
|
| 29 |
private $logger;
|
| 30 |
/**
|
| 32 |
*/
|
| 33 |
private $sessionCache;
|
| 34 |
|
| 35 |
+
public function __construct()
|
| 36 |
+
{
|
| 37 |
$this->logger = ExactorLoggingFactory::getInstance()->getLogger($this);
|
| 38 |
$this->sessionCache = Mage::helper('ZzzzzExactor_Core_SessionCache/');
|
| 39 |
}
|
| 47 |
function loadTransactionInfo($shoppingCartTrnId)
|
| 48 |
{
|
| 49 |
$this->logger->trace('called', 'loadTransactionInfo');
|
| 50 |
+
/** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
|
| 51 |
$exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 52 |
+
$exatorTransaction = $exatorTransaction->getCollection()->addFilter("OrderID", $shoppingCartTrnId)->getFirstItem();
|
| 53 |
if (!$exatorTransaction->hasData()) return null;
|
| 54 |
// Populating common object with DB dat
|
| 55 |
$transactionInfo = new ExactorTransactionInfo();
|
| 74 |
function saveTransactionInfo(ExactorTransactionInfo $transactionInfo, $requestKey)
|
| 75 |
{
|
| 76 |
$this->logger->trace('called', 'saveTransactionInfo');
|
| 77 |
+
/** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
|
| 78 |
$exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 79 |
$exatorTransaction = $exatorTransaction->getCollection()
|
| 80 |
+
->addFilter("OrderID", $transactionInfo->getShoppingCartTrnId())->getFirstItem();
|
| 81 |
if (!$exatorTransaction->hasData()) $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
|
| 82 |
|
| 83 |
$transactionInfo->setSignature($requestKey);
|
lib/ExactorCommons/config.php
CHANGED
|
@@ -23,7 +23,7 @@ define('EXACTOR_CONFIG_ALWAYS_OVERRIDE_TAX', 'always-override-tax');
|
|
| 23 |
|
| 24 |
/* Initializing factories */
|
| 25 |
ExactorLoggingFactory::getInstance()->setup('MagentoLogger', IExactorLogger::DEBUG);
|
| 26 |
-
ExactorConnectionFactory::getInstance()->setup('Magento','
|
| 27 |
ExactorProcessingServiceFactory::getInstance()->setup(new MagentoExactorCallback());
|
| 28 |
|
| 29 |
/* Initializing configuration object */
|
| 23 |
|
| 24 |
/* Initializing factories */
|
| 25 |
ExactorLoggingFactory::getInstance()->setup('MagentoLogger', IExactorLogger::DEBUG);
|
| 26 |
+
ExactorConnectionFactory::getInstance()->setup('Magento','20150331');
|
| 27 |
ExactorProcessingServiceFactory::getInstance()->setup(new MagentoExactorCallback());
|
| 28 |
|
| 29 |
/* Initializing configuration object */
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Mage_Exactor_Tax</name>
|
| 4 |
-
<version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -12,9 +12,9 @@ Once installed, neither the merchant, nor the customer, need to perform any addi
|
|
| 12 |
For additional information, please refer to the Exactor Magento User Guide that is attached to the plug-in, or which you can download directly from the Exactor control panel (navigate to Account Management Integration Points & PlugIns).</description>
|
| 13 |
<notes>Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x</notes>
|
| 14 |
<authors><author><name>Exactor, Inc.</name><user>exactor</user><email>support@exactor.com</email></author></authors>
|
| 15 |
-
<date>
|
| 16 |
-
<time>
|
| 17 |
-
<contents><target name="magelocal"><dir name="ZzzzzExactor"><dir name="Core"><dir name="Helper"><file name="SessionCache.php" hash="4a48ea63099201bc04581febe21b7237"/></dir><dir name="Model"><file name="ExactorTransaction.php" hash="aee2205ef1e8b58fe8fead7385af2fdd"/><file name="MerchantSettings.php" hash="b58bcf01d15af966358aa1e0f27b9fbe"/><dir name="Mysql4"><dir name="ExactorTransaction"><file name="Collection.php" hash="5078855300f1b8895c5429fb10f37854"/></dir><file name="ExactorTransaction.php" hash="4b8f45cc739ac05b71be3f38c0138109"/><dir name="MerchantSettings"><file name="Collection.php" hash="4c7e905444d9f02c1e82033cd147afc5"/></dir><file name="MerchantSettings.php" hash="fd98ded15c7dde7bcc1746a40c24aa85"/></dir><dir name="Type"><file name="Onepage.php" hash="8c9c744d769f4064dcc344d4d474dd2a"/></dir></dir><dir name="etc"><file name="config.xml" hash="654bd7d22e5a308722d8769a1233ad80"/></dir></dir><dir name="ExactorSettings"><dir name="Block"><file name="Form.php" hash="3189371ce1fca8f2ff72b165da762e2e"/></dir><dir name="Helper"><file name="Data.php" hash="08ff0be3da068e35731d5cbcb5ca031d"/><file name="VersionResolver.php" hash="e05646123b776551295cdc1050eb80a0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FormController.php" hash="83e0faaffe8a93e4fbccf9e0c0b4914f"/></dir><file name="AjaxController.php" hash="e0a9122472eebdf2ba9d703b35e528e6"/><file name="IndexController.php" hash="064275cda39bf28a23f0e30cda85d546"/></dir><dir name="etc"><file name="config.xml" hash="63ed7c63ac663fa72b1a645275499c34"/></dir><dir name="sql"><dir name="ExactorSettings_setup"><file name="mysql4-install-14.04.2012.php" hash="171dcba8395c21dccd336c86cd92db5d"/><file name="upgrade-2012.06.14-2012.09.25.php" hash="217c13f3fecf41decff7f0cbc908f0f8"/></dir></dir></dir><dir name="Sales"><dir name="Model"><file name="Observer.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>Mage_Exactor_Tax</name>
|
| 4 |
+
<version>2015.03.31</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 12 |
For additional information, please refer to the Exactor Magento User Guide that is attached to the plug-in, or which you can download directly from the Exactor control panel (navigate to Account Management Integration Points & PlugIns).</description>
|
| 13 |
<notes>Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x</notes>
|
| 14 |
<authors><author><name>Exactor, Inc.</name><user>exactor</user><email>support@exactor.com</email></author></authors>
|
| 15 |
+
<date>2015-03-31</date>
|
| 16 |
+
<time>08:32:56</time>
|
| 17 |
+
<contents><target name="magelocal"><dir name="ZzzzzExactor"><dir name="Core"><dir name="Helper"><file name="SessionCache.php" hash="4a48ea63099201bc04581febe21b7237"/></dir><dir name="Model"><file name="ExactorTransaction.php" hash="aee2205ef1e8b58fe8fead7385af2fdd"/><file name="MerchantSettings.php" hash="b58bcf01d15af966358aa1e0f27b9fbe"/><dir name="Mysql4"><dir name="ExactorTransaction"><file name="Collection.php" hash="5078855300f1b8895c5429fb10f37854"/></dir><file name="ExactorTransaction.php" hash="4b8f45cc739ac05b71be3f38c0138109"/><dir name="MerchantSettings"><file name="Collection.php" hash="4c7e905444d9f02c1e82033cd147afc5"/></dir><file name="MerchantSettings.php" hash="fd98ded15c7dde7bcc1746a40c24aa85"/></dir><dir name="Type"><file name="Onepage.php" hash="8c9c744d769f4064dcc344d4d474dd2a"/></dir></dir><dir name="etc"><file name="config.xml" hash="654bd7d22e5a308722d8769a1233ad80"/></dir></dir><dir name="ExactorSettings"><dir name="Block"><file name="Form.php" hash="3189371ce1fca8f2ff72b165da762e2e"/></dir><dir name="Helper"><file name="Data.php" hash="08ff0be3da068e35731d5cbcb5ca031d"/><file name="VersionResolver.php" hash="e05646123b776551295cdc1050eb80a0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FormController.php" hash="83e0faaffe8a93e4fbccf9e0c0b4914f"/></dir><file name="AjaxController.php" hash="e0a9122472eebdf2ba9d703b35e528e6"/><file name="IndexController.php" hash="064275cda39bf28a23f0e30cda85d546"/></dir><dir name="etc"><file name="config.xml" hash="63ed7c63ac663fa72b1a645275499c34"/></dir><dir name="sql"><dir name="ExactorSettings_setup"><file name="mysql4-install-14.04.2012.php" hash="171dcba8395c21dccd336c86cd92db5d"/><file name="upgrade-2012.06.14-2012.09.25.php" hash="217c13f3fecf41decff7f0cbc908f0f8"/></dir></dir></dir><dir name="Sales"><dir name="Model"><file name="Observer.php" hash="0b17d3af621eaecba8307a1b8dceb75a"/></dir><dir name="etc"><file name="config.xml" hash="20483c2cc3730e5ea279023ef47c3d14"/></dir></dir><dir name="Tax"><dir name="Helper"><file name="Calculation.php" hash="30378738db4beea10d7caeb256018be6"/><file name="Mapping.php" hash="4573f592518b32247ff812edc8e0aeec"/></dir><dir name="Model"><dir name="Sales"><dir name="Total"><dir name="Quote"><dir name="Nominal"><file name="Tax.php" hash="46e0b7698aee6354278cf59d34192d2d"/></dir><file name="Tax.php" hash="fd51a300f74a5d74ce7ef0564dd1b928"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="1c3235fa291ec1d81855a5015376cf51"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="exactorsettings.xml" hash="c6411fb02004382e2bde340e2eea8ba1"/><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir><dir name="template"><dir name="ExactorSettings"><file name="settingsform.phtml" hash="c423218861b708c3d572ac77623c6280"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ZzzzzExactor.xml" hash="d5d93cb5e6608f3cf87f5a57ed1448c7"/></dir></target><target name="mageweb"><dir name="js"><dir name="exactor"><file name="exactor.js" hash="5c23e40f4034e50a6e0df5b1c708b7e1"/></dir></dir></target><target name="magelib"><dir name="ExactorCommons"><file name="ExactorCommons.php" hash="167d88ecdd599a2445f394f46293db7c"/><file name="ExactorDomainObjects.php" hash="c708118429f6bea5c5c3a9c4caf28e99"/><file name="Magento.php" hash="190c773212f194297550d36ef404cf5b"/><file name="RegionResolver.php" hash="2537638a7895a169cee4b1df786d22fb"/><file name="XmlProcessing.php" hash="1fe961d5c14d507b2bb82fd3dd94237c"/><file name="config.php" hash="82adf99c19353622606bac865ea8628c"/></dir></target></contents>
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
</package>
|
