iparcel_carthandoff - Version 1.2.0

Version Notes

Notes

Download this release

Release Info

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


Code changes from version 1.1.2 to 1.2.0

app/code/community/Iparcel/All/Helper/Api.php CHANGED
@@ -86,6 +86,16 @@ class Iparcel_All_Helper_Api
86
  );
87
  }
88
 
 
 
 
 
 
 
 
 
 
 
89
  /**
90
  * Cancels shipments via the Web Service API
91
  *
@@ -215,27 +225,27 @@ class Iparcel_All_Helper_Api
215
  $itemProduct = Mage::getModel('catalog/product')->load($item->getProductId());
216
  /* var $itemProduct Mage_Catalog_Model_Product */
217
  //get item price
218
- $itemPrice = (float)$item->getFinalPrice() ?: (float)$item->getPrice();
219
  // if not price and item has parent (is configurable)
220
  if (!$itemPrice && ($parent=$item->getParentItem())) {
221
  // get parent price
222
- $itemPrice = (float)$parent->getFinalPrice() ?: (float)$parent->getPrice();
223
  }
224
  // if still not price
225
  if (!$itemPrice) {
226
  // get product price
227
- $itemPrice = (float)$item->getProduct()->getPrice();
228
  }
229
  // if product isn't virtual and is configurable or downloadable
230
  if ($item["is_virtual"] == false && !in_array($itemProduct->getTypeId(), array('configurable','downloadable'))) {
231
  // add line item node
232
  $lineItem = array();
233
  $lineItem['SKU'] = $item->getSku();
234
- $lineItem['CustWeightLbs'] = (float)$item->getWeight();
235
  $lineItem['ValueUSD'] = $itemPrice;
236
- $lineItem['CustLengthInches'] = (float)$item->getLength();
237
- $lineItem['CustWidthInches'] = (float)$item->getWidth();
238
- $lineItem['CustHeightInches'] = (float)$item->getHeight();
 
239
  $lineItem['Quantity'] = $item->getTotalQty();
240
  $lineItem['ValueShopperCurrency'] = $itemPrice;
241
  $lineItem['ShopperCurrency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
@@ -247,13 +257,18 @@ class Iparcel_All_Helper_Api
247
  $totals = $quote->getTotals();
248
  $discount = 0;
249
  if (isset($totals['discount']) && $totals['discount']->getValue()) {
250
- $discount = -1 * $totals['discount']->getValue();
 
 
 
251
  }
 
252
  $json['OtherDiscount'] = $discount;
253
  $json['OtherDiscountCurrency'] = $quote->getQuoteCurrencyCode();
254
  $json['ParcelID'] = 0;
255
  $json['SessionID'] = '';
256
  $json['key'] = Mage::helper('iparcel')->getGuid();
 
257
  $log->setRequest(json_encode($json));
258
  $response = $this->_restJSON($json, $this->_quote);
259
  $log->setResponse($response);
@@ -369,27 +384,27 @@ class Iparcel_All_Helper_Api
369
  $itemProduct = Mage::getModel('catalog/product')->load($item->getOrderItem()->getProductId());
370
  }
371
  //get item price
372
- $itemPrice = (float)$item->getFinalPrice() ?: (float)$item->getPrice();
373
  // if not price and item has parent (is configurable)
374
  if (!$itemPrice && ($parent=$item->getParentItem())) {
375
  // get parent price
376
- $itemPrice = (float)$parent->getFinalPrice() ?: (float)$parent->getPrice();
377
  }
378
  // if still not price
379
  if (!$itemPrice) {
380
  // get product price
381
- $itemPrice = (float)$item->getProduct()->getPrice();
382
  }
383
  // if product isn't virtual and is configurable or downloadable
384
  if ($item["is_virtual"] == false && !in_array($itemProduct->getTypeId(), array('configurable','downloadable'))) {
385
  // add line item node
386
  $lineItem = array();
387
  $lineItem['SKU'] = $item->getSku();
388
- $lineItem['CustWeightLbs'] = (float)$item->getWeight();
389
  $lineItem['ValueUSD'] = $itemPrice;
390
- $lineItem['CustLengthInches'] = (float)$item->getLength();
391
- $lineItem['CustWidthInches'] = (float)$item->getWidth();
392
- $lineItem['CustHeightInches'] = (float)$item->getHeight();
 
393
  $lineItem['Quantity'] = (float)$item->getQty();
394
  $lineItem['ValueShopperCurrency'] = $itemPrice;
395
  $lineItem['ShopperCurrency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
@@ -585,16 +600,16 @@ class Iparcel_All_Helper_Api
585
 
586
  $price = null;
587
  // if it's simple product and config is to get parent's price
588
- if ($product->getTypeId() == 'simple' && Mage::getStoreConfig('catalog_mapping/attributes/price') == Iparcel_All_Model_System_Config_Source_Catalog_Mapping_Configurable_Price::CONFIGURABLE) {
589
  // get parentIds
590
  $parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId()) ?: Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
591
  // get price
592
- $price = $parentIds ? Mage::getModel('catalog/product')->load($parentIds[0])->getPrice() : $product->getPrice();
593
  }
594
  // if there's no price
595
  if (!$price) {
596
  //get current product's price
597
- $price = $product->getPrice();
598
  }
599
 
600
  $item['CountryOfOrigin'] = (string)$product->getCountryOfManufacture();
@@ -608,15 +623,16 @@ class Iparcel_All_Helper_Api
608
  $item['HSCodeUS'] = '';
609
  }
610
 
611
- $item['Height'] = (float)$product->getHeight();
612
- $item['Length'] = (float)$product->getLength();
 
 
 
613
  $item['ProductURL'] = $product->getUrlPath();
614
  $item['SKN'] = '';
615
  if ($code = $shipAlone->getAttributeCode()) {
616
  $item['ShipAlone'] = $product->getAttributeText($code) == 'Yes' ? true : false;
617
  }
618
- $item['Width'] = (float)$product->getWidth();
619
- $item['Weight'] = (float)$product->getWeight();
620
 
621
  // Detect and handle a Simple Product with Custom Options
622
  if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE && $product->getHasOptions()) {
86
  );
87
  }
88
 
89
+ protected function _getProductAttribute($product, $code) {
90
+ $attribute = Mage::getModel('eav/entity_attribute')
91
+ ->load(Mage::getStoreConfig('catalog_mapping/attributes/' . $code));
92
+ if ($attribute->getData()) {
93
+ $code = $attribute->getAttributeCode();
94
+ }
95
+ $val = strip_tags(($product->getData($code) && $product->getAttributeText($code)) ? $product->getAttributeText($code) : $product->getData($code));
96
+ return $val;
97
+ }
98
+
99
  /**
100
  * Cancels shipments via the Web Service API
101
  *
225
  $itemProduct = Mage::getModel('catalog/product')->load($item->getProductId());
226
  /* var $itemProduct Mage_Catalog_Model_Product */
227
  //get item price
228
+ $itemPrice = (float)$this->_getProductAttribute($item->getProduct(), 'final_price') ?: (float)$this->_getProductAttribute($item->getProduct(), 'price');
229
  // if not price and item has parent (is configurable)
230
  if (!$itemPrice && ($parent=$item->getParentItem())) {
231
  // get parent price
232
+ $itemPrice = (float)$this->_getProductAttribute($parent->getProduct(), 'final_price') ?: (float)$this->_getProductAttribute($parent->getProduct(), 'price');
233
  }
234
  // if still not price
235
  if (!$itemPrice) {
236
  // get product price
237
+ $itemPrice = (float)$this->_getProductAttribute($item->getProduct(), 'price');
238
  }
239
  // if product isn't virtual and is configurable or downloadable
240
  if ($item["is_virtual"] == false && !in_array($itemProduct->getTypeId(), array('configurable','downloadable'))) {
241
  // add line item node
242
  $lineItem = array();
243
  $lineItem['SKU'] = $item->getSku();
 
244
  $lineItem['ValueUSD'] = $itemPrice;
245
+ $lineItem['CustLengthInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'length');
246
+ $lineItem['CustHeightInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'height');
247
+ $lineItem['CustWidthInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'width');
248
+ $lineItem['CustWeightLbs'] = (float)$this->_getProductAttribute($item->getProduct(), 'weight');
249
  $lineItem['Quantity'] = $item->getTotalQty();
250
  $lineItem['ValueShopperCurrency'] = $itemPrice;
251
  $lineItem['ShopperCurrency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
257
  $totals = $quote->getTotals();
258
  $discount = 0;
259
  if (isset($totals['discount']) && $totals['discount']->getValue()) {
260
+ $discount = abs($totals['discount']->getValue());
261
+ }
262
+ if(isset($totals['ugiftcert']) && $totals['ugiftcert']->getValue()) {
263
+ $discount = $discount + abs($totals['ugiftcert']->getValue());
264
  }
265
+
266
  $json['OtherDiscount'] = $discount;
267
  $json['OtherDiscountCurrency'] = $quote->getQuoteCurrencyCode();
268
  $json['ParcelID'] = 0;
269
  $json['SessionID'] = '';
270
  $json['key'] = Mage::helper('iparcel')->getGuid();
271
+
272
  $log->setRequest(json_encode($json));
273
  $response = $this->_restJSON($json, $this->_quote);
274
  $log->setResponse($response);
384
  $itemProduct = Mage::getModel('catalog/product')->load($item->getOrderItem()->getProductId());
385
  }
386
  //get item price
387
+ $itemPrice = (float)$this->_getProductAttribute($item->getProduct(), 'final_price') ?: (float)$this->_getProductAttribute($item->getProduct(), 'price');
388
  // if not price and item has parent (is configurable)
389
  if (!$itemPrice && ($parent=$item->getParentItem())) {
390
  // get parent price
391
+ $itemPrice = (float)$this->_getProductAttribute($parent->getProduct(), 'final_price') ?: (float)$this->_getProductAttribute($parent->getProduct(), 'price');
392
  }
393
  // if still not price
394
  if (!$itemPrice) {
395
  // get product price
396
+ $itemPrice = (float)$this->_getProductAttribute($item->getProduct(), 'price');
397
  }
398
  // if product isn't virtual and is configurable or downloadable
399
  if ($item["is_virtual"] == false && !in_array($itemProduct->getTypeId(), array('configurable','downloadable'))) {
400
  // add line item node
401
  $lineItem = array();
402
  $lineItem['SKU'] = $item->getSku();
 
403
  $lineItem['ValueUSD'] = $itemPrice;
404
+ $lineItem['CustLengthInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'length');
405
+ $lineItem['CustHeightInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'height');
406
+ $lineItem['CustWidthInches'] = (float)$this->_getProductAttribute($item->getProduct(), 'width');
407
+ $lineItem['CustWeightLbs'] = (float)$this->_getProductAttribute($item->getProduct(), 'weight');
408
  $lineItem['Quantity'] = (float)$item->getQty();
409
  $lineItem['ValueShopperCurrency'] = $itemPrice;
410
  $lineItem['ShopperCurrency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
600
 
601
  $price = null;
602
  // if it's simple product and config is to get parent's price
603
+ if ($product->getTypeId() == 'simple' && Mage::getStoreConfig('catalog_mapping/attributes/price_type') == Iparcel_All_Model_System_Config_Source_Catalog_Mapping_Configurable_Price::CONFIGURABLE) {
604
  // get parentIds
605
  $parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($product->getId()) ?: Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
606
  // get price
607
+ $price = $parentIds ? $this->_getProductAttribute(Mage::getModel('catalog/product')->load($parentIds[0]), 'price') : $this->_getProductAttribute($product, 'price');
608
  }
609
  // if there's no price
610
  if (!$price) {
611
  //get current product's price
612
+ $price = $this->_getProductAttribute($product, 'price');
613
  }
614
 
615
  $item['CountryOfOrigin'] = (string)$product->getCountryOfManufacture();
623
  $item['HSCodeUS'] = '';
624
  }
625
 
626
+ $item['Length'] = (float)$this->_getProductAttribute($product, 'length');
627
+ $item['Height'] = (float)$this->_getProductAttribute($product, 'height');
628
+ $item['Width'] = (float)$this->_getProductAttribute($product, 'width');
629
+ $item['Weight'] = (float)$this->_getProductAttribute($product, 'weight');
630
+
631
  $item['ProductURL'] = $product->getUrlPath();
632
  $item['SKN'] = '';
633
  if ($code = $shipAlone->getAttributeCode()) {
634
  $item['ShipAlone'] = $product->getAttributeText($code) == 'Yes' ? true : false;
635
  }
 
 
636
 
637
  // Detect and handle a Simple Product with Custom Options
638
  if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE && $product->getHasOptions()) {
app/code/community/Iparcel/All/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Iparcel_All>
5
- <version>1.2.0</version>
6
  </Iparcel_All>
7
  </modules>
8
  <frontend>
@@ -281,7 +281,7 @@
281
  <offset>0</offset>
282
  </upload>
283
  <attributes>
284
- <price>1</price>
285
  </attributes>
286
  </catalog_mapping>
287
  <carriers>
2
  <config>
3
  <modules>
4
  <Iparcel_All>
5
+ <version>1.2.1</version>
6
  </Iparcel_All>
7
  </modules>
8
  <frontend>
281
  <offset>0</offset>
282
  </upload>
283
  <attributes>
284
+ <price_type>1</price_type>
285
  </attributes>
286
  </catalog_mapping>
287
  <carriers>
app/code/community/Iparcel/All/etc/system.xml CHANGED
@@ -526,7 +526,7 @@
526
  <show_in_store>0</show_in_store>
527
  <comment>Only boolean attributes</comment>
528
  </shipalone>
529
- <price translate="label">
530
  <label>Price Type</label>
531
  <frontend_type>select</frontend_type>
532
  <source_model>iparcel/system_config_source_catalog_mapping_configurable_price</source_model>
@@ -535,6 +535,51 @@
535
  <show_in_website>1</show_in_website>
536
  <show_in_store>0</show_in_store>
537
  <comment>Price type for configurable products</comment>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  </price>
539
  </fields>
540
  </attributes>
526
  <show_in_store>0</show_in_store>
527
  <comment>Only boolean attributes</comment>
528
  </shipalone>
529
+ <price_type translate="label">
530
  <label>Price Type</label>
531
  <frontend_type>select</frontend_type>
532
  <source_model>iparcel/system_config_source_catalog_mapping_configurable_price</source_model>
535
  <show_in_website>1</show_in_website>
536
  <show_in_store>0</show_in_store>
537
  <comment>Price type for configurable products</comment>
538
+ </price_type>
539
+ <height translate="label">
540
+ <label>Height</label>
541
+ <frontend_type>select</frontend_type>
542
+ <source_model>iparcel/system_config_source_catalog_product_attribute</source_model>
543
+ <sort_order>47</sort_order>
544
+ <show_in_default>1</show_in_default>
545
+ <show_in_website>1</show_in_website>
546
+ <show_in_store>0</show_in_store>
547
+ </height>
548
+ <width translate="label">
549
+ <label>Width</label>
550
+ <frontend_type>select</frontend_type>
551
+ <source_model>iparcel/system_config_source_catalog_product_attribute</source_model>
552
+ <sort_order>47</sort_order>
553
+ <show_in_default>1</show_in_default>
554
+ <show_in_website>1</show_in_website>
555
+ <show_in_store>0</show_in_store>
556
+ </width>
557
+ <weight translate="label">
558
+ <label>Weight</label>
559
+ <frontend_type>select</frontend_type>
560
+ <source_model>iparcel/system_config_source_catalog_product_attribute</source_model>
561
+ <sort_order>47</sort_order>
562
+ <show_in_default>1</show_in_default>
563
+ <show_in_website>1</show_in_website>
564
+ <show_in_store>0</show_in_store>
565
+ </weight>
566
+ <length translate="label">
567
+ <label>Length</label>
568
+ <frontend_type>select</frontend_type>
569
+ <source_model>iparcel/system_config_source_catalog_product_attribute</source_model>
570
+ <sort_order>47</sort_order>
571
+ <show_in_default>1</show_in_default>
572
+ <show_in_website>1</show_in_website>
573
+ <show_in_store>0</show_in_store>
574
+ </length>
575
+ <price translate="label">
576
+ <label>Price</label>
577
+ <frontend_type>select</frontend_type>
578
+ <source_model>iparcel/system_config_source_catalog_product_attribute</source_model>
579
+ <sort_order>47</sort_order>
580
+ <show_in_default>1</show_in_default>
581
+ <show_in_website>1</show_in_website>
582
+ <show_in_store>0</show_in_store>
583
  </price>
584
  </fields>
585
  </attributes>
app/code/community/Iparcel/All/sql/iparcel_setup/mysql4-upgrade-1.2.0-1.2.1.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $installer->startSetup();
5
+
6
+ $attributeArray = array('width', 'height', 'price', 'weight', 'length');
7
+ foreach($attributeArray as $attributeCode) {
8
+ $attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', $attributeCode);
9
+ if($attributeModel->getData()) {
10
+ Mage::getModel('core/config')->saveConfig('catalog_mapping/attributes/' . $attributeCode, $attributeModel->getAttributeId());
11
+ }
12
+ }
13
+
14
+ $installer->endSetup();
app/code/community/Iparcel/CartHandoff/Block/Button.php CHANGED
@@ -71,9 +71,9 @@ class Iparcel_CartHandoff_Block_Button extends Mage_Core_Block_Template
71
  switch ($nameInLayout) {
72
  case "topcart.extra_actions.ipcarthandoff":
73
  case "cart_sidebar.extra_actions.ipcarthandoff":
74
- return "padding: 10px 0 10px 0;";
75
  default:
76
- return "";
77
  }
78
 
79
  return "";
71
  switch ($nameInLayout) {
72
  case "topcart.extra_actions.ipcarthandoff":
73
  case "cart_sidebar.extra_actions.ipcarthandoff":
74
+ return "padding: 10px 0 10px 0; display: none;";
75
  default:
76
+ return "display: none;";
77
  }
78
 
79
  return "";
app/code/community/Iparcel/CartHandoff/Helper/Api.php CHANGED
@@ -104,8 +104,13 @@ class Iparcel_CartHandoff_Helper_Api extends Iparcel_All_Helper_Api
104
  'day_phone_b' => $phoneNumber,
105
  );
106
  $totals = $quote->getTotals();
 
107
  if(isset($totals['discount'])) {
108
- $request['discount_amount_cart'] = $totals['discount']->getValue(); //Ex: -50
 
 
 
 
109
  }
110
 
111
  // Add items to request
@@ -486,4 +491,4 @@ class Iparcel_CartHandoff_Helper_Api extends Iparcel_All_Helper_Api
486
 
487
  return $order;
488
  }
489
- }
104
  'day_phone_b' => $phoneNumber,
105
  );
106
  $totals = $quote->getTotals();
107
+
108
  if(isset($totals['discount'])) {
109
+ $request['discount_amount_cart'] = abs($totals['discount']->getValue());
110
+ }
111
+
112
+ if(isset($totals['ugiftcert'])) {
113
+ $request['discount_amount_cart'] += abs($request['discount_amount_cart']) + abs($totals['ugiftcert']->getValue());
114
  }
115
 
116
  // Add items to request
491
 
492
  return $order;
493
  }
494
+ }
app/code/community/Iparcel/CartHandoff/Model/Sales/Order.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Overrides Mage_Sales_Model_Order to control sending new order emails
4
+ *
5
+ * @category Iparcel
6
+ * @package Iparcel_CartHandoff
7
+ * @author Bobby Burden <bburden@i-parcel.com>
8
+ */
9
+ class Iparcel_CartHandoff_Model_Sales_Order extends Mage_Sales_Model_Order
10
+ {
11
+ public function queueNewOrderEmail($forceMode = false)
12
+ {
13
+ if (Mage::getStoreConfig('payment/ipcarthandoff/send_new_order_emails') == 0
14
+ && $this->getPayment()->getMethod() == 'iparcel'
15
+ && $forceMode == false
16
+ ) {
17
+ return $this;
18
+ }
19
+
20
+ return parent::queueNewOrderEmail($forceMode);
21
+ }
22
+ }
app/code/community/Iparcel/CartHandoff/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Iparcel_CartHandoff>
5
- <version>1.1.2</version>
6
  </Iparcel_CartHandoff>
7
  </modules>
8
  <global>
@@ -11,6 +11,11 @@
11
  <class>Iparcel_CartHandoff_Model</class>
12
  <resourceModel>ipcarthandoff_resource</resourceModel>
13
  </ipcarthandoff>
 
 
 
 
 
14
  </models>
15
  <helpers>
16
  <ipcarthandoff>
@@ -61,6 +66,8 @@
61
  <display_on_cart>1</display_on_cart>
62
  <payment_method_message>You will be redirected to UPS i-parcel to complete checkout.</payment_method_message>
63
  <cart_placement>2</cart_placement>
 
 
64
  </ipcarthandoff>
65
  </payment>
66
  <carriers>
2
  <config>
3
  <modules>
4
  <Iparcel_CartHandoff>
5
+ <version>1.2.0</version>
6
  </Iparcel_CartHandoff>
7
  </modules>
8
  <global>
11
  <class>Iparcel_CartHandoff_Model</class>
12
  <resourceModel>ipcarthandoff_resource</resourceModel>
13
  </ipcarthandoff>
14
+ <sales>
15
+ <rewrite>
16
+ <order>Iparcel_CartHandoff_Model_Sales_Order</order>
17
+ </rewrite>
18
+ </sales>
19
  </models>
20
  <helpers>
21
  <ipcarthandoff>
66
  <display_on_cart>1</display_on_cart>
67
  <payment_method_message>You will be redirected to UPS i-parcel to complete checkout.</payment_method_message>
68
  <cart_placement>2</cart_placement>
69
+ <hide_proceed_to_checkout>0</hide_proceed_to_checkout>
70
+ <send_new_order_emails>1</send_new_order_emails>
71
  </ipcarthandoff>
72
  </payment>
73
  <carriers>
app/code/community/Iparcel/CartHandoff/etc/system.xml CHANGED
@@ -47,6 +47,15 @@
47
  <show_in_website>1</show_in_website>
48
  <show_in_store>1</show_in_store>
49
  </cart_placement>
 
 
 
 
 
 
 
 
 
50
  <active>
51
  <label>Display as Payment Method?</label>
52
  <tooltip>Adds the button to the "Payment Method" checkout step.</tooltip>
@@ -66,6 +75,15 @@
66
  <show_in_website>1</show_in_website>
67
  <show_in_store>1</show_in_store>
68
  </payment_method_message>
 
 
 
 
 
 
 
 
 
69
  <sort_order>
70
  <label>Sort Order</label>
71
  <tooltip>Sort Order as a payment method.</tooltip>
47
  <show_in_website>1</show_in_website>
48
  <show_in_store>1</show_in_store>
49
  </cart_placement>
50
+ <hide_proceed_to_checkout>
51
+ <label>Hide the "Proceed to Checkout" button in the cart for non-US customers.</label>
52
+ <frontend_type>select</frontend_type>
53
+ <source_model>adminhtml/system_config_source_yesno</source_model>
54
+ <sort_order>17</sort_order>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>1</show_in_store>
58
+ </hide_proceed_to_checkout>
59
  <active>
60
  <label>Display as Payment Method?</label>
61
  <tooltip>Adds the button to the "Payment Method" checkout step.</tooltip>
75
  <show_in_website>1</show_in_website>
76
  <show_in_store>1</show_in_store>
77
  </payment_method_message>
78
+ <send_new_order_emails>
79
+ <label>Send Order Confirmation emails from Magento for i-parcel orders?</label>
80
+ <frontend_type>select</frontend_type>
81
+ <source_model>adminhtml/system_config_source_yesno</source_model>
82
+ <sort_order>27</sort_order>
83
+ <show_in_default>1</show_in_default>
84
+ <show_in_website>1</show_in_website>
85
+ <show_in_store>1</show_in_store>
86
+ </send_new_order_emails>
87
  <sort_order>
88
  <label>Sort Order</label>
89
  <tooltip>Sort Order as a payment method.</tooltip>
app/design/frontend/base/default/layout/ipcarthandoff.xml CHANGED
@@ -1,6 +1,11 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <layout version="0.1.0">
3
  <checkout_cart_index>
 
 
 
 
 
4
  <reference name="checkout.cart.top_methods">
5
  <block type="ipcarthandoff/button" name="checkout.cart.methods.ipcarthandoff.top" before="-" template="iparcel/carthandoff/button.phtml" />
6
  </reference>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <layout version="0.1.0">
3
  <checkout_cart_index>
4
+ <reference name="head">
5
+ <action method="addJs">
6
+ <name>iparcel/cart-buttons.js</name>
7
+ </action>
8
+ </reference>
9
  <reference name="checkout.cart.top_methods">
10
  <block type="ipcarthandoff/button" name="checkout.cart.methods.ipcarthandoff.top" before="-" template="iparcel/carthandoff/button.phtml" />
11
  </reference>
app/design/frontend/base/default/template/iparcel/carthandoff/button.phtml CHANGED
@@ -4,6 +4,8 @@
4
  *
5
  * @var $this Iparcel_CartHandoff_Block_Button
6
  */
 
 
7
  ?>
8
  <?php if ($this->shouldDisplay()): ?>
9
  <p class="ipcarthandoff-button" style="<?php echo $this->getStyle() ?>">
@@ -11,4 +13,7 @@
11
  <?php echo $this->getButtonTitle(); ?>
12
  </a>
13
  </p>
14
- <?php endif; ?>
 
 
 
4
  *
5
  * @var $this Iparcel_CartHandoff_Block_Button
6
  */
7
+
8
+ $cartHandoff_hideCheckout = Mage::getStoreConfig('payment/ipcarthandoff/hide_proceed_to_checkout') ? 'true' : 'false';
9
  ?>
10
  <?php if ($this->shouldDisplay()): ?>
11
  <p class="ipcarthandoff-button" style="<?php echo $this->getStyle() ?>">
13
  <?php echo $this->getButtonTitle(); ?>
14
  </a>
15
  </p>
16
+ <?php endif; ?>
17
+ <script type="text/javascript">
18
+ cartHandoff_hideCheckout = <?php echo (string) $cartHandoff_hideCheckout; ?>;
19
+ </script>
app/design/frontend/base/default/template/iparcel/carthandoff/estimate.phtml CHANGED
@@ -2,19 +2,21 @@
2
  $countryCode = $this->getCountryCode();
3
  ?>
4
  <script type="text/javascript">
5
- var countrySelect = $('country');
6
- countrySelect.setValue('<?php echo $countryCode; ?>');
 
7
 
8
- // Add ability to trigger change event for country select
9
- if (document.createEvent)
10
- {
11
- var event = document.createEvent('HTMLEvents');
12
- event.initEvent('change', true, true);
13
 
14
- countrySelect.dispatchEvent(event);
15
- }
16
 
17
- if (countrySelect.fireEvent) {
18
- countrySelect.fireEvent('onChange');
 
19
  }
20
  </script>
2
  $countryCode = $this->getCountryCode();
3
  ?>
4
  <script type="text/javascript">
5
+ if ($('country')) {
6
+ var countrySelect = $('country');
7
+ countrySelect.setValue('<?php echo $countryCode; ?>');
8
 
9
+ // Add ability to trigger change event for country select
10
+ if (document.createEvent)
11
+ {
12
+ var event = document.createEvent('HTMLEvents');
13
+ event.initEvent('change', true, true);
14
 
15
+ countrySelect.dispatchEvent(event);
16
+ }
17
 
18
+ if (countrySelect.fireEvent) {
19
+ countrySelect.fireEvent('onChange');
20
+ }
21
  }
22
  </script>
js/iparcel/cart-buttons.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.observe("dom:loaded", function(){
2
+ if (ipar_Session.locale != 'US') {
3
+ setButtonVisibility('ipcarthandoff-button', 'block');
4
+ setButtonVisibility('btn-proceed-checkout', 'none');
5
+ }
6
+
7
+ if ($('country')) {
8
+ $('country').observe('change', function(){
9
+ if (this.value == 'US') {
10
+ setButtonVisibility('ipcarthandoff-button', 'none');
11
+ setButtonVisibility('btn-proceed-checkout', 'block');
12
+ } else {
13
+ setButtonVisibility('ipcarthandoff-button', 'block');
14
+ setButtonVisibility('btn-proceed-checkout', 'none');
15
+ }
16
+ });
17
+ }
18
+ });
19
+
20
+ function setButtonVisibility(buttonClass, displayValue)
21
+ {
22
+ if (buttonClass == 'btn-proceed-checkout' && cartHandoff_hideCheckout == false) {
23
+ return true;
24
+ }
25
+ $$("." + buttonClass).each(function(div){
26
+ $(div).style.display = displayValue;
27
+ });
28
+ }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>iparcel_carthandoff</name>
4
- <version>1.1.2</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>2016-04-25</date>
20
- <time>21:08:30</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"><file name="Button.php" hash="d4e7631a292e63a4a1ad1d5fac78270f"/><file name="Estimate.php" hash="ed76666cb286b1bd36235c7aa23ab098"/><dir name="Form"><file name="Button.php" hash="15c90ba070756ebc2aec36546dd5854b"/></dir></dir><dir name="controllers"><file name="HandoffController.php" hash="f4537926416afe1d689926475b83cce3"/><file name="StatusController.php" hash="511f645fec406059f956aa915c9138b4"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e4f3a503dfa55aa0540b87d644cf0631"/><file name="config.xml" hash="e551cb25b790bc3a75f4a50b32696286"/><file name="system.xml" hash="10fa2efdc264242c93ff5111baab4cb9"/></dir><dir name="Helper"><file name="Api.php" hash="13027fe4a252d41df19ae1d079bc1fa6"/><file name="Data.php" hash="7d31450856880a53e3afa4933acf30ba"/></dir><dir name="Model"><file name="Observer.php" hash="a9e5f4e690008acee3adbef357d1d60f"/><dir name="Payment"><file name="Ipcarthandoff.php" hash="d2339246664d3ad0c793058875187026"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Buttonplacement.php" hash="7f8a7cfd897ef5a12a082251eb397451"/></dir></dir></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"/><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="2969af5eed8a1179579fa182e20cd59e"/></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="f8ae79b70c6b5ba41c7acac9be5d84c0"/><file name="Tax.php" hash="1cfee0fccb1feede23f3cdc22f57c903"/></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"/><file name="SyncController.php" hash="9378f5db27d059bbb36ff1e71bd38d32"/><dir name="Shipment"><file name="SplitController.php" hash="6a294947cf9399e42e90c890a6da2caa"/></dir><dir name="Sync"><file name="AjaxController.php" hash="ceaffb0c652954b95e83426c763a2d0d"/></dir></dir></dir><file name="AjaxController.php" hash="f6b0573eefbb21d7ac863fd029783b3c"/><file name="InfoController.php" hash="6543b1e9803489e507d2470f8e3e408b"/><file name="InternationalController.php" hash="75fc93febe96e328d5927665c33d40d1"/></dir><dir name="etc"><file name="adminhtml.xml" hash="50bc0bee93b5612763321eae11cfdc51"/><file name="config.xml" hash="6f430fb7d7fc681166befb1327119d03"/><file name="system.xml" hash="9f7bf4587539cad7a1b36ac8a01a8b3f"/></dir><dir name="Helper"><file name="Api.php" hash="5b1353dd575ab1bfb126b80169263a5b"/><file name="Data.php" hash="0c32ec392ffb3857571f272c21d84faa"/><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="Iparcel.php" hash="ad65fdc9f7f2264e9704b0f17d89dd34"/></dir><dir name="Catalog"><dir name="Product"><file name="Observer.php" hash="d16d89cea8eea6352a7d9b1193cd9512"/></dir></dir><dir name="Config"><dir name="Script"><file name="Js.php" hash="100822286c5326c82cbc5d4ff3cf4c39"/></dir></dir><file name="Cron.php" hash="670d37cd6cdbe60aa69fad8eb0a0759e"/><file name="Log.php" hash="8c87e5f356f8ca77a186430dda106097"/><file name="Observer.php" hash="ad3c34320671927263e673e18c798a34"/><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="30ad607409d5ed225e233638ecbff39c"/></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Abstract.php" hash="a3af320e934f50651e09bfd15b86ffea"/><file name="Collector.php" hash="f99413fe415c342d5c0d582caa767ad1"/><file name="Duty.php" hash="6ef16c8b2038d5c90b4b9c7d00825da2"/><file name="Tax.php" hash="62c9e255562643a967b8c49b9914524d"/></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="8895678aa59e49226509d2b4709c5f43"/></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="5d76b072c657035cf3d7713fa6672f1f"/><file name="Subtotal.php" hash="cbd2e41f3bdc74134590a675d93d4bfb"/><file name="Tax.php" hash="ffc8d78a8d0442690c49b60f909c8e48"/></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="cfb9fbc137e7e551dfaece00ac6bb2f4"/><file name="mysql4-upgrade-1.1.1-1.2.0.php" hash="1f04c5c71a6a79aaf74810e87670d998"/></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="c99654c0e8d7ab65b628e4cd717b7209"/><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="970c8a8e6d72f924dd41a3d94856aca8"/><file name="estimate.phtml" hash="4ca0b95a0fb0cb9ba32ab5a904ab23c2"/><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="c6be54da5875c9356bba8988fa8c264c"/></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="64da446db5c1bfe892951c9b3c7f1e7d"/><file name="checkitems.phtml" hash="c19b0e4fd0feddedbc2cef3b2f4ce79b"/></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"><dir name="adminhtml"><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/></dir><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="iparcel"><file name="ajaxSync.css" hash="c622b9e4b77589bc0f3c0555124d2751"/></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.2.0</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>2016-05-11</date>
20
+ <time>21:05:45</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"><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"><file name="HandoffController.php" hash="f4537926416afe1d689926475b83cce3"/><file name="StatusController.php" hash="511f645fec406059f956aa915c9138b4"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e4f3a503dfa55aa0540b87d644cf0631"/><file name="config.xml" hash="823d603e417aa359436168e0868ce8e4"/><file name="system.xml" hash="e579239970b683867b21eeadbd0c9762"/></dir><dir name="Helper"><file name="Api.php" hash="3f60c6dd486b5d19bb7e8eaeef5b744b"/><file name="Data.php" hash="7d31450856880a53e3afa4933acf30ba"/></dir><dir name="Model"><file name="Observer.php" hash="a9e5f4e690008acee3adbef357d1d60f"/><dir name="Payment"><file name="Ipcarthandoff.php" hash="d2339246664d3ad0c793058875187026"/></dir><dir name="Sales"><file name="Order.php" hash="22e4357ef934065b59043fa59e1d88fe"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Buttonplacement.php" hash="7f8a7cfd897ef5a12a082251eb397451"/></dir></dir></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"/><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="2969af5eed8a1179579fa182e20cd59e"/></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="f8ae79b70c6b5ba41c7acac9be5d84c0"/><file name="Tax.php" hash="1cfee0fccb1feede23f3cdc22f57c903"/></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"/><file name="SyncController.php" hash="9378f5db27d059bbb36ff1e71bd38d32"/><dir name="Shipment"><file name="SplitController.php" hash="6a294947cf9399e42e90c890a6da2caa"/></dir><dir name="Sync"><file name="AjaxController.php" hash="ceaffb0c652954b95e83426c763a2d0d"/></dir></dir></dir><file name="AjaxController.php" hash="f6b0573eefbb21d7ac863fd029783b3c"/><file name="InfoController.php" hash="6543b1e9803489e507d2470f8e3e408b"/><file name="InternationalController.php" hash="75fc93febe96e328d5927665c33d40d1"/></dir><dir name="etc"><file name="adminhtml.xml" hash="50bc0bee93b5612763321eae11cfdc51"/><file name="config.xml" hash="4bd33ca7a2dca415a545f524165ced48"/><file name="system.xml" hash="823d3690c187d8c3db42912d83a6303b"/></dir><dir name="Helper"><file name="Api.php" hash="d20c7a56fbc922a6bca34ea547aa3092"/><file name="Data.php" hash="0c32ec392ffb3857571f272c21d84faa"/><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="Iparcel.php" hash="ad65fdc9f7f2264e9704b0f17d89dd34"/></dir><dir name="Catalog"><dir name="Product"><file name="Observer.php" hash="d16d89cea8eea6352a7d9b1193cd9512"/></dir></dir><dir name="Config"><dir name="Script"><file name="Js.php" hash="100822286c5326c82cbc5d4ff3cf4c39"/></dir></dir><file name="Cron.php" hash="670d37cd6cdbe60aa69fad8eb0a0759e"/><file name="Log.php" hash="8c87e5f356f8ca77a186430dda106097"/><file name="Observer.php" hash="ad3c34320671927263e673e18c798a34"/><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="30ad607409d5ed225e233638ecbff39c"/></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Abstract.php" hash="a3af320e934f50651e09bfd15b86ffea"/><file name="Collector.php" hash="f99413fe415c342d5c0d582caa767ad1"/><file name="Duty.php" hash="6ef16c8b2038d5c90b4b9c7d00825da2"/><file name="Tax.php" hash="62c9e255562643a967b8c49b9914524d"/></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="8895678aa59e49226509d2b4709c5f43"/></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="5d76b072c657035cf3d7713fa6672f1f"/><file name="Subtotal.php" hash="cbd2e41f3bdc74134590a675d93d4bfb"/><file name="Tax.php" hash="ffc8d78a8d0442690c49b60f909c8e48"/></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="cfb9fbc137e7e551dfaece00ac6bb2f4"/><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"/></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="ed7faf180d54254f9bd4bfde21cdec1d"/><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="2af5a49d42e702e723bc083c8af661e1"/><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="c6be54da5875c9356bba8988fa8c264c"/></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="64da446db5c1bfe892951c9b3c7f1e7d"/><file name="checkitems.phtml" hash="c19b0e4fd0feddedbc2cef3b2f4ce79b"/></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="a52eb58ce49540c4d206f5e7bbd98ab8"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/><file name="jQuery.js" hash="8ec1680e4d815ff93f661214efa06276"/><file name="lib.js" hash="42c556650eb62797de469f1770bde3f0"/><file name="post.js" hash="c710697e3d4905a6a707222728485047"/><dir name="adminhtml"><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/><file name="shipping-methods.js" hash="eca91e8a5cf152fce7af0eb5bf2991bb"/><file name="sync.js" hash="f4525e5c6bce01f9a5cea562f23618e7"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="iparcel"><file name="ajaxSync.css" hash="c622b9e4b77589bc0f3c0555124d2751"/></dir></dir></dir></dir></dir></target></contents>
22
  <compatible/>
23
  <dependencies>
24
  <required>