iparcel_carthandoff - Version 1.6.2

Version Notes

Notes

Download this release

Release Info

Developer Bobby Burden
Extension iparcel_carthandoff
Version 1.6.2
Comparing to
See all releases


Code changes from version 1.6.1 to 1.6.2

app/code/community/Iparcel/CartHandoff/Helper/Api.php CHANGED
@@ -154,9 +154,20 @@ class Iparcel_CartHandoff_Helper_Api extends Iparcel_All_Helper_Api
154
  $total += $totals[$key]->getValue();
155
  }
156
  }
 
 
 
 
 
 
 
 
 
 
 
157
 
158
  $request['discount_amount_cart'] = round(
159
- $total - $quote->getGrandTotal(),
160
  2
161
  );
162
 
@@ -846,6 +857,18 @@ class Iparcel_CartHandoff_Helper_Api extends Iparcel_All_Helper_Api
846
  $prepaidAmount += $credit->getStorecreditAmount();
847
  }
848
  }
 
 
 
 
 
 
 
 
 
 
 
 
849
  }
850
 
851
  return $prepaidAmount;
154
  $total += $totals[$key]->getValue();
155
  }
156
  }
157
+
158
+ // Support for Unirgy_GiftCert
159
+ $unirgyGiftCert = 0;
160
+ if (class_exists('Unirgy_Giftcert_Model_Quote_Total', false)) {
161
+ $unirgyTotals = $quote->getTotals();
162
+ $unirgyTotals = $unirgyTotals['ugiftcert'];
163
+
164
+ if (is_object($unirgyTotals)) {
165
+ $unirgyGiftCert = $unirgyTotals->getData('value');
166
+ }
167
+ }
168
 
169
  $request['discount_amount_cart'] = round(
170
+ $total - ($quote->getGrandTotal() + $unirgyGiftCert),
171
  2
172
  );
173
 
857
  $prepaidAmount += $credit->getStorecreditAmount();
858
  }
859
  }
860
+ } elseif ($quote->getGiftCardsAmountUsed()) {
861
+ $prepaidAmount = $quote->getGiftCardsAmountUsed();
862
+ }
863
+
864
+ // Support for Unirgy GiftCert
865
+ if (class_exists('Unirgy_Giftcert_Model_Quote_Total', false)) {
866
+ $unirgyTotals = $quote->getTotals();
867
+ $unirgyTotals = $unirgyTotals['ugiftcert'];
868
+
869
+ if (is_object($unirgyTotals)) {
870
+ $prepaidAmount += $unirgyTotals->getData('value');
871
+ }
872
  }
873
 
874
  return $prepaidAmount;
app/code/community/Iparcel/CartHandoff/Model/Observer.php CHANGED
@@ -35,6 +35,11 @@ class Iparcel_CartHandoff_Model_Observer
35
  }
36
  }
37
 
 
 
 
 
 
38
  $block->setMethods($methods);
39
  }
40
  }
35
  }
36
  }
37
 
38
+ // Make sure that our payment method is set if applicable
39
+ if (count($methods) == 0) {
40
+ $methods[] = $paymentMethod;
41
+ }
42
+
43
  $block->setMethods($methods);
44
  }
45
  }
app/code/community/Iparcel/CartHandoff/Model/Resource/Txid.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Resource Model for Iparcel_Carthandoff_Model_Txid
4
+ *
5
+ * @category Iparcel
6
+ * @package Iparcel_CartHandoff
7
+ * @author Bobby Burden <bburden@i-parcel.com>
8
+ */
9
+ class Iparcel_Carthandoff_Model_Resource_Txid
10
+ extends Mage_Core_Model_Resource_Db_Abstract
11
+ {
12
+ /**
13
+ * Initializing Resource
14
+ */
15
+ protected function _construct()
16
+ {
17
+ $this->_init('ipcarthandoff/txid', 'id');
18
+ }
19
+ }
app/code/community/Iparcel/CartHandoff/Model/Resource/Txid/Collection.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Collection model for Iparcel_CartHandoff_Model_Txid
4
+ *
5
+ * @category Iparcel
6
+ * @package Iparcel_CartHandoff
7
+ * @author Bobby Burden <bburden@i-parcel.com>
8
+ */
9
+ class Iparcel_CartHandoff_Model_Resource_Txid_Collection
10
+ extends Mage_Core_Model_Resource_Db_Collection_Abstract
11
+ {
12
+ /**
13
+ * Initializing Resource Collection
14
+ */
15
+ public function _construct()
16
+ {
17
+ $this->_init('ipcarthandoff/txid');
18
+ }
19
+ }
app/code/community/Iparcel/CartHandoff/Model/Txid.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Model for storing history of TX IDs used with CartHandoff
4
+ *
5
+ * @category Iparcel
6
+ * @package Iparcel_CartHandoff
7
+ * @author Bobby Burden <bburden@i-parcel.com>
8
+ */
9
+ class Iparcel_CartHandoff_Model_Txid extends Mage_Core_Model_Abstract
10
+ {
11
+ /**
12
+ * Initialize resource model
13
+ */
14
+ protected function _construct()
15
+ {
16
+ $this->_init('ipcarthandoff/txid');
17
+ }
18
+
19
+ public function loadByTxid($txid) {
20
+ $txid = $this->getCollection()
21
+ ->addFieldToFilter('txid', $txid)
22
+ ->getFirstItem();
23
+
24
+ if ($txid->getId()) {
25
+ return $txid;
26
+ }
27
+
28
+ return false;
29
+ }
30
+ }
app/code/community/Iparcel/CartHandoff/controllers/HandoffController.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Controller for handling Cart Handoff
4
  *
@@ -10,6 +11,7 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
10
  {
11
  protected $_session = null;
12
  protected $_quote = null;
 
13
 
14
  /**
15
  * Grab user's checkout session and quote
@@ -38,8 +40,9 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
38
  $customer = $this->_quote->getCustomer();
39
 
40
  if (!Mage::helper('checkout')->isAllowedGuestCheckout(
41
- $this->_quote,
42
- $this->_quote->getStoreId()) && $customer->getId() == null
 
43
  ) {
44
  // Prevent guests from checking out
45
  $this->_session->setBeforeAuthUrl(
@@ -129,30 +132,74 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
129
  public function returnAction()
130
  {
131
  $transactionId = $this->getRequest()->getParam('tx');
 
132
  $apiHelper = Mage::helper('ipcarthandoff/api');
133
 
134
- $checkoutDetailsResponse = $apiHelper->getCheckoutDetails(
135
- $transactionId,
136
- $this->_session
137
- );
138
 
139
- // Handle error status
140
- if ($checkoutDetailsResponse->status == 'FAILED'
141
- || property_exists($checkoutDetailsResponse, 'status') == false
142
- ) {
143
- $this->_session->addError($checkoutDetailsResponse->message);
144
- $this->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
145
- return;
146
  } else {
147
- $order = $this->_buildOrder($checkoutDetailsResponse, $this->_session);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
 
 
 
 
150
  $this->_prepareSuccessPage($order);
151
  $this->loadLayout();
152
- Mage::dispatchEvent('checkout_onepage_controller_success_action',
153
- array(
154
- 'order_ids' => $this->_orderIds
155
- )
 
 
 
 
 
 
 
156
  );
157
  $this->renderLayout();
158
 
@@ -165,35 +212,7 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
165
  */
166
  public function paymentReturnAction()
167
  {
168
- $transactionId = $this->getRequest()->getParam('tx');
169
- $apiHelper = Mage::helper('ipcarthandoff/api');
170
-
171
- $checkoutDetailsResponse = $apiHelper->getCheckoutDetails(
172
- $transactionId,
173
- $this->_session
174
- );
175
-
176
- // Handle error status
177
- if ($checkoutDetailsResponse->status == 'FAILED'
178
- || property_exists($checkoutDetailsResponse, 'status') == false
179
- ) {
180
- $this->_session->addError($checkoutDetailsResponse->message);
181
- $this->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
182
- return;
183
- } else {
184
- $order = $this->_buildOrder($checkoutDetailsResponse, $this->_session);
185
- }
186
-
187
-
188
- // Show the order review page
189
- $this->_prepareSuccessPage($order);
190
- $this->loadLayout();
191
- Mage::dispatchEvent('checkout_onepage_controller_success_action',
192
- array(
193
- 'order_ids' => $this->_orderIds
194
- )
195
- );
196
- $this->renderLayout();
197
  }
198
 
199
  /**
@@ -255,32 +274,44 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
255
  * @param object $response Response from the API
256
  * @param object $session User's session
257
  * @return mixed Order is returned on success. Error string on failure
 
258
  */
259
  private function _buildOrder($response, $session)
260
  {
261
- // Pull the quote ID from the response. Apply it to the current session
262
  $quoteId = $response->reference_number;
 
 
 
 
 
 
 
263
  $quote = Mage::getModel('sales/quote')->load($quoteId);
264
  $session = $session->replaceQuote($quote);
265
 
266
  try {
267
- // Make sure the order doesn't exist before attempting
268
- // to build a new order
269
- $order = Mage::helper('ipcarthandoff')
270
- ->loadOrderByTrackingNumber($response->trackingnumber);
271
-
272
- if ($order == false) {
273
- $order = Mage::helper('ipcarthandoff/api')->buildOrder(
274
- $session->getQuote(), $response
275
- );
276
- }
277
  } catch (Exception $e) {
278
  Mage::logException($e);
279
- // This catches any excpetions thrown during order creation.
280
 
 
 
 
 
 
 
 
281
  $order = $this->_loadAndVerify($response, $quote);
282
 
283
  if ($order == false) {
 
 
 
 
284
  /**
285
  * If the Magento order cannot be created, or was created incorrectly,
286
  * attempt to load the order and cancel it if it exists.
@@ -289,15 +320,29 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
289
  $order->loadByAttribute('quote_id', $quote->getId());
290
 
291
  if ($order->getId() != null) {
 
 
 
292
  $order->cancel();
293
  }
294
 
 
 
 
 
 
 
 
295
  // Should only hit this point if there is no way to recover from
296
  // errors during order creation
297
  return $e->getMessage();
298
  }
299
  }
300
 
 
 
 
 
301
  return $order;
302
  }
303
 
@@ -329,9 +374,9 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
329
  }
330
 
331
  $responseGrandTotal = $responseGrandTotal
332
- + $response->shipping_cost
333
- + $response->duty
334
- + $response->tax;
335
  $responseGrandTotal -= $response->discount_amount_cart;
336
 
337
  // Verify that the order totals match the information in the response.
@@ -349,4 +394,47 @@ class Iparcel_CartHandoff_HandoffController extends Mage_Core_Controller_Front_A
349
 
350
  return false;
351
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  }
1
  <?php
2
+
3
  /**
4
  * Controller for handling Cart Handoff
5
  *
11
  {
12
  protected $_session = null;
13
  protected $_quote = null;
14
+ protected $iparcelLogfile = 'iparcel_carthandoff.log';
15
 
16
  /**
17
  * Grab user's checkout session and quote
40
  $customer = $this->_quote->getCustomer();
41
 
42
  if (!Mage::helper('checkout')->isAllowedGuestCheckout(
43
+ $this->_quote,
44
+ $this->_quote->getStoreId()
45
+ ) && $customer->getId() == null
46
  ) {
47
  // Prevent guests from checking out
48
  $this->_session->setBeforeAuthUrl(
132
  public function returnAction()
133
  {
134
  $transactionId = $this->getRequest()->getParam('tx');
135
+ $this->logToFile('returnAction(): Processing tx: ' . $transactionId);
136
  $apiHelper = Mage::helper('ipcarthandoff/api');
137
 
138
+ $txid = Mage::getModel('ipcarthandoff/txid')
139
+ ->loadByTxid($transactionId);
 
 
140
 
141
+ if (is_object($txid)) {
142
+ if ($txid->getProcessing()) {
143
+ $this->logToFile('returnAction(): Waiting on ' . $transactionId . ' to finish processing.');
144
+ // We're still working on this order
145
+ $this->_waitForTxidProcessing($txid);
146
+ }
 
147
  } else {
148
+ $txid = Mage::getModel('ipcarthandoff/txid')
149
+ ->setTxid($transactionId);
150
+ }
151
+
152
+ $txid->setProcessing(true);
153
+ $txid->save();
154
+
155
+ $this->logToFile('returnAction(): Attempting to laod order with Tracking Number ' . $transactionId);
156
+ // Make sure the order doesn't exist before calling GetCheckoutDetails
157
+ $order = Mage::helper('ipcarthandoff')
158
+ ->loadOrderByTrackingNumber($transactionId);
159
+
160
+ if ($order == false) {
161
+ $this->logToFile('returnAction(): Calling getCheckoutDetails for ' . $transactionId);
162
+ $checkoutDetailsResponse = $apiHelper->getCheckoutDetails(
163
+ $transactionId,
164
+ $this->_session
165
+ );
166
+
167
+ // Handle error status
168
+ if ($checkoutDetailsResponse->status == 'FAILED'
169
+ || property_exists($checkoutDetailsResponse, 'status') == false
170
+ ) {
171
+ $this->logToFile('returnAction(): Error from GetCheckoutDetails on ' . $transactionId . ' -- ' . $checkoutDetailsResponse->message);
172
+ $this->_session->addError($checkoutDetailsResponse->message);
173
+ $this->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
174
+ $txid->setProcessing(false);
175
+ $txid->save();
176
+ return;
177
+ } else {
178
+ $this->logToFile('returnAction(): Calling _buildOrder for ' . $transactionId);
179
+ $order = $this->_buildOrder(
180
+ $checkoutDetailsResponse,
181
+ $this->_session,
182
+ $txid
183
+ );
184
+ }
185
  }
186
 
187
+ $txid->setProcessing(false);
188
+ $txid->save();
189
+
190
  $this->_prepareSuccessPage($order);
191
  $this->loadLayout();
192
+ $this->logToFile(
193
+ 'returnAction(): Building order review page for Order ID '
194
+ . join(', ', $this->_orderIds)
195
+ . ' and tx: '
196
+ . $transactionId
197
+ );
198
+ Mage::dispatchEvent(
199
+ 'checkout_onepage_controller_success_action',
200
+ array(
201
+ 'order_ids' => $this->_orderIds
202
+ )
203
  );
204
  $this->renderLayout();
205
 
212
  */
213
  public function paymentReturnAction()
214
  {
215
+ return $this->returnAction();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  }
217
 
218
  /**
274
  * @param object $response Response from the API
275
  * @param object $session User's session
276
  * @return mixed Order is returned on success. Error string on failure
277
+ * @internal param object $txid Txid object to keep current status
278
  */
279
  private function _buildOrder($response, $session)
280
  {
281
+ // Pull the quote ID from the response. Apply it to the current session
282
  $quoteId = $response->reference_number;
283
+ $txId = $response->trackingnumber;
284
+ $this->logToFile(
285
+ '_buildOrder(): Loading quote ID '
286
+ . $quoteId
287
+ . ' for TXID: '
288
+ . $txId
289
+ );
290
  $quote = Mage::getModel('sales/quote')->load($quoteId);
291
  $session = $session->replaceQuote($quote);
292
 
293
  try {
294
+ $order = Mage::helper('ipcarthandoff/api')->buildOrder(
295
+ $session->getQuote(), $response
296
+ );
 
 
 
 
 
 
 
297
  } catch (Exception $e) {
298
  Mage::logException($e);
299
+ // This catches any exceptions thrown during order creation.
300
 
301
+ $this->logToFile(
302
+ '_buildOrder(): Failed to build order for tx ' . $txId
303
+ );
304
+
305
+ $this->logToFile(
306
+ '_buildOrder(): Attempting to recover tx ' . $txId
307
+ );
308
  $order = $this->_loadAndVerify($response, $quote);
309
 
310
  if ($order == false) {
311
+ $this->logToFile(
312
+ '_buildOrder(): Unable to recover tx ' . $txId
313
+ );
314
+
315
  /**
316
  * If the Magento order cannot be created, or was created incorrectly,
317
  * attempt to load the order and cancel it if it exists.
320
  $order->loadByAttribute('quote_id', $quote->getId());
321
 
322
  if ($order->getId() != null) {
323
+ $this->logToFile(
324
+ '_buildOrder(): Canceling Magento Order ID ' . $order->getId()
325
+ );
326
  $order->cancel();
327
  }
328
 
329
+ $this->logToFile(
330
+ '_buildOrder(): Error message when building order for tx '
331
+ . $txId
332
+ . ' : '
333
+ . $e->getMessage()
334
+ );
335
+
336
  // Should only hit this point if there is no way to recover from
337
  // errors during order creation
338
  return $e->getMessage();
339
  }
340
  }
341
 
342
+ $this->logToFile(
343
+ '_buildOrder(): Successfully built order for tx ' . $txId
344
+ );
345
+
346
  return $order;
347
  }
348
 
374
  }
375
 
376
  $responseGrandTotal = $responseGrandTotal
377
+ + $response->shipping_cost
378
+ + $response->duty
379
+ + $response->tax;
380
  $responseGrandTotal -= $response->discount_amount_cart;
381
 
382
  // Verify that the order totals match the information in the response.
394
 
395
  return false;
396
  }
397
+
398
+ /**
399
+ * Waits for $txid processing to finish
400
+ *
401
+ * @param $txid
402
+ * @return bool
403
+ */
404
+ public function _waitForTxidProcessing($txid)
405
+ {
406
+ $waitTime = 10;
407
+ if ($txid->getProcessing() == false) {
408
+ return true;
409
+ }
410
+
411
+ $id = $txid->getId();
412
+ while ($waitTime > 0) {
413
+ $txid = Mage::getModel('ipcarthandoff/txid')->load($id);
414
+
415
+ if ($txid->getProcessing() == false) {
416
+ return true;
417
+ }
418
+
419
+ sleep(1);
420
+ $waitTime--;
421
+ }
422
+
423
+ $this->_session->addError("Cannot process order.");
424
+ $this->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
425
+
426
+ return;
427
+ }
428
+
429
+ /**
430
+ * Log messages to the IPARCEL_LOGFILE
431
+ *
432
+ * @param string $message
433
+ * @return bool
434
+ */
435
+ public function logToFile($message)
436
+ {
437
+ Mage::log($message, null, $this->iparcelLogfile, true);
438
+ return true;
439
+ }
440
  }
app/code/community/Iparcel/CartHandoff/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Iparcel_CartHandoff>
5
- <version>1.6.1</version>
6
  </Iparcel_CartHandoff>
7
  </modules>
8
  <global>
@@ -17,6 +17,9 @@
17
  <checkitems>
18
  <table>iparcel_carthandoff_checkitems_cache</table>
19
  </checkitems>
 
 
 
20
  </entities>
21
  </ipcarthandoff_resource>
22
  <sales>
2
  <config>
3
  <modules>
4
  <Iparcel_CartHandoff>
5
+ <version>1.6.2</version>
6
  </Iparcel_CartHandoff>
7
  </modules>
8
  <global>
17
  <checkitems>
18
  <table>iparcel_carthandoff_checkitems_cache</table>
19
  </checkitems>
20
+ <txid>
21
+ <table>iparcel_carthandoff_txids</table>
22
+ </txid>
23
  </entities>
24
  </ipcarthandoff_resource>
25
  <sales>
app/code/community/Iparcel/CartHandoff/sql/ipcarthandoff_setup/mysql4-upgrade-1.6.1-1.6.2.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $installer->startSetup();
5
+
6
+ // Create table to store TX ID history
7
+ $installer->run("
8
+ DROP TABLE IF EXISTS {$this->getTable('ipcarthandoff/txid')};
9
+ CREATE TABLE {$this->getTable('ipcarthandoff/txid')} (
10
+ `id` int(11) unsigned NOT NULL auto_increment,
11
+ `txid` varchar(255) NOT NULL,
12
+ `processing` boolean NOT NULL,
13
+ PRIMARY KEY (`id`)
14
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
15
+ ");
16
+
17
+ $installer->endSetup();
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>iparcel_carthandoff</name>
4
- <version>1.6.1</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
@@ -16,9 +16,9 @@
16
  <email>bburden@i-parcel.com</email>
17
  </author>
18
  </authors>
19
- <date>2017-01-03</date>
20
- <time>19:07:49</time>
21
- <contents><target name="mageweb"><dir name="app"><dir name="etc"><dir name="modules"><file name="Iparcel_CartHandoff.xml" hash="ffb746b30fb5ff90dd7807211f6a4e9f"/><file name="Iparcel_All.xml" hash="89e4b47a6ac9aa0b82f70b1539d587ea"/></dir></dir><dir name="code"><dir name="community"><dir name="Iparcel"><dir name="CartHandoff"><dir name="Block"><dir name="Adminhtml"><dir name="Checkitems"><file name="Button.php" hash="996c59c0e070bfe0abcfbc75c33d9181"/></dir></dir><file name="Button.php" hash="f0973ed80adca37577c9183d543ffca6"/><file name="Estimate.php" hash="ed76666cb286b1bd36235c7aa23ab098"/><dir name="Form"><file name="Button.php" hash="15c90ba070756ebc2aec36546dd5854b"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Ipcarthandoff"><dir name="Checkitems"><file name="CacheController.php" hash="dc682b48cd1d76cbe5431340ad15d10b"/></dir></dir></dir><file name="HandoffController.php" hash="b2bd0440b4fc8e143791fda85f511efb"/><file name="StatusController.php" hash="511f645fec406059f956aa915c9138b4"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e4f3a503dfa55aa0540b87d644cf0631"/><file name="config.xml" hash="54d5343116c47c6db8a5d3405c8a766f"/><file name="system.xml" hash="411e0489405c16fe92b3ceb061842b4a"/></dir><dir name="Helper"><file name="Api.php" hash="9088388500a7d6779dba33a10ec26ece"/><file name="Data.php" hash="784eea529c5eae7652cd2741cc5b9214"/></dir><dir name="Model"><dir name="Catalog"><file name="Layer.php" hash="b7410cb6b76bcf6282d0de45fcfd4214"/><dir name="Product"><dir name="Type"><dir name="Configurable"><file name="Price.php" hash="9757c4a3a06ab09e20f505b83197a864"/></dir><file name="Price.php" hash="0b5b030df7a614b880a07642d9166888"/></dir></dir></dir><file name="Checkitems.php" hash="b86446862f8eb0b48cda130dc8e4b83a"/><file name="Observer.php" hash="f7ab4f37d2732fdd39fc8c0231b64910"/><dir name="Checkout"><dir name="Type"><file name="Onepage.php" hash="53d1efca3648682d95070061cba7beef"/></dir></dir><dir name="Observer"><file name="Storecredit.php" hash="f147548263151fa76944c1aeba53723f"/></dir><dir name="Payment"><file name="Free.php" hash="810c0e8e3a208a88bfbcb447997674ee"/><file name="Ipcarthandoff.php" hash="60c52fc039b371c01815dfca6bec4172"/></dir><dir name="Resource"><dir name="Checkitems"><file name="Collection.php" hash="9a488c5a6c0b3d16f63817afd691ae80"/></dir><file name="Checkitems.php" hash="03ba687675e6eef24e6fed32c4767e55"/><dir name="Mysql4"><file name="Setup.php" hash="c7609fb203ba82fa7e1a39457f1edb3b"/></dir></dir><dir name="Sales"><file name="Order.php" hash="93008416ea3552d2adc0ed63016dc7b1"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Buttonplacement.php" hash="7f8a7cfd897ef5a12a082251eb397451"/><file name="Shippingaddress.php" hash="12630442dcf038ee8d7b7bf9b203b0eb"/><dir name="Checkitems"><file name="Cache.php" hash="ea4566851a70fee0473a283a7bfa0a2c"/></dir></dir></dir></dir></dir><dir name="sql"><dir name="ipcarthandoff_setup"><file name="mysql4-upgrade-1.2.0-1.3.0.php" hash="178b64c5cd9aded939a8973d4c0ac3e6"/></dir></dir></dir><dir name="All"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Mapping"><file name="Button.php" hash="dfdaf5a2fbf824a10fccc952fdccf567"/></dir></dir><dir name="Iparcel"><file name="Dashboard.php" hash="ec9dddd10368136f1bdfe79fddd4500c"/><file name="Logs.php" hash="5823bbc2a78666972dd02d5fd3e9d05d"/><file name="Sync.php" hash="ce239afe604653d4b15c739df965fa06"/><dir name="Logs"><file name="Grid.php" hash="9c472c78640c8aecb5de4b638372e6f5"/></dir><dir name="Shipment"><dir name="Split"><file name="Form.php" hash="db44693b1eda47cb1d87b8a69ac9a5a0"/></dir><file name="Split.php" hash="4cb66f91987f842c699bd2d6c42f2249"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Method.php" hash="935a3d4adad09d6c049cd6bb4cefb8db"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><file name="List.php" hash="5de6102a56f4a9301f1b81004da39ef8"/></dir><file name="Product.php" hash="71a865c01574fd10ee0ffa7475cee378"/></dir><dir name="Catalogsearch"><dir name="Advanced"><file name="Result.php" hash="ad5a157444b80a284e0f9e7a91187b55"/></dir><file name="Result.php" hash="33e4ab0994bde9ba5dd87ade63869bee"/></dir><dir name="Html"><dir name="Head"><file name="Iparcel.php" hash="dd1737d041e9357269fa35b27dbef0bd"/><file name="Jquery.php" hash="3fd23960111c32d5696cc3de63e41b6e"/><file name="Post.php" hash="793d578cf82fb3ba83e1edc87b79ff95"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Totals"><file name="Abstract.php" hash="71cdfdce9a538b2f78b83b7b5eac8b19"/><file name="Duty.php" hash="2ca06e658c24b74d5e3dfa2a6950b010"/><file name="Tax.php" hash="7b630e60c6ff9340bedefdc84e99cef4"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Iparcel"><file name="LogController.php" hash="94e2095979140ad6d7c149080be30d38"/><file name="ShipmentController.php" hash="a9b8896d816b7612e1dc0638a2f8b740"/><dir name="Shipment"><file name="SplitController.php" hash="6a294947cf9399e42e90c890a6da2caa"/></dir><dir name="Sync"><file name="AjaxController.php" hash="8a7f2440ee161682eba59aeb7706f19a"/></dir></dir></dir><file name="AjaxController.php" hash="9069724f071742b25c83b2d0cc368871"/><file name="InfoController.php" hash="ab1bdf953dac27d87e9c5c8023ed9380"/><file name="InternationalController.php" hash="5250af3266389ddf0f5ea3a806652328"/></dir><dir name="etc"><file name="adminhtml.xml" hash="50bc0bee93b5612763321eae11cfdc51"/><file name="config.xml" hash="3fc0f987d470f83ccb10bd04de9d6abb"/><file name="system.xml" hash="823d3690c187d8c3db42912d83a6303b"/></dir><dir name="Helper"><file name="Api.php" hash="bae9a8435e047e229725e9b94b4b339d"/><file name="Data.php" hash="2e4f16bb0a3f1fe1345b5d21df59dbae"/><file name="International.php" hash="7bba0cd23188eaa3f99ed3d32ffccd14"/></dir><dir name="Model"><dir name="Api"><file name="Quote.php" hash="2e938bda13d007e73f8c2238aff76fa1"/></dir><dir name="Carrier"><file name="Abstract.php" hash="87ebc5b402ea74709a00abcf2a8aa856"/><file name="Iparcel.php" hash="12d9447bf8b1f3ac6e9bd7f7b26fbfcd"/></dir><dir name="Catalog"><dir name="Product"><file name="Observer.php" hash="2fd0ce66f180cb7d0dfbe752e5227636"/></dir></dir><dir name="Config"><dir name="Script"><file name="Js.php" hash="f29fc9a7535bc886b3ccf8b2e5b7ebfc"/></dir></dir><file name="Cron.php" hash="670d37cd6cdbe60aa69fad8eb0a0759e"/><file name="Log.php" hash="8c87e5f356f8ca77a186430dda106097"/><file name="Observer.php" hash="9d53f374789eaa0b13349843d3e2c7fd"/><dir name="Order"><dir name="Creditmemo"><dir name="Total"><file name="Duty.php" hash="33b91a5b8fa32293bfe0eab4460b04f9"/><file name="Tax.php" hash="7cd4046231eb8cb9031ae160720390da"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="Duty.php" hash="5a4010994ea502afe88632ddd2699c63"/><file name="Tax.php" hash="c4c95aaaae9662860dd635238150aa46"/></dir></dir></dir><dir name="Payment"><file name="Iparcel.php" hash="d7881d795edbbd7279888e3a86fff2c8"/></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Abstract.php" hash="c5f5a251d5cf9f6ddb5a6d92efad157b"/><file name="Collector.php" hash="f805c3fc373f931d912b92cf38a15154"/><file name="Duty.php" hash="41adb9e60a5a22e1e552eb12aa83f858"/><file name="Tax.php" hash="262c99bceac487a5849058d6ed88011e"/></dir></dir></dir><dir name="Resource"><dir name="Api"><file name="Quote.php" hash="84d032b89c5df67ef24a112ad7846302"/></dir><dir name="Log"><file name="Collection.php" hash="7cb78be07207a599eff71c1e18ba0b7a"/></dir><file name="Log.php" hash="d14c2eb8314456a18adadbb52856e0b5"/><dir name="Mysql4"><file name="Setup.php" hash="9f9cf4b5934b70bd00b394beacb245f7"/></dir></dir><dir name="System"><dir name="Config"><dir name="Catalog"><file name="Mapping.php" hash="3d44f4b4ee157333556f588d7d8cd25b"/></dir><dir name="Data"><dir name="Date"><file name="Monthday.php" hash="baec5b8a27c5b037529ba935aae0370a"/><file name="Weekday.php" hash="173edc075325d932f8dad6d4674b8153"/></dir><dir name="Time"><file name="Hour.php" hash="ddad98b85290d9b13ec9f65fbe8a10b3"/><file name="Minute.php" hash="4a76af0057d60e8ff0ff7fedc1d50575"/></dir></dir><file name="Guid.php" hash="311c7f8072f02a6be9e25b6411298c5c"/><dir name="Script"><file name="Js.php" hash="3e3f23b38ecdc361bf6ff6cee1871e92"/></dir><dir name="Source"><dir name="Catalog"><dir name="Mapping"><dir name="Configurable"><file name="Price.php" hash="f9116fd446914467e7fb31bed5a6dd0b"/></dir><file name="Mode.php" hash="36140a050ea65ff23d45264fa67e1a2b"/></dir><dir name="Product"><dir name="Attribute"><file name="Boolean.php" hash="ca1883122659f1b48890ecd46a1590ee"/></dir><file name="Attribute.php" hash="8ca9c929cda497400865751ffba991e6"/></dir></dir><dir name="Date"><file name="Weekday.php" hash="143c26f9661e5dc995ff064e333a2018"/></dir><dir name="Sales"><dir name="Order"><file name="Status.php" hash="f1e414c08c43ebb2fcc6ccf5b41a2ff2"/></dir></dir><dir name="Tax"><file name="Mode.php" hash="fb09f17b54ef8ffa22580741cc66ac14"/></dir></dir></dir></dir><dir name="Tax"><dir name="Quote"><file name="Shipping.php" hash="e4b0f82aaef3666be520bc2da28af098"/><file name="Subtotal.php" hash="6824b6e6e86dc423fd493a31b15aa28d"/><file name="Tax.php" hash="7ee0528db7b7f9e89cd00a0b0c74dda9"/></dir></dir></dir><dir name="sql"><dir name="iparcel_setup"><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="4df6e3a3f2adf96eeb6ccdac213e3f1e"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="358045d3bf4a53a477e52b573289fe4c"/><file name="mysql4-upgrade-1.1.1-1.2.0.php" hash="1f04c5c71a6a79aaf74810e87670d998"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="de1c9caa713dd194595aa2dd15a829ac"/><file name="mysql4-upgrade-1.2.1-1.3.0.php" hash="f7a5567470b6a3c98530600b48993889"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="ipcarthandoff.xml" hash="0c1e5006d796fd7e39f08d836c1cb2ae"/><file name="iparcel.xml" hash="55aec816cb242fe44aab3a2e0d9de0ba"/><file name="iparcel.xml" hash="55aec816cb242fe44aab3a2e0d9de0ba"/></dir><dir name="template"><dir name="iparcel"><dir name="carthandoff"><file name="button.phtml" hash="4724ea247d4fb514373bd25290f8ee96"/><file name="estimate.phtml" hash="4613986760ea91bbfe607336008da870"/><dir name="form"><file name="button.phtml" hash="603683fdeb5153c8ce4649f72967180a"/></dir></dir><dir name="html"><dir name="head"><file name="iparcel.phtml" hash="07091c9914189cfef06af8cc6e41855c"/><file name="jquery.phtml" hash="c287cb0aa4ddd1f04f27cb5df605a27d"/><file name="post.phtml" hash="1a53e744668b250175ba275b4260050b"/><file name="iparcel.phtml" hash="07091c9914189cfef06af8cc6e41855c"/><file name="jquery.phtml" hash="c287cb0aa4ddd1f04f27cb5df605a27d"/><file name="post.phtml" hash="1a53e744668b250175ba275b4260050b"/></dir></dir><dir name="post"><file name="list.phtml" hash="20e5d7d7f82e1f8d951a1509921eb3bf"/><file name="list.phtml" hash="20e5d7d7f82e1f8d951a1509921eb3bf"/></dir><file name="post.phtml" hash="3827cab2dba981556aeb8ec915ab03cc"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="iparcel.xml" hash="f23a0739ab95168725913180ef44fff9"/></dir><dir name="template"><dir name="iparcel"><dir name="order"><dir name="totals"><file name="duty.phtml" hash="7af41c6d47dafeb890a520d8e6e39910"/><file name="tax.phtml" hash="25bffd2b58554cf28e5f4abe4b4e1e7c"/></dir></dir><dir name="sync"><dir name="ajax"><file name="catalog.phtml" hash="b95262967f28618b50f01962047816f2"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="iparcel.csv" hash="cbcb75a490376ca0b63c8c66622c1656"/></dir></dir></dir><dir name="js"><dir name="iparcel"><file name="cart-buttons.js" hash="98e45ffd14e94c6c33184fea62fce296"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><dir name="adminhtml"><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="iparcel"><file name="ajaxSync.css" hash="8e9222a567c960ec381f43307fd8d882"/></dir></dir></dir></dir></dir></target></contents>
22
  <compatible/>
23
  <dependencies>
24
  <required>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>iparcel_carthandoff</name>
4
+ <version>1.6.2</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
16
  <email>bburden@i-parcel.com</email>
17
  </author>
18
  </authors>
19
+ <date>2017-03-06</date>
20
+ <time>21:20:55</time>
21
+ <contents><target name="mageweb"><dir name="app"><dir name="etc"><dir name="modules"><file name="Iparcel_CartHandoff.xml" hash="ffb746b30fb5ff90dd7807211f6a4e9f"/><file name="Iparcel_All.xml" hash="89e4b47a6ac9aa0b82f70b1539d587ea"/></dir></dir><dir name="code"><dir name="community"><dir name="Iparcel"><dir name="CartHandoff"><dir name="Block"><dir name="Adminhtml"><dir name="Checkitems"><file name="Button.php" hash="996c59c0e070bfe0abcfbc75c33d9181"/></dir></dir><file name="Button.php" hash="f0973ed80adca37577c9183d543ffca6"/><file name="Estimate.php" hash="ed76666cb286b1bd36235c7aa23ab098"/><dir name="Form"><file name="Button.php" hash="15c90ba070756ebc2aec36546dd5854b"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Ipcarthandoff"><dir name="Checkitems"><file name="CacheController.php" hash="dc682b48cd1d76cbe5431340ad15d10b"/></dir></dir></dir><file name="HandoffController.php" hash="4d0483ff46dde310aa6dcee37828cb58"/><file name="StatusController.php" hash="511f645fec406059f956aa915c9138b4"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e4f3a503dfa55aa0540b87d644cf0631"/><file name="config.xml" hash="4cc022bcd3cae9911b5ea0bf04ea02bd"/><file name="system.xml" hash="411e0489405c16fe92b3ceb061842b4a"/></dir><dir name="Helper"><file name="Api.php" hash="b972a49b0f27102835501fe4d0eafe40"/><file name="Data.php" hash="784eea529c5eae7652cd2741cc5b9214"/></dir><dir name="Model"><dir name="Catalog"><file name="Layer.php" hash="b7410cb6b76bcf6282d0de45fcfd4214"/><dir name="Product"><dir name="Type"><dir name="Configurable"><file name="Price.php" hash="9757c4a3a06ab09e20f505b83197a864"/></dir><file name="Price.php" hash="0b5b030df7a614b880a07642d9166888"/></dir></dir></dir><file name="Checkitems.php" hash="b86446862f8eb0b48cda130dc8e4b83a"/><file name="Observer.php" hash="ad5160b1bef1af322486cc6512893265"/><file name="Txid.php" hash="98c6c52175fd28afbbf8811c277b2583"/><dir name="Checkout"><dir name="Type"><file name="Onepage.php" hash="53d1efca3648682d95070061cba7beef"/></dir></dir><dir name="Observer"><file name="Storecredit.php" hash="f147548263151fa76944c1aeba53723f"/></dir><dir name="Payment"><file name="Free.php" hash="810c0e8e3a208a88bfbcb447997674ee"/><file name="Ipcarthandoff.php" hash="60c52fc039b371c01815dfca6bec4172"/></dir><dir name="Resource"><dir name="Checkitems"><file name="Collection.php" hash="9a488c5a6c0b3d16f63817afd691ae80"/></dir><file name="Checkitems.php" hash="03ba687675e6eef24e6fed32c4767e55"/><file name="Txid.php" hash="77f367b2e253756301d57eae8c6dda18"/><dir name="Mysql4"><file name="Setup.php" hash="c7609fb203ba82fa7e1a39457f1edb3b"/></dir><dir name="Txid"><file name="Collection.php" hash="969af7f2a20be73238c71d4ba650c63d"/></dir></dir><dir name="Sales"><file name="Order.php" hash="93008416ea3552d2adc0ed63016dc7b1"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Buttonplacement.php" hash="7f8a7cfd897ef5a12a082251eb397451"/><file name="Shippingaddress.php" hash="12630442dcf038ee8d7b7bf9b203b0eb"/><dir name="Checkitems"><file name="Cache.php" hash="ea4566851a70fee0473a283a7bfa0a2c"/></dir></dir></dir></dir></dir><dir name="sql"><dir name="ipcarthandoff_setup"><file name="mysql4-upgrade-1.2.0-1.3.0.php" hash="178b64c5cd9aded939a8973d4c0ac3e6"/><file name="mysql4-upgrade-1.6.1-1.6.2.php" hash="53e1ba58f5c4ca7a805a7337159b5daa"/></dir></dir></dir><dir name="All"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Mapping"><file name="Button.php" hash="dfdaf5a2fbf824a10fccc952fdccf567"/></dir></dir><dir name="Iparcel"><file name="Dashboard.php" hash="ec9dddd10368136f1bdfe79fddd4500c"/><file name="Logs.php" hash="5823bbc2a78666972dd02d5fd3e9d05d"/><file name="Sync.php" hash="ce239afe604653d4b15c739df965fa06"/><dir name="Logs"><file name="Grid.php" hash="9c472c78640c8aecb5de4b638372e6f5"/></dir><dir name="Shipment"><dir name="Split"><file name="Form.php" hash="db44693b1eda47cb1d87b8a69ac9a5a0"/></dir><file name="Split.php" hash="4cb66f91987f842c699bd2d6c42f2249"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Method.php" hash="935a3d4adad09d6c049cd6bb4cefb8db"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><file name="List.php" hash="5de6102a56f4a9301f1b81004da39ef8"/></dir><file name="Product.php" hash="71a865c01574fd10ee0ffa7475cee378"/></dir><dir name="Catalogsearch"><dir name="Advanced"><file name="Result.php" hash="ad5a157444b80a284e0f9e7a91187b55"/></dir><file name="Result.php" hash="33e4ab0994bde9ba5dd87ade63869bee"/></dir><dir name="Html"><dir name="Head"><file name="Iparcel.php" hash="dd1737d041e9357269fa35b27dbef0bd"/><file name="Jquery.php" hash="3fd23960111c32d5696cc3de63e41b6e"/><file name="Post.php" hash="793d578cf82fb3ba83e1edc87b79ff95"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Totals"><file name="Abstract.php" hash="71cdfdce9a538b2f78b83b7b5eac8b19"/><file name="Duty.php" hash="2ca06e658c24b74d5e3dfa2a6950b010"/><file name="Tax.php" hash="7b630e60c6ff9340bedefdc84e99cef4"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Iparcel"><file name="LogController.php" hash="94e2095979140ad6d7c149080be30d38"/><file name="ShipmentController.php" hash="a9b8896d816b7612e1dc0638a2f8b740"/><dir name="Shipment"><file name="SplitController.php" hash="6a294947cf9399e42e90c890a6da2caa"/></dir><dir name="Sync"><file name="AjaxController.php" hash="8a7f2440ee161682eba59aeb7706f19a"/></dir></dir></dir><file name="AjaxController.php" hash="9069724f071742b25c83b2d0cc368871"/><file name="InfoController.php" hash="ab1bdf953dac27d87e9c5c8023ed9380"/><file name="InternationalController.php" hash="5250af3266389ddf0f5ea3a806652328"/></dir><dir name="etc"><file name="adminhtml.xml" hash="50bc0bee93b5612763321eae11cfdc51"/><file name="config.xml" hash="3fc0f987d470f83ccb10bd04de9d6abb"/><file name="system.xml" hash="823d3690c187d8c3db42912d83a6303b"/></dir><dir name="Helper"><file name="Api.php" hash="bae9a8435e047e229725e9b94b4b339d"/><file name="Data.php" hash="2e4f16bb0a3f1fe1345b5d21df59dbae"/><file name="International.php" hash="7bba0cd23188eaa3f99ed3d32ffccd14"/></dir><dir name="Model"><dir name="Api"><file name="Quote.php" hash="2e938bda13d007e73f8c2238aff76fa1"/></dir><dir name="Carrier"><file name="Abstract.php" hash="87ebc5b402ea74709a00abcf2a8aa856"/><file name="Iparcel.php" hash="12d9447bf8b1f3ac6e9bd7f7b26fbfcd"/></dir><dir name="Catalog"><dir name="Product"><file name="Observer.php" hash="2fd0ce66f180cb7d0dfbe752e5227636"/></dir></dir><dir name="Config"><dir name="Script"><file name="Js.php" hash="f29fc9a7535bc886b3ccf8b2e5b7ebfc"/></dir></dir><file name="Cron.php" hash="670d37cd6cdbe60aa69fad8eb0a0759e"/><file name="Log.php" hash="8c87e5f356f8ca77a186430dda106097"/><file name="Observer.php" hash="9d53f374789eaa0b13349843d3e2c7fd"/><dir name="Order"><dir name="Creditmemo"><dir name="Total"><file name="Duty.php" hash="33b91a5b8fa32293bfe0eab4460b04f9"/><file name="Tax.php" hash="7cd4046231eb8cb9031ae160720390da"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="Duty.php" hash="5a4010994ea502afe88632ddd2699c63"/><file name="Tax.php" hash="c4c95aaaae9662860dd635238150aa46"/></dir></dir></dir><dir name="Payment"><file name="Iparcel.php" hash="d7881d795edbbd7279888e3a86fff2c8"/></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Abstract.php" hash="c5f5a251d5cf9f6ddb5a6d92efad157b"/><file name="Collector.php" hash="f805c3fc373f931d912b92cf38a15154"/><file name="Duty.php" hash="41adb9e60a5a22e1e552eb12aa83f858"/><file name="Tax.php" hash="262c99bceac487a5849058d6ed88011e"/></dir></dir></dir><dir name="Resource"><dir name="Api"><file name="Quote.php" hash="84d032b89c5df67ef24a112ad7846302"/></dir><dir name="Log"><file name="Collection.php" hash="7cb78be07207a599eff71c1e18ba0b7a"/></dir><file name="Log.php" hash="d14c2eb8314456a18adadbb52856e0b5"/><dir name="Mysql4"><file name="Setup.php" hash="9f9cf4b5934b70bd00b394beacb245f7"/></dir></dir><dir name="System"><dir name="Config"><dir name="Catalog"><file name="Mapping.php" hash="3d44f4b4ee157333556f588d7d8cd25b"/></dir><dir name="Data"><dir name="Date"><file name="Monthday.php" hash="baec5b8a27c5b037529ba935aae0370a"/><file name="Weekday.php" hash="173edc075325d932f8dad6d4674b8153"/></dir><dir name="Time"><file name="Hour.php" hash="ddad98b85290d9b13ec9f65fbe8a10b3"/><file name="Minute.php" hash="4a76af0057d60e8ff0ff7fedc1d50575"/></dir></dir><file name="Guid.php" hash="311c7f8072f02a6be9e25b6411298c5c"/><dir name="Script"><file name="Js.php" hash="3e3f23b38ecdc361bf6ff6cee1871e92"/></dir><dir name="Source"><dir name="Catalog"><dir name="Mapping"><dir name="Configurable"><file name="Price.php" hash="f9116fd446914467e7fb31bed5a6dd0b"/></dir><file name="Mode.php" hash="36140a050ea65ff23d45264fa67e1a2b"/></dir><dir name="Product"><dir name="Attribute"><file name="Boolean.php" hash="ca1883122659f1b48890ecd46a1590ee"/></dir><file name="Attribute.php" hash="8ca9c929cda497400865751ffba991e6"/></dir></dir><dir name="Date"><file name="Weekday.php" hash="143c26f9661e5dc995ff064e333a2018"/></dir><dir name="Sales"><dir name="Order"><file name="Status.php" hash="f1e414c08c43ebb2fcc6ccf5b41a2ff2"/></dir></dir><dir name="Tax"><file name="Mode.php" hash="fb09f17b54ef8ffa22580741cc66ac14"/></dir></dir></dir></dir><dir name="Tax"><dir name="Quote"><file name="Shipping.php" hash="e4b0f82aaef3666be520bc2da28af098"/><file name="Subtotal.php" hash="6824b6e6e86dc423fd493a31b15aa28d"/><file name="Tax.php" hash="7ee0528db7b7f9e89cd00a0b0c74dda9"/></dir></dir></dir><dir name="sql"><dir name="iparcel_setup"><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="4df6e3a3f2adf96eeb6ccdac213e3f1e"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="358045d3bf4a53a477e52b573289fe4c"/><file name="mysql4-upgrade-1.1.1-1.2.0.php" hash="1f04c5c71a6a79aaf74810e87670d998"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="de1c9caa713dd194595aa2dd15a829ac"/><file name="mysql4-upgrade-1.2.1-1.3.0.php" hash="f7a5567470b6a3c98530600b48993889"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="ipcarthandoff.xml" hash="0c1e5006d796fd7e39f08d836c1cb2ae"/><file name="iparcel.xml" hash="55aec816cb242fe44aab3a2e0d9de0ba"/><file name="iparcel.xml" hash="55aec816cb242fe44aab3a2e0d9de0ba"/></dir><dir name="template"><dir name="iparcel"><dir name="carthandoff"><file name="button.phtml" hash="4724ea247d4fb514373bd25290f8ee96"/><file name="estimate.phtml" hash="4613986760ea91bbfe607336008da870"/><dir name="form"><file name="button.phtml" hash="603683fdeb5153c8ce4649f72967180a"/></dir></dir><dir name="html"><dir name="head"><file name="iparcel.phtml" hash="07091c9914189cfef06af8cc6e41855c"/><file name="jquery.phtml" hash="c287cb0aa4ddd1f04f27cb5df605a27d"/><file name="post.phtml" hash="1a53e744668b250175ba275b4260050b"/><file name="iparcel.phtml" hash="07091c9914189cfef06af8cc6e41855c"/><file name="jquery.phtml" hash="c287cb0aa4ddd1f04f27cb5df605a27d"/><file name="post.phtml" hash="1a53e744668b250175ba275b4260050b"/></dir></dir><dir name="post"><file name="list.phtml" hash="20e5d7d7f82e1f8d951a1509921eb3bf"/><file name="list.phtml" hash="20e5d7d7f82e1f8d951a1509921eb3bf"/></dir><file name="post.phtml" hash="3827cab2dba981556aeb8ec915ab03cc"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="iparcel.xml" hash="f23a0739ab95168725913180ef44fff9"/></dir><dir name="template"><dir name="iparcel"><dir name="order"><dir name="totals"><file name="duty.phtml" hash="7af41c6d47dafeb890a520d8e6e39910"/><file name="tax.phtml" hash="25bffd2b58554cf28e5f4abe4b4e1e7c"/></dir></dir><dir name="sync"><dir name="ajax"><file name="catalog.phtml" hash="b95262967f28618b50f01962047816f2"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="iparcel.csv" hash="cbcb75a490376ca0b63c8c66622c1656"/></dir></dir></dir><dir name="js"><dir name="iparcel"><file name="cart-buttons.js" hash="98e45ffd14e94c6c33184fea62fce296"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="ea2e78b3fa40dd2be5e1f8559742ee86"/><file name="post.js" hash="55a14e510b988d893e95860e83e3f16b"/><dir name="adminhtml"><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="ec17cf8528736f8aab3dd0ac76e3e7d9"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="iparcel"><file name="ajaxSync.css" hash="8e9222a567c960ec381f43307fd8d882"/></dir></dir></dir></dir></dir></target></contents>
22
  <compatible/>
23
  <dependencies>
24
  <required>