Plumrocket_Order_Status_and_Shipping_Tracking - Version 1.0.0

Version Notes

Magento UPS integration, Magento FedEx and Magento USPS tracking allows to display UPS, FedEx, USPS tracking information right from your magento store

Admin can enter UPS, USPS and FedEx tracking codes while marking magento order as shipped. These tracking codes will be automatically picked up by this free magento order tracking extension

100% open source magento extension

Download this release

Release Info

Developer Plumrocket Team
Extension Plumrocket_Order_Status_and_Shipping_Tracking
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Files changed (21) hide show
  1. app/code/community/Plumrocket/ShippingTracking/Block/Abstract.php +27 -0
  2. app/code/community/Plumrocket/ShippingTracking/Block/Fedex.php +29 -0
  3. app/code/community/Plumrocket/ShippingTracking/Block/Shipping/Tracking/Popup.php +49 -0
  4. app/code/community/Plumrocket/ShippingTracking/Block/System/Config/Version.php +35 -0
  5. app/code/community/Plumrocket/ShippingTracking/Block/Ups.php +38 -0
  6. app/code/community/Plumrocket/ShippingTracking/Block/Usps.php +28 -0
  7. app/code/community/Plumrocket/ShippingTracking/Helper/Data.php +140 -0
  8. app/code/community/Plumrocket/ShippingTracking/controllers/IndexController.php +165 -0
  9. app/code/community/Plumrocket/ShippingTracking/etc/config.xml +117 -0
  10. app/code/community/Plumrocket/ShippingTracking/etc/system.xml +216 -0
  11. app/design/frontend/base/default/layout/shippingtracking.xml +78 -0
  12. app/design/frontend/base/default/template/shippingtracking/info.phtml +167 -0
  13. app/design/frontend/base/default/template/shippingtracking/info/fedex.phtml +115 -0
  14. app/design/frontend/base/default/template/shippingtracking/info/form.phtml +46 -0
  15. app/design/frontend/base/default/template/shippingtracking/info/ups.phtml +130 -0
  16. app/design/frontend/base/default/template/shippingtracking/info/usps.phtml +107 -0
  17. app/design/frontend/base/default/template/shippingtracking/main.phtml +57 -0
  18. app/design/frontend/base/default/template/shippingtracking/popup.phtml +178 -0
  19. app/etc/modules/Plumrocket_ShippingTracking.xml +31 -0
  20. app/locale/en_US/Plumrocket_Order_Status_and_Shipping_Tracking.csv +31 -0
  21. package.xml +22 -0
app/code/community/Plumrocket/ShippingTracking/Block/Abstract.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ abstract class Plumrocket_ShippingTracking_Block_Abstract extends Mage_Core_Block_Template
20
+ {
21
+
22
+ public function getNumber()
23
+ {
24
+ return Mage::app()->getRequest()->getParam('number');
25
+ }
26
+
27
+ }
app/code/community/Plumrocket/ShippingTracking/Block/Fedex.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Block_Fedex extends Plumrocket_ShippingTracking_Block_Abstract
20
+ {
21
+
22
+ public function getInfo()
23
+ {
24
+ $number = $this->getNumber();
25
+ return $this->helper('shippingtracking')->getFedexTrackingInfo($number);
26
+ }
27
+
28
+
29
+ }
app/code/community/Plumrocket/ShippingTracking/Block/Shipping/Tracking/Popup.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Block_Shipping_Tracking_Popup extends Mage_Shipping_Block_Tracking_Popup
20
+ {
21
+ public function getTrackingInfo()
22
+ {
23
+ $_results = parent::getTrackingInfo();
24
+
25
+ $order = Mage::getModel('sales/order')->load(Mage::registry('current_shipping_info')->getOrderId());
26
+
27
+ if (Mage::getStoreConfig('shippingtracking/general/enabled')) {
28
+ foreach($_results as $shipid => $_result) {
29
+ foreach($_result as $key => $track) {
30
+
31
+ $carrier = $track->getCarrier();
32
+ if (Mage::getStoreConfig('shippingtracking/'.$carrier.'_api/enabled')) {
33
+
34
+ $_results[$shipid][$key] = Mage::getModel('shipping/tracking_result_status')->setData($track->getAllData())
35
+ ->setErrorMessage(null)
36
+ ->setUrl($this->getUrl('shippingtracking/index/'.$carrier, array(
37
+ 'number' => $track->getTracking(),
38
+ 'order' => $order->getIncrementId(), //Mage::app()->getRequest()->getParam('order'),
39
+ )));
40
+ }
41
+
42
+ }
43
+ }
44
+ }
45
+
46
+ return $_results;
47
+ }
48
+
49
+ }
app/code/community/Plumrocket/ShippingTracking/Block/System/Config/Version.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Block_System_Config_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
20
+ {
21
+
22
+ public function render(Varien_Data_Form_Element_Abstract $element)
23
+ {
24
+ $moduleNode = Mage::getConfig()->getNode('modules/Plumrocket_ShippingTracking');
25
+ $name = $moduleNode->name;
26
+ $version = $moduleNode->version;
27
+ $wiki_url = $moduleNode->wiki;
28
+
29
+ return '<div style="padding:10px;background-color:#fff;border:1px solid #ddd;margin-bottom:7px;">
30
+ ' . $name . ' v' . $version . ' was developed by <a href="http://www.plumrocket.com" target="_blank">Plumrocket Inc</a>.
31
+ For manual & video tutorials please refer to <a href="' . $wiki_url . '" target="_blank">our online documentation<a/>.
32
+ </div>';
33
+ }
34
+
35
+ }
app/code/community/Plumrocket/ShippingTracking/Block/Ups.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Block_Ups extends Plumrocket_ShippingTracking_Block_Abstract
20
+ {
21
+
22
+ public function getInfo()
23
+ {
24
+ $number = $this->getNumber();
25
+ return $this->helper('shippingtracking')->getUpsTrackingInfo($number);
26
+ }
27
+
28
+ public function getTimeFromStr($str)
29
+ {
30
+ return mktime(0, 0, 0, (int)substr($str, 4, 2), (int)substr($str, 6, 2), (int)substr($str, 0, 4));
31
+ }
32
+
33
+
34
+ public function getLocalTime($str)
35
+ {
36
+ return mktime((int)substr($str, 0, 2), (int)substr($str, 2, 2), (int)substr($str, 4, 2));
37
+ }
38
+ }
app/code/community/Plumrocket/ShippingTracking/Block/Usps.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Block_Usps extends Plumrocket_ShippingTracking_Block_Abstract
20
+ {
21
+
22
+ public function getInfo()
23
+ {
24
+ $number = $this->getNumber();
25
+ return $this->helper('shippingtracking')->getUspsTrackingInfo($number);
26
+ }
27
+
28
+ }
app/code/community/Plumrocket/ShippingTracking/Helper/Data.php ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_Helper_Data extends Mage_Core_Helper_Abstract
20
+ {
21
+ protected $_trackingInfo = array();
22
+
23
+
24
+ protected function _getDecryptedConfig($key)
25
+ {
26
+ if (empty($key)) {
27
+ return false;
28
+ }
29
+ return Mage::helper('core')->decrypt(
30
+ Mage::getStoreConfig('shippingtracking/'.$key));
31
+ }
32
+
33
+ public function getUpsTrackingInfo($number)
34
+ {
35
+ if (!isset($this->_trackingInfo[$number])) {
36
+
37
+ $soap = curl_init("https://www.ups.com/ups.app/xml/Track");
38
+ curl_setopt($soap, CURLOPT_POST, 1);
39
+ curl_setopt($soap, CURLOPT_RETURNTRANSFER, 1);
40
+
41
+ $request = ('<?xml version="1.0"?>
42
+ <AccessRequest xml:lang="en-US"><AccessLicenseNumber>'.$this->_getDecryptedConfig('ups_api/access_key').'</AccessLicenseNumber>
43
+ <UserId>'.$this->_getDecryptedConfig('ups_api/user_id').'</UserId><Password>'.$this->_getDecryptedConfig('ups_api/password').'</Password></AccessRequest>
44
+ <?xml version="1.0"?><TrackRequest xml:lang="en-US"><Request><TransactionReference>
45
+ <CustomerContext>QAST Track</CustomerContext><XpciVersion>1.0</XpciVersion></TransactionReference>
46
+ <RequestAction>Track</RequestAction><RequestOption>activity</RequestOption></Request>
47
+ <TrackingNumber>#'.$number.'</TrackingNumber></TrackRequest>');
48
+
49
+ curl_setopt($soap, CURLOPT_HTTPHEADER,
50
+ array('Content-Type: text/xml; charset=utf-8',
51
+ 'Content-Length: '.strlen($request)));
52
+
53
+ curl_setopt($soap, CURLOPT_POSTFIELDS, $request);
54
+ $response = curl_exec($soap);
55
+ curl_close($soap);
56
+
57
+ $this->_trackingInfo[$number] = @simplexml_load_string($response);
58
+
59
+ }
60
+
61
+ return $this->_trackingInfo[$number];
62
+ }
63
+
64
+
65
+ public function getFedexTrackingInfo($number)
66
+ {
67
+ if (!isset($this->_trackingInfo[$number])) {
68
+
69
+
70
+ if (Mage::getStoreConfig('shippingtracking/fedex_api/sandbox')) {
71
+ $soap = curl_init("https://gatewaybeta.fedex.com:443/xml");
72
+ } else {
73
+ $soap = curl_init("https://gateway.fedex.com:443/xml");
74
+ }
75
+
76
+ curl_setopt($soap, CURLOPT_POST, 1);
77
+ curl_setopt($soap, CURLOPT_RETURNTRANSFER, 1);
78
+
79
+
80
+ $request = ('
81
+ <TrackRequest xmlns="http://fedex.com/ws/track/v3">
82
+ <WebAuthenticationDetail>
83
+ <UserCredential>
84
+ <Key>'.$this->_getDecryptedConfig('fedex_api/key').'</Key>
85
+ <Password>'.$this->_getDecryptedConfig('fedex_api/password').'</Password>
86
+ </UserCredential>
87
+ </WebAuthenticationDetail>
88
+ <ClientDetail>
89
+ <AccountNumber>'.$this->_getDecryptedConfig('fedex_api/account_number').'</AccountNumber>
90
+ <MeterNumber>'.$this->_getDecryptedConfig('fedex_api/meter_number').'</MeterNumber>
91
+ </ClientDetail>
92
+ <TransactionDetail>
93
+ <CustomerTransactionId>ActiveShipping</CustomerTransactionId>
94
+ </TransactionDetail>
95
+ <Version>
96
+ <ServiceId>trck</ServiceId>
97
+ <Major>3</Major>
98
+ <Intermediate>0</Intermediate>
99
+ <Minor>0</Minor>
100
+ </Version>
101
+ <PackageIdentifier>
102
+ <Value>'.$number.'</Value>
103
+ <Type>TRACKING_NUMBER_OR_DOORTAG</Type>
104
+ </PackageIdentifier>
105
+ <IncludeDetailedScans>1</IncludeDetailedScans>
106
+ </TrackRequest>');
107
+
108
+
109
+ curl_setopt($soap, CURLOPT_HTTPHEADER,
110
+ array('Content-Type: text/xml; charset=utf-8',
111
+ 'Content-Length: '.strlen($request)));
112
+
113
+ curl_setopt($soap, CURLOPT_POSTFIELDS, $request);
114
+ $response = curl_exec($soap);
115
+ curl_close($soap);
116
+
117
+ $this->_trackingInfo[$number] = @simplexml_load_string($response);
118
+
119
+ }
120
+
121
+ return $this->_trackingInfo[$number];
122
+ }
123
+
124
+
125
+ public function getUspsTrackingInfo($number)
126
+ {
127
+ if (!isset($this->_trackingInfo[$number])) {
128
+
129
+ $xml = urlencode('<TrackRequest USERID="'.urlencode($this->_getDecryptedConfig('usps_api/user_id')).'"><TrackID ID="'.$number.'"></TrackID></TrackRequest>');
130
+ $response = file_get_contents($url = 'http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2&XML='.$xml);
131
+
132
+ $this->_trackingInfo[$number] = @simplexml_load_string($response);
133
+
134
+ }
135
+
136
+ return $this->_trackingInfo[$number];
137
+ }
138
+
139
+ }
140
+
app/code/community/Plumrocket/ShippingTracking/controllers/IndexController.php ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+
18
+
19
+ class Plumrocket_ShippingTracking_IndexController extends Mage_Core_Controller_Front_Action
20
+ {
21
+
22
+ public function indexAction()
23
+ {
24
+ if (!Mage::getStoreConfig('shippingtracking/general/enabled')) {
25
+ $this->_forward('noRoute');
26
+ }
27
+
28
+ $this->loadLayout();
29
+ if ($head = $this->getLayout()->getBlock('head')) {
30
+ $head->setTitle($this->__('Check Order Status'));
31
+ }
32
+ $this->_initLayoutMessages('customer/session');
33
+ $this->renderLayout();
34
+ }
35
+
36
+ public function infoAction()
37
+ {
38
+ $_request = $this->getRequest();
39
+ $_session = Mage::getSingleton('customer/session');
40
+
41
+ $orderId = $_request->getParam('order');
42
+ $info = $_request->getParam('info');
43
+
44
+
45
+ if (empty($info) || empty($orderId)) {
46
+ $_session->addError($this->__('Make sure that you have entered the Order Number and phone number (or email address).'));
47
+ $this->_redirect('*/*/');
48
+ return;
49
+ } else {
50
+ //var_dump($orderId);
51
+ $order = Mage::getModel('sales/order')->load($orderId, 'increment_id');
52
+ //var_dump($order->getId()); exit();
53
+ if ($order->getId()) {
54
+ $bAddress = $order->getBillingAddress();
55
+ $sAddress = $order->getShippingAddress();
56
+ if ($bAddress->getEmail() == $info || $bAddress->getTelephone() == $info ||
57
+ ($sAddress && (
58
+ $sAddress->getEmail() == $info || $sAddress->getTelephone() == $info
59
+ ))
60
+ ) {
61
+
62
+ $trackingInfo = $this->_getTrackingInfoByOrder($order);
63
+ $shippingInfoModel = new Varien_Object;
64
+ $shippingInfoModel->setTrackingInfo($trackingInfo)->setOrderId($order->getId());
65
+ Mage::register('current_shipping_info', $shippingInfoModel);
66
+
67
+ //var_dump($trackingInfo); exit();
68
+
69
+ if (count($trackingInfo) == 0) {
70
+ $_session->addError($this->__('Shipping tracking data not found.'));
71
+ $this->_redirect('*/*/');
72
+ } else if (count($trackingInfo) == 1) {
73
+ foreach($trackingInfo as $shipid => $_result) {
74
+ if (count($_result) == 1) {
75
+ foreach($_result as $key => $track) {
76
+
77
+ $carrier = $track->getCarrier();
78
+ if (Mage::getStoreConfig('shippingtracking/'.$carrier.'_api/enabled')) {
79
+ $this->_redirect('*/*/'.$carrier, array(
80
+ 'number' => $track->getTracking(),
81
+ 'order' => $order->getIncrementId(),
82
+ ));
83
+ return;
84
+ }
85
+
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ $this->loadLayout();
92
+ if ($head = $this->getLayout()->getBlock('head')) {
93
+ $head->setTitle($this->__('Tracking Information'));
94
+ }
95
+ $this->_initLayoutMessages('customer/session');
96
+ $this->renderLayout();
97
+
98
+ return;
99
+ }
100
+ }
101
+ }
102
+
103
+ $_session->addError($this->__('Data combination is not valid. Please check order number and phone number (or email address).'));
104
+ $this->_redirect('*/*/index', array(
105
+ 'order' => $orderId,
106
+ 'info' => $info,
107
+ ));
108
+
109
+
110
+ }
111
+
112
+ protected function _getTrackingInfoByOrder($order)
113
+ {
114
+ $shipTrack = array();
115
+ $shipments = $order->getShipmentsCollection();
116
+ foreach ($shipments as $shipment){
117
+ $increment_id = $shipment->getIncrementId();
118
+ $tracks = $shipment->getTracksCollection();
119
+
120
+ $trackingInfos=array();
121
+ foreach ($tracks as $track){
122
+ $trackingInfos[] = $track->getNumberDetail();
123
+ }
124
+ $shipTrack[$increment_id] = $trackingInfos;
125
+ }
126
+
127
+
128
+ return $shipTrack;
129
+ }
130
+
131
+
132
+
133
+ public function upsAction()
134
+ {
135
+ $this->_processTrackingAction('ups', $this->__('UPS Tracking Number'));
136
+ }
137
+
138
+
139
+ public function fedexAction()
140
+ {
141
+ $this->_processTrackingAction('fedex', $this->__('FedEx Tracking Number'));
142
+ }
143
+
144
+ public function uspsAction()
145
+ {
146
+ $this->_processTrackingAction('fedex', $this->__('USPS Tracking Number'));
147
+ }
148
+
149
+
150
+ protected function _processTrackingAction($carrier, $pageTitle)
151
+ {
152
+ if (!Mage::getStoreConfig('shippingtracking/general/enabled') || !Mage::getStoreConfig('shippingtracking/'.$carrier.'_api/enabled')) {
153
+ $this->_forward('noRoute');
154
+ }
155
+
156
+ $this->loadLayout();
157
+ if ($head = $this->getLayout()->getBlock('head')) {
158
+ $head->setTitle($pageTitle);
159
+ }
160
+ $this->_initLayoutMessages('customer/session');
161
+ $this->renderLayout();
162
+ }
163
+
164
+
165
+ }
app/code/community/Plumrocket/ShippingTracking/etc/config.xml ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Plumrocket Inc.
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the End-user License Agreement
9
+ * that is available through the world-wide-web at this URL:
10
+ * http://wiki.plumrocket.net/wiki/EULA
11
+ * If you are unable to obtain it through the world-wide-web, please
12
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
13
+ *
14
+ * @package Plumrocket_Shipping_Tracking
15
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
16
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
17
+ */
18
+ -->
19
+ <config>
20
+ <modules>
21
+ <Plumrocket_ShippingTracking>
22
+ <version>1.0.0</version>
23
+ <wiki>http://wiki.plumrocket.com/wiki/Magento_Order_Status_and_Shipping_Tracking_v1.x_Extension</wiki>
24
+ </Plumrocket_ShippingTracking>
25
+ </modules>
26
+ <frontend>
27
+ <routers>
28
+ <shippingtracking>
29
+ <use>standard</use>
30
+ <args>
31
+ <module>Plumrocket_ShippingTracking</module>
32
+ <frontName>shippingtracking</frontName>
33
+ </args>
34
+ </shippingtracking>
35
+ </routers>
36
+ <layout>
37
+ <updates>
38
+ <shippingtracking>
39
+ <file>shippingtracking.xml</file>
40
+ </shippingtracking>
41
+ </updates>
42
+ </layout>
43
+ <translate>
44
+ <modules>
45
+ <shippingtracking>
46
+ <files>
47
+ <default>Plumrocket_Order_Status_and_Shipping_Tracking.csv</default>
48
+ </files>
49
+ </shippingtracking>
50
+ </modules>
51
+ </translate>
52
+ </frontend>
53
+ <global>
54
+ <helpers>
55
+ <shippingtracking>
56
+ <class>Plumrocket_ShippingTracking_Helper</class>
57
+ </shippingtracking>
58
+ </helpers>
59
+ <blocks>
60
+ <shippingtracking>
61
+ <class>Plumrocket_ShippingTracking_Block</class>
62
+ </shippingtracking>
63
+ <shipping>
64
+ <rewrite>
65
+ <tracking_popup>Plumrocket_ShippingTracking_Block_Shipping_Tracking_Popup</tracking_popup>
66
+ </rewrite>
67
+ </shipping>
68
+ </blocks>
69
+ </global>
70
+ <adminhtml>
71
+ <menu>
72
+ <plumrocket>
73
+ <title>Plumrocket</title>
74
+ <sort_order>80</sort_order>
75
+ <children>
76
+ <shippingtracking>
77
+ <title>Order Status &amp; Shipping Tracking</title>
78
+ <sort_order>1500</sort_order>
79
+ <action>adminhtml/system_config/edit/section/shippingtracking</action>
80
+ </shippingtracking>
81
+ </children>
82
+ </plumrocket>
83
+ </menu>
84
+ <acl>
85
+ <resources>
86
+ <all>
87
+ <title>Allow Everything</title>
88
+ </all>
89
+ <admin>
90
+ <children>
91
+ <plumrocket>
92
+ <title>Plumrocket</title>
93
+ <sort_order>80</sort_order>
94
+ <children>
95
+ <shippingtracking translate="title">
96
+ <title>Order Status &amp; Shipping Tracking</title>
97
+ <sort_order>1500</sort_order>
98
+ </shippingtracking>
99
+ </children>
100
+ </plumrocket>
101
+ <system>
102
+ <children>
103
+ <config>
104
+ <children>
105
+ <shippingtracking translate="title">
106
+ <title>Order Status &amp; Shipping Tracking Settings</title>
107
+ </shippingtracking>
108
+ </children>
109
+ </config>
110
+ </children>
111
+ </system>
112
+ </children>
113
+ </admin>
114
+ </resources>
115
+ </acl>
116
+ </adminhtml>
117
+ </config>
app/code/community/Plumrocket/ShippingTracking/etc/system.xml ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Plumrocket Inc.
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the End-user License Agreement
9
+ * that is available through the world-wide-web at this URL:
10
+ * http://wiki.plumrocket.net/wiki/EULA
11
+ * If you are unable to obtain it through the world-wide-web, please
12
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
13
+ *
14
+ * @package Plumrocket_Shipping_Tracking
15
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
16
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
17
+ */
18
+ -->
19
+ <config>
20
+ <tabs>
21
+ <plumrocket>
22
+ <label>
23
+ <![CDATA[
24
+ <div style="padding-left:22px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEIxMEIyRkRCOTg1MTFFMkI4Qjg5OEZGNjcwRUQ4MDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEIxMEIyRkVCOTg1MTFFMkI4Qjg5OEZGNjcwRUQ4MDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QjEwQjJGQkI5ODUxMUUyQjhCODk4RkY2NzBFRDgwNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QjEwQjJGQ0I5ODUxMUUyQjhCODk4RkY2NzBFRDgwNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoBY2kYAAAJCSURBVHjaJFJNaxVBEOzu2cfDZPflkSgkfsSP5CKBoBeDigeRgIgk4MWDePemqJHgBwgiCEFB9C94CkYMEuK/iF4CXgJ6UCOikBCyb6a7rVmX3WVmt6e6qrr49VppHknYXYMFFcfFzUXmRCROxmzsbPguhVpPqYcjLGSm7oRCIzo1fP/XztrG1grhlJMzBSUTKkyBnYFQDCCs8HRbB6aG539s7nz9ewhgaEa5hZuKqFtMFBvw5JyUcHBqdGFnW4Pb8b031HJHM6+N8Fc0Zky8NbFGVyv2FScmBq9CSNnfnmg/6vOhVKOUHVhqYi7RoAfA7oZ1ujD+kkk6AwPGUva3Th95nARlnBENHmhuB4IEk9QmB6+NVuegcmt7izVA2367MrJn0jOzrASQDoopgr0Gqc6PPYNNuNFPgmViZd/02Cs1VvWknm2HdkhXpWPdS2bRLcE2WILGkk3mQTk5NnS5hwYGl2CRwqPwZNo//3z74cu937sb5Fp1ugz7g3vA2d7s0TeSigTFWYOKJX2w2vKYrk8urq7P/6m/gVfV6ZRl2alKzznws4fnUnKpQcms0zf+9GKtKvdWik/flz6uP9ze3QQdwTBJBqouBnpmZL5qH+S7y232XiIOTguzemc5PJ+p5963VCjAGP6fJWlCZXkLeDR6MYPR2c13jO3tpZZmniE2M04IRcKAPCKYiQrKFtGtRc4YjIApkkmBJGqCR9lG48B1s0JR0dMaAc3posaBPIM8daMsVBpmMLiwHPhI/k+AAQDYqY0eXeLHAgAAAABJRU5ErkJggg==) left 50% no-repeat;">Plumrocket Inc.</div> ]]>
25
+ </label>
26
+ <class>plumrocket_section</class>
27
+ <sort_order>101</sort_order>
28
+ </plumrocket>
29
+ </tabs>
30
+ <sections>
31
+ <shippingtracking translate="label">
32
+ <label>Order Status &amp; Shipping Tracking</label>
33
+ <tab>plumrocket</tab>
34
+ <sort_order>1500</sort_order>
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>1</show_in_store>
38
+ <groups>
39
+ <general translate="label">
40
+ <label>General</label>
41
+ <frontend_type>text</frontend_type>
42
+ <sort_order>10</sort_order>
43
+ <show_in_default>1</show_in_default>
44
+ <show_in_website>1</show_in_website>
45
+ <show_in_store>1</show_in_store>
46
+ <expanded>1</expanded>
47
+ <fields>
48
+ <version translate="label">
49
+ <frontend_type>text</frontend_type>
50
+ <frontend_model>shippingtracking/system_config_version</frontend_model>
51
+ <sort_order>1</sort_order>
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>1</show_in_store>
55
+ </version>
56
+ <enabled translate="label">
57
+ <label>Enable Extension</label>
58
+ <frontend_type>select</frontend_type>
59
+ <source_model>adminhtml/system_config_source_yesno</source_model>
60
+ <sort_order>10</sort_order>
61
+ <show_in_default>1</show_in_default>
62
+ <show_in_website>1</show_in_website>
63
+ <show_in_store>1</show_in_store>
64
+ </enabled>
65
+ </fields>
66
+ </general>
67
+ <ups_api translate="label">
68
+ <label>UPS Tracking API</label>
69
+ <frontend_type>text</frontend_type>
70
+ <sort_order>20</sort_order>
71
+ <show_in_default>1</show_in_default>
72
+ <show_in_website>1</show_in_website>
73
+ <show_in_store>1</show_in_store>
74
+ <expanded>1</expanded>
75
+ <fields>
76
+ <enabled translate="label">
77
+ <label>Enable</label>
78
+ <frontend_type>select</frontend_type>
79
+ <source_model>adminhtml/system_config_source_yesno</source_model>
80
+ <sort_order>10</sort_order>
81
+ <show_in_default>1</show_in_default>
82
+ <show_in_website>1</show_in_website>
83
+ <show_in_store>1</show_in_store>
84
+ </enabled>
85
+ <user_id translate="label">
86
+ <label>User ID</label>
87
+ <frontend_type>obscure</frontend_type>
88
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
89
+ <sort_order>20</sort_order>
90
+ <show_in_default>1</show_in_default>
91
+ <show_in_website>1</show_in_website>
92
+ <show_in_store>1</show_in_store>
93
+ </user_id>
94
+ <password translate="label">
95
+ <label>Password</label>
96
+ <frontend_type>obscure</frontend_type>
97
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
98
+ <sort_order>30</sort_order>
99
+ <show_in_default>1</show_in_default>
100
+ <show_in_website>1</show_in_website>
101
+ <show_in_store>1</show_in_store>
102
+ </password>
103
+ <access_key translate="label">
104
+ <label>API Access Key</label>
105
+ <frontend_type>obscure</frontend_type>
106
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
107
+ <sort_order>40</sort_order>
108
+ <show_in_default>1</show_in_default>
109
+ <show_in_website>1</show_in_website>
110
+ <show_in_store>1</show_in_store>
111
+ <comment>"UPS API Access Key" also referred as "Access License Number"</comment>
112
+ </access_key>
113
+ </fields>
114
+ </ups_api>
115
+
116
+ <fedex_api translate="label">
117
+ <label>FedEx Tracking API</label>
118
+ <frontend_type>text</frontend_type>
119
+ <sort_order>30</sort_order>
120
+ <show_in_default>1</show_in_default>
121
+ <show_in_website>1</show_in_website>
122
+ <show_in_store>1</show_in_store>
123
+ <expanded>1</expanded>
124
+ <fields>
125
+ <enabled translate="label">
126
+ <label>Enable</label>
127
+ <frontend_type>select</frontend_type>
128
+ <source_model>adminhtml/system_config_source_yesno</source_model>
129
+ <sort_order>10</sort_order>
130
+ <show_in_default>1</show_in_default>
131
+ <show_in_website>1</show_in_website>
132
+ <show_in_store>1</show_in_store>
133
+ </enabled>
134
+ <account_number translate="label">
135
+ <label>Account Number</label>
136
+ <frontend_type>obscure</frontend_type>
137
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
138
+ <sort_order>20</sort_order>
139
+ <show_in_default>1</show_in_default>
140
+ <show_in_website>1</show_in_website>
141
+ <show_in_store>1</show_in_store>
142
+ </account_number>
143
+ <meter_number translate="label">
144
+ <label>Meter Number</label>
145
+ <frontend_type>obscure</frontend_type>
146
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
147
+ <sort_order>30</sort_order>
148
+ <show_in_default>1</show_in_default>
149
+ <show_in_website>1</show_in_website>
150
+ <show_in_store>1</show_in_store>
151
+ </meter_number>
152
+ <key translate="label">
153
+ <label>Key</label>
154
+ <frontend_type>obscure</frontend_type>
155
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
156
+ <sort_order>40</sort_order>
157
+ <show_in_default>1</show_in_default>
158
+ <show_in_website>1</show_in_website>
159
+ <show_in_store>1</show_in_store>
160
+ </key>
161
+ <password translate="label">
162
+ <label>Password</label>
163
+ <frontend_type>obscure</frontend_type>
164
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
165
+ <sort_order>50</sort_order>
166
+ <show_in_default>1</show_in_default>
167
+ <show_in_website>1</show_in_website>
168
+ <show_in_store>1</show_in_store>
169
+ </password>
170
+ <sandbox translate="label">
171
+ <label>Sandbox Mode</label>
172
+ <frontend_type>select</frontend_type>
173
+ <source_model>adminhtml/system_config_source_yesno</source_model>
174
+ <sort_order>70</sort_order>
175
+ <show_in_default>1</show_in_default>
176
+ <show_in_website>1</show_in_website>
177
+ <show_in_store>1</show_in_store>
178
+ </sandbox>
179
+ </fields>
180
+ </fedex_api>
181
+
182
+ <usps_api translate="label">
183
+ <label>USPS Tracking API</label>
184
+ <frontend_type>text</frontend_type>
185
+ <sort_order>40</sort_order>
186
+ <show_in_default>1</show_in_default>
187
+ <show_in_website>1</show_in_website>
188
+ <show_in_store>1</show_in_store>
189
+ <expanded>1</expanded>
190
+ <fields>
191
+ <enabled translate="label">
192
+ <label>Enable</label>
193
+ <frontend_type>select</frontend_type>
194
+ <source_model>adminhtml/system_config_source_yesno</source_model>
195
+ <sort_order>10</sort_order>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </enabled>
200
+ <user_id translate="label">
201
+ <label>User ID</label>
202
+ <frontend_type>obscure</frontend_type>
203
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
204
+ <sort_order>20</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </user_id>
209
+ </fields>
210
+ </usps_api>
211
+
212
+ </groups>
213
+ </shippingtracking>
214
+
215
+ </sections>
216
+ </config>
app/design/frontend/base/default/layout/shippingtracking.xml ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Plumrocket Inc.
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the End-user License Agreement
9
+ * that is available through the world-wide-web at this URL:
10
+ * http://wiki.plumrocket.net/wiki/EULA
11
+ * If you are unable to obtain it through the world-wide-web, please
12
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
13
+ *
14
+ * @package Plumrocket_Shipping_Tracking
15
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
16
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
17
+ */
18
+ -->
19
+ <layout version="1.0.0">
20
+
21
+ <shippingtracking_index_index>
22
+ <reference name="root">
23
+ <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
24
+ </reference>
25
+ <reference name="content">
26
+ <block type="core/template" name="shippingTracking.main" template="shippingtracking/main.phtml"/>
27
+ </reference>
28
+ </shippingtracking_index_index>
29
+
30
+ <shippingtracking_index_info>
31
+ <reference name="root">
32
+ <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
33
+ </reference>
34
+ <reference name="content">
35
+ <block type="shippingtracking/shipping_tracking_popup" name="shippingTracking.info" template="shippingtracking/info.phtml"/>
36
+ </reference>
37
+ </shippingtracking_index_info>
38
+
39
+ <shipping_tracking_popup translate="label">
40
+ <reference name="content">
41
+ <reference name="shipping.tracking.popup">
42
+ <action method="setTemplate"><template>shippingtracking/popup.phtml</template></action>
43
+ </reference>
44
+ </reference>
45
+ </shipping_tracking_popup>
46
+
47
+ <shippingtracking_index_ups>
48
+ <reference name="root">
49
+ <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
50
+ </reference>
51
+ <reference name="content">
52
+ <block type="shippingtracking/ups" name="shippingTracking.ups" template="shippingtracking/info/ups.phtml"/>
53
+ <block type="core/template" name="shippingTracking.form" template="shippingtracking/info/form.phtml"/>
54
+ </reference>
55
+ </shippingtracking_index_ups>
56
+
57
+ <shippingtracking_index_fedex>
58
+ <reference name="root">
59
+ <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
60
+ </reference>
61
+ <reference name="content">
62
+ <block type="shippingtracking/fedex" name="shippingTracking.fedex" template="shippingtracking/info/fedex.phtml"/>
63
+ <block type="core/template" name="shippingTracking.form" template="shippingtracking/info/form.phtml"/>
64
+ </reference>
65
+ </shippingtracking_index_fedex>
66
+
67
+ <shippingtracking_index_usps>
68
+ <reference name="root">
69
+ <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
70
+ </reference>
71
+ <reference name="content">
72
+ <block type="shippingtracking/usps" name="shippingTracking.usps" template="shippingtracking/info/usps.phtml"/>
73
+ <block type="core/template" name="shippingTracking.form" template="shippingtracking/info/form.phtml"/>
74
+ </reference>
75
+ </shippingtracking_index_usps>
76
+
77
+ </layout>
78
+
app/design/frontend/base/default/template/shippingtracking/info.phtml ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+ <?php $_results = $this->getTrackingInfo(); ?>
19
+
20
+ <?php if(sizeof($_results)>0): ?>
21
+ <?php foreach($_results as $shipid => $_result): ?>
22
+ <?php if($shipid): ?>
23
+ <div class="page-title title-buttons">
24
+ <h1><?php echo $this->__('Tracking Information'); ?> (<?php echo $this->__('Shipment #').$shipid; ?>)</h1>
25
+ </div>
26
+ <?php endif; ?>
27
+ <?php if(sizeof($_result)>0): ?>
28
+ <?php $rowCount = sizeof($_result); $counter = 1; ?>
29
+ <?php $_id = 0; foreach($_result as $track): ?>
30
+ <table class="tracking-table-popup data-table" id="tracking-table-popup-<?php echo $_id ?>">
31
+ <col width="15%" />
32
+ <col />
33
+ <tbody>
34
+ <?php if(is_object($track)): ?>
35
+ <tr>
36
+ <th class="label"><?php echo $this->__('Tracking Number:'); ?></th>
37
+ <td class="value"><?php echo $this->escapeHtml($track->getTracking()); ?></td>
38
+ </tr>
39
+ <?php if ($track->getCarrierTitle()): ?>
40
+ <tr>
41
+ <th class="label"><?php echo $this->__('Carrier:'); ?></th>
42
+ <td class="value"><?php echo $this->escapeHtml($track->getCarrierTitle()); ?></td>
43
+ </tr>
44
+ <?php endif; ?>
45
+ <?php if($track->getErrorMessage()): ?>
46
+ <tr>
47
+ <th class="label"><?php echo $this->__('Error:'); ?></th>
48
+ <td class="error"><?php echo $this->__('Tracking information is currently not available. Please '); if ($this->getContactUsEnabled()) : ?><a href="<?php echo $this->getContactUs() ?>" title="<?php echo $this->__('contact us') ?>" onclick="this.target='_blank'"><?php echo $this->__('contact us') ?></a><?php echo $this->__(' for more information or '); endif; echo $this->__('email us at '); ?><a href="mailto:<?php echo $this->getStoreSupportEmail() ?>"><?php echo $this->getStoreSupportEmail() ?></a></td>
49
+ </tr>
50
+ <?php elseif($track->getTrackSummary()): ?>
51
+ <tr>
52
+ <th class="label"><?php echo $this->__('Info:'); ?></th>
53
+ <td class="value"><?php echo $track->getTrackSummary(); ?></td>
54
+ </tr>
55
+ <?php elseif($track->getUrl()): ?>
56
+ <tr>
57
+ <th class="label"><?php echo $this->__('Track:'); ?></th>
58
+ <td class="value">
59
+ <a href="<?php echo $this->escapeHtml($track->getUrl()); ?>" onclick="this.target='_blank'"><?php echo $this->__('View Details'); ?></a></td>
60
+ </tr>
61
+ <?php else: ?>
62
+ <?php if ($track->getStatus()): ?>
63
+ <tr>
64
+ <th class="label"><?php echo $this->__('Status:'); ?></th>
65
+ <td class="value"><?php echo $track->getStatus(); ?></td>
66
+ </tr>
67
+ <?php endif; ?>
68
+
69
+ <?php if ($track->getDeliverydate()): ?>
70
+ <tr>
71
+ <th class="label"><?php echo $this->__('Delivered on:'); ?></th>
72
+ <td class="value"><?php echo $this->formatDeliveryDateTime($track->getDeliverydate(),$track->getDeliverytime()); ?></td>
73
+ </tr>
74
+ <?php endif; ?>
75
+
76
+ <?php if ($track->getSignedby()): ?>
77
+ <tr>
78
+ <th class="label"><?php echo $this->__('Signed by:'); ?></th>
79
+ <td class="value"><?php echo $track->getSignedby(); ?></td>
80
+ </tr>
81
+ <?php endif; ?>
82
+
83
+ <?php if ($track->getDeliveryLocation()): ?>
84
+ <tr>
85
+ <th class="label"><?php echo $this->__('Delivered to:'); ?></th>
86
+ <td class="value"><?php echo $track->getDeliveryLocation(); ?></td>
87
+ </tr>
88
+ <?php endif; ?>
89
+
90
+ <?php if ($track->getShippedDate()): ?>
91
+ <tr>
92
+ <th class="label"><?php echo $this->__('Shipped or billed on:'); ?></th>
93
+ <td class="value"><?php echo $track->getShippedDate(); ?></td>
94
+ </tr>
95
+ <?php endif; ?>
96
+
97
+ <?php if ($track->getService()): ?>
98
+ <tr>
99
+ <th class="label"><?php echo $this->__('Service Type:'); ?></th>
100
+ <td class="value"><?php echo $track->getService(); ?></td>
101
+ </tr>
102
+ <?php endif; ?>
103
+
104
+ <?php if ($track->getWeight()): ?>
105
+ <tr>
106
+ <th class="label"><?php echo $this->__('Weight:'); ?></th>
107
+ <td class="value"><?php echo $track->getWeight(); ?></td>
108
+ </tr>
109
+ <?php endif; ?>
110
+ <?php endif; ?>
111
+ <?php elseif(isset($track['title']) && isset($track['number']) && $track['number']): ?>
112
+ <!--if the tracking is custom value-->
113
+ <tr>
114
+ <th class="label"><?php echo ($track['title'] ? $this->escapeHtml($track['title']) : $this->__('N/A')); ?>:</th>
115
+ <td class="value"><?php echo (isset($track['number']) ? $this->escapeHtml($track['number']) : ''); ?></td>
116
+ </tr>
117
+ <?php endif; ?>
118
+ </tbody>
119
+ </table>
120
+ <script type="text/javascript">decorateTable('tracking-table-popup-<?php echo $_id++ ?>');</script>
121
+ <?php if (is_object($track) && sizeof($track->getProgressdetail())>0): ?>
122
+ <br />
123
+ <table class="data-table" id="track-history-table-<?php echo $track->getTracking(); ?>">
124
+ <col />
125
+ <col width="1" />
126
+ <col width="1" />
127
+ <col />
128
+ <thead>
129
+ <tr>
130
+ <th><?php echo $this->__('Location') ?></th>
131
+ <th><?php echo $this->__('Date') ?></th>
132
+ <th><?php echo $this->__('Local Time') ?></th>
133
+ <th><?php echo $this->__('Description') ?></th>
134
+ </tr>
135
+ </thead>
136
+ <tbody>
137
+ <?php foreach($track->getProgressdetail() as $_detail): ?>
138
+ <?php $_detailDate = (isset($_detail['deliverydate']) ? $this->formatDeliveryDate($_detail['deliverydate']) : '') ?>
139
+ <?php $_detailTime = (isset($_detail['deliverytime']) ? $this->formatDeliveryTime($_detail['deliverytime'], $_detail['deliverydate']) : '') ?>
140
+ <tr>
141
+ <td><?php echo (isset($_detail['deliverylocation']) ? $_detail['deliverylocation'] : ''); ?></td>
142
+ <td><span class="nobr"><?php echo $_detailDate ?></span></td>
143
+ <td><span class="nobr"><?php echo $_detailTime ?></span></td>
144
+ <td><?php echo (isset($_detail['activity']) ? $_detail['activity'] : '') ?></td>
145
+ </tr>
146
+ <?php endforeach; ?>
147
+ </tbody>
148
+ </table>
149
+ <script type="text/javascript">decorateTable('track-history-table-<?php echo $track->getTracking(); ?>');</script>
150
+ <?php endif; ?>
151
+ <div class="divider"></div>
152
+ <?php if($counter!=$rowCount): ?>
153
+ <?php endif; ?>
154
+ <?php $counter++; ?>
155
+ <!--end for each tracking information-->
156
+ <?php endforeach; ?>
157
+ <?php else: ?>
158
+ <p><?php echo $this->__('There is no tracking available for this shipment.'); ?></p>
159
+ <?php endif; ?>
160
+
161
+ <?php endforeach; ?>
162
+ <?php else: ?>
163
+ <p><?php echo $this->__('There is no tracking available.'); ?></p>
164
+ <?php endif; ?>
165
+ <div class="buttons-set">
166
+ <p class="back-link"><a href="<?php echo $this->getUrl('*/', array('order' => $this->getRequest()->getParam('order'))) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p>
167
+ </div>
app/design/frontend/base/default/template/shippingtracking/info/fedex.phtml ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+
19
+ <?php
20
+ $info = $this->getInfo();
21
+
22
+ $_dateFormat = $this->__('m/d/Y');
23
+ $_timeFormat = $this->__('g:i a');
24
+ ?>
25
+
26
+ <div class="page-title">
27
+ <h1>
28
+ <?php echo $this->__('FedEx Tracking Number %s', ( $this->getNumber() ? '('.$this->htmlEscape($this->getNumber()).')' : '' )) ?>
29
+ <?php if ($order = $this->getRequest()->getParam('order')) { echo ' - '.$this->__('Order').' #'.$this->escapeHtml($order); } ?>
30
+ </h1>
31
+ </div>
32
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
33
+
34
+ <?php if ($this->getNumber()) { ?>
35
+ <br/>
36
+ <?php if (!$info || $info->HighestSeverity != 'SUCCESS') { ?>
37
+ <strong><?php echo $this->__('Tracking information is not available at this time. Please check back later or double-check the tracking number entered and try again.'); ?></strong>
38
+ <?php } else { ?>
39
+ <div class="fieldset">
40
+ <h2 class="legend"><?php echo $this->__('Shipment Progress') ?></h2>
41
+ <table class="data-table" >
42
+ <thead>
43
+ <tr>
44
+ <th><?php echo $this->__('Location') ?></th>
45
+ <th><?php echo $this->__('Date') ?></th>
46
+ <th><?php echo $this->__('Time') ?></th>
47
+ </tr>
48
+ </thead>
49
+ <tbody>
50
+ <?php
51
+
52
+ $trackDetails = array();
53
+ if (isset($info->TrackDetails[0])) {
54
+ foreach($info->TrackDetails as $item) {
55
+ $trackDetails[] = $item;
56
+ }
57
+ } else {
58
+ $trackDetails = array($info->TrackDetails);
59
+ }
60
+ krsort($trackDetails);
61
+
62
+ foreach($trackDetails as $trackDetail) {
63
+ $time = strtotime($trackDetail->ShipTimestamp)
64
+ ?>
65
+ <?php if ($_events = $trackDetail->Events) {
66
+
67
+ $events = array();
68
+ foreach($_events as $item) {
69
+ $events[] = $item;
70
+ }
71
+ krsort($events);
72
+
73
+ foreach($_events as $item) {
74
+ $time = strtotime($item->Timestamp);
75
+ ?>
76
+ <tr>
77
+ <td><?php
78
+ $address = $item->Address;
79
+ if ($address->City) {
80
+ echo ( ($address->City) ? $this->escapeHtml($address->City) . ', ' : '') .
81
+ ( ($address->StateOrProvinceCode) ? '('.$this->escapeHtml($address->StateOrProvinceCode).'), ' : '') .
82
+ ( ($address->CountryCode) ? Mage::app()->getLocale()->getCountryTranslation($address->CountryCode) : '');
83
+ } else {
84
+ //echo '- - -';
85
+ }
86
+ ?></td>
87
+ <td><?php echo date($_dateFormat, $time); ?></td>
88
+ <td><?php echo date($_timeFormat, $time); ?></td>
89
+ </tr>
90
+ <?php } ?>
91
+ <?php } else { ?>
92
+ <tr>
93
+ <td>
94
+ <?php
95
+ $address = $trackDetail->DestinationAddress;
96
+ if ($address->City) {
97
+ echo ( ($address->City) ? $this->escapeHtml($address->City) . ', ' : '') .
98
+ ( ($address->StateOrProvinceCode) ? '('.$this->escapeHtml($address->StateOrProvinceCode).'), ' : '') .
99
+ ( ($address->CountryCode) ? Mage::app()->getLocale()->getCountryTranslation($address->CountryCode) : '');
100
+ } else {
101
+ //echo '- - -';
102
+ }
103
+ ?>
104
+ </td>
105
+ <td><?php echo date($_dateFormat, $time); ?></td>
106
+ <td><?php echo date($_timeFormat, $time); ?></td>
107
+ </tr>
108
+ <?php } ?>
109
+ <?php } ?>
110
+ </tbody>
111
+ </table>
112
+ </div>
113
+ <?php } ?>
114
+ <br/><br/>
115
+ <?php } ?>
app/design/frontend/base/default/template/shippingtracking/info/form.phtml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+
19
+ <div style="background:#f7f7f7; padding:12px;">
20
+ <form action="<?php echo $this->getUrl('*/*/*') ?>" id="tracking-number" >
21
+ <div class="block-content">
22
+ <h6>Enter Tracking number</h6>
23
+ <div class="input-box" >
24
+ <input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" name="number" class="input-text required-entry">
25
+ </div>
26
+ <div class="buttons-set">
27
+ <button type="submit" title="Track" class="button"><span><span>Track</span></span></button>
28
+ </div>
29
+ </div>
30
+ </form>
31
+ </div>
32
+
33
+
34
+ <div class="buttons-set">
35
+ <p class="back-link"><a href="<?php echo $this->getUrl('*/', array('order' => $this->getRequest()->getParam('order'))) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p>
36
+ <?php echo $this->__('Postal Services:') ?>
37
+ <?php if (Mage::getStoreConfig('shippingtracking/ups_api/enabled')) { ?><a href="<?php echo $this->getUrl('*/*/ups') ?>">UPS</a> | <?php } ?>
38
+ <?php if (Mage::getStoreConfig('shippingtracking/fedex_api/enabled')) { ?><a href="<?php echo $this->getUrl('*/*/fedex') ?>">FedEx</a> | <?php } ?>
39
+ <?php if (Mage::getStoreConfig('shippingtracking/usps_api/enabled')) { ?><a href="<?php echo $this->getUrl('*/*/usps') ?>">USPS</a> | <?php } ?>
40
+ </div>
41
+
42
+ <script type="text/javascript">
43
+ //<![CDATA[
44
+ var newsletterSubscriberFormDetail = new VarienForm('tracking-number');
45
+ //]]>
46
+ </script>
app/design/frontend/base/default/template/shippingtracking/info/ups.phtml ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+
19
+ <?php
20
+ $info = $this->getInfo();
21
+ $_dateFormat = $this->__('m/d/Y');
22
+ $_timeFormat = $this->__('g:i a');
23
+ ?>
24
+
25
+ <div class="page-title">
26
+ <h1>
27
+ <?php echo $this->__('UPS Tracking Number %s', ( $this->getNumber() ? '('.$this->htmlEscape($this->getNumber()).')' : '' )) ?>
28
+ <?php if ($order = $this->getRequest()->getParam('order')) { echo ' - '.$this->__('Order').' #'.$this->escapeHtml($order); } ?>
29
+ </h1>
30
+ </div>
31
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
32
+ <?php if ($this->getNumber()) { ?>
33
+
34
+ <br/>
35
+
36
+ <?php if ($info->Response->ResponseStatusDescription != 'Success') { ?>
37
+ <strong><?php echo $this->escapeHtml($info->Response->Error->ErrorDescription); ?></strong>
38
+ <?php } else { ?>
39
+
40
+ <?php if ($lastAction = $info->Shipment->Package->Activity[0]) { ?>
41
+ <div class="fieldset">
42
+ <h2 class="legend"><?php echo $this->__('General Information') ?></h2>
43
+ <ul class="form-list">
44
+ <?php $delivered = $lastAction->Status->StatusType->Code == 'D'; ?>
45
+ <li class="fields">
46
+ <label for="company"><?php echo $this->__('Delivered On:') ?></label>
47
+ <div class="input-box"><?php echo ($delivered) ? date('m/d/Y', $this->getTimeFromStr($lastAction->Date)) . ' at ' . date('h:i A', $this->getLocalTime($lastAction->Time)) : $this->__('Not delivered yet') ?></div>
48
+ </li>
49
+
50
+ <?php if ($delivered) { ?>
51
+ <li class="fields">
52
+ <label for="company"><?php echo $this->__('Left At:') ?></label>
53
+ <div class="input-box"><?php echo ucfirst(strtolower($this->escapeHtml($lastAction->ActivityLocation->Description))) ?></div>
54
+ </li>
55
+ <?php } ?>
56
+
57
+ <?php
58
+ $signedFor = $lastAction->ActivityLocation->SignedForByName;
59
+ if ($signedFor) {
60
+ ?>
61
+ <li class="fields">
62
+ <label for="company"><?php echo $this->__('Signed For') ?></label>
63
+ <div class="input-box"><?php echo $this->escapeHtml($signedFor) ?></div>
64
+ </li>
65
+ <?php } ?>
66
+ </ul>
67
+ </div>
68
+ <?php } else if ($deliveryDateUnavailable = $info->Shipment->DeliveryDateUnavailable) { ?>
69
+ <div class="fieldset">
70
+ <h2 class="legend"><?php echo $this->__('General Information') ?></h2>
71
+ <ul class="form-list">
72
+ <li class="fields">
73
+ <?php echo $this->escapeHtml($deliveryDateUnavailable->Description[0]) ?>.
74
+ </li>
75
+ </ul>
76
+ </div>
77
+ <?php } ?>
78
+
79
+
80
+ <div class="fieldset">
81
+ <h2 class="legend"><?php echo $this->__('Additional Information') ?></h2>
82
+ <ul class="form-list">
83
+ <li class="fields">
84
+ <label for="company"><?php echo $this->__('Shipped/Billed On:') ?></label>
85
+ <div class="input-box">
86
+ <?php
87
+ echo date('m/d/Y', $this->getTimeFromStr($info->Shipment->PickupDate));
88
+ ?>
89
+ </div>
90
+ </li>
91
+ <li class="fields">
92
+ <label for="company"><?php echo $this->__('Type:') ?></label>
93
+ <div class="input-box"> <?php echo $this->__('Package') ?></div>
94
+ </li>
95
+ </ul>
96
+ </div>
97
+
98
+ <?php if ($info->Shipment->Package->Activity) { ?>
99
+ <div class="fieldset">
100
+ <h2 class="legend"><?php echo $this->__('Shipment Progress') ?></h2>
101
+ <table class="data-table" >
102
+ <thead>
103
+ <tr>
104
+ <th><?php echo $this->__('Location') ?></th>
105
+ <th><?php echo $this->__('Date') ?></th>
106
+ <th><?php echo $this->__('Time') ?></th>
107
+ <th><?php echo $this->__('Status') ?></th>
108
+ </tr>
109
+ </thead>
110
+ <tbody>
111
+ <?php foreach($info->Shipment->Package->Activity as $item) { ?>
112
+ <tr>
113
+ <td><?php
114
+ $address = $item->ActivityLocation->Address;
115
+ echo ( ($address->City) ? $this->escapeHtml($address->City) . ', ' : '') .
116
+ ( ($address->StateProvinceCode) ? $this->escapeHtml($address->StateProvinceCode) . ', ' : '') .
117
+ ( ($address->CountryCode) ? Mage::app()->getLocale()->getCountryTranslation($address->CountryCode) : '');
118
+ ?></td>
119
+ <td><?php echo date($_dateFormat, $this->getTimeFromStr($item->Date)); ?></td>
120
+ <td><?php echo date($_timeFormat, $this->getLocalTime($item->Time)); ?></td>
121
+ <td><?php echo $this->__($this->escapeHtml(ucfirst(strtolower($item->Status->StatusType->Description)))) ?></td>
122
+ </tr>
123
+ <?php } ?>
124
+ </tbody>
125
+ </table>
126
+ </div>
127
+ <?php } ?>
128
+ <?php } ?>
129
+ <br/><br/>
130
+ <?php } ?>
app/design/frontend/base/default/template/shippingtracking/info/usps.phtml ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+
19
+ <?php
20
+ $info = $this->getInfo();
21
+ $_dateFormat = $this->__('m/d/Y');
22
+ $_timeFormat = $this->__('g:i a');
23
+ ?>
24
+
25
+ <div class="page-title">
26
+ <h1>
27
+ <?php echo $this->__('USPS Tracking Number %s', ( $this->getNumber() ? '('.$this->htmlEscape($this->getNumber()).')' : '' )) ?>
28
+ <?php if ($order = $this->getRequest()->getParam('order')) { echo ' - '.$this->__('Order').' #'.$this->escapeHtml($order); } ?>
29
+ </h1>
30
+ </div>
31
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
32
+ <?php if ($this->getNumber()) { ?>
33
+
34
+ <br/>
35
+
36
+ <?php if (!$info || !$info->TrackInfo) { ?>
37
+ <strong><?php echo $this->__('Tracking information is not available at this time. Please check back later or double-check the tracking number entered and try again.'); ?></strong>
38
+ <?php } else {
39
+
40
+ $trackInfo = $info->TrackInfo;
41
+
42
+ ?>
43
+
44
+ <?php if ($trackInfo->TrackSummary) { ?>
45
+ <h2 class="legend"><?php echo $this->__('General Information') ?></h2>
46
+ <?php foreach($trackInfo->TrackSummary as $info) { ?>
47
+ <div class="fieldset">
48
+ <div>
49
+ <strong><?php echo $this->escapeHtml($info) ?></strong>
50
+ </div>
51
+ </div>
52
+ <?php } ?>
53
+ <br/>
54
+ <?php } ?>
55
+
56
+ <?php if ($trackInfo->GuaranteedDeliveryDate) { ?>
57
+ <h2 class="legend"><?php echo $this->__('Guaranteed Delivery Date') ?></h2>
58
+ <div class="fieldset">
59
+ <div>
60
+ <?php echo $this->escapeHtml($trackInfo->GuaranteedDeliveryDate) ?>
61
+ </div>
62
+ </div>
63
+ <br/>
64
+ <?php } ?>
65
+
66
+ <?php if ($trackInfo->TrackDetail) { ?>
67
+ <div class="fieldset">
68
+ <h2 class="legend"><?php echo $this->__('Shipment Progress') ?></h2>
69
+ <table class="data-table" >
70
+ <thead>
71
+ <tr>
72
+ <th><?php echo $this->__('Location') ?></th>
73
+ <th><?php echo $this->__('Date') ?></th>
74
+ <th><?php echo $this->__('Time') ?></th>
75
+ <th><?php echo $this->__('Status') ?></th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <?php foreach($trackInfo->TrackDetail as $info) { ?>
80
+ <?php
81
+ $data = explode(',', $info);
82
+
83
+ $activity = $data[0];
84
+ $date = date($_dateFormat, strtotime($data[1] . ', ' . $data[2]));
85
+
86
+ if (count($data) > 3) {
87
+ $time = $data[3];
88
+ $address = $data[4] . ' ' . $data[5];
89
+ } else {
90
+ $time = null;
91
+ $address = null;
92
+ }
93
+ ?>
94
+ <tr>
95
+ <td><?php echo $address ? $this->escapeHtml($address) : '' ?></td>
96
+ <td><?php echo $date; ?></td>
97
+ <td><?php echo $time ? $time : '' ?></td>
98
+ <td><?php echo $this->escapeHtml($this->__($activity)) ?></td>
99
+ </tr>
100
+ <?php } ?>
101
+ </tbody>
102
+ </table>
103
+ </div>
104
+ <?php } ?>
105
+ <?php } ?>
106
+ <br/><br/>
107
+ <?php } ?>
app/design/frontend/base/default/template/shippingtracking/main.phtml ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plumrocket Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the End-user License Agreement
8
+ * that is available through the world-wide-web at this URL:
9
+ * http://wiki.plumrocket.net/wiki/EULA
10
+ * If you are unable to obtain it through the world-wide-web, please
11
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
12
+ *
13
+ * @package Plumrocket_Shipping_Tracking
14
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
15
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
16
+ */
17
+ ?>
18
+
19
+ <div class="page-title">
20
+ <h1><?php echo $this->__('Check Order Status') ?></h1>
21
+ </div>
22
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
23
+ <?php
24
+ $_request = Mage::app()->getRequest();
25
+ ?>
26
+ <p>
27
+ <?php echo $this->__('Please enter the order number and phone number (or email address) from your customer agreement for shipping tracking.'); ?>
28
+ </p>
29
+ <br/>
30
+ <form action="<?php echo $this->getUrl('*/*/info') ?>" method="post" autocomplete="off" id="shipping-tracking" class="scaffold-form" enctype="multipart/form-data">
31
+ <div class="fieldset">
32
+ <p class="required">* Required Fields</p>
33
+ <ul class="form-list">
34
+ <li class="fields">
35
+ <div class="customer-name">
36
+ <div class="field name-firstname">
37
+ <label for="firstname" class="required"><em>*</em><?php echo $this->__('Order Number') ?></label>
38
+ <div class="input-box">
39
+ <input type="text" id="order" name="order" value="<?php echo $this->escapeHtml($_request->getParam('order')) ?>" title="<?php echo $this->__('Order Number') ?>" maxlength="255" class="input-text required-entry">
40
+ </div>
41
+ </div>
42
+ <div class="field name-lastname">
43
+ <label for="lastname" class="required"><em>*</em><?php echo $this->__('Phone number or email address') ?></label>
44
+ <div class="input-box">
45
+ <input type="text" id="info" name="info" value="<?php echo $this->escapeHtml($_request->getParam('info')) ?>" title="<?php echo $this->__('Phone number or email address') ?>" maxlength="255" class="input-text required-entry">
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </li>
50
+ </ul>
51
+ <br/>
52
+ </div>
53
+ <div class="buttons-set">
54
+ <?php /* <p class="back-link"><a href="http://dev2.plumserver.com/index.php/customer/account/index/"><small>« </small>Back</a></p> */ ?>
55
+ <button type="submit" title="<?php echo $this->__('Track') ?>" class="button"><span><span><?php echo $this->__('Track') ?></span></span></button>
56
+ </div>
57
+ </form>
app/design/frontend/base/default/template/shippingtracking/popup.phtml ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /** @var $this Mage_Shipping_Block_Tracking_Popup */ ?>
28
+ <?php $_results = $this->getTrackingInfo(); ?>
29
+ <div class="page-title title-buttons">
30
+ <h1><?php echo $this->__('Tracking Information'); ?></h1>
31
+ <button class="button" onclick="window.close(); window.opener.focus();"><span><span><?php echo $this->__('Close Window') ?></span></span></button>
32
+ </div>
33
+ <?php if(sizeof($_results)>0): ?>
34
+ <?php foreach($_results as $shipid => $_result): ?>
35
+ <?php if($shipid): ?>
36
+ <h2 class="sub-title"><?php echo $this->__('Shipment #').$shipid; ?></h2>
37
+ <?php endif; ?>
38
+ <?php if(sizeof($_result)>0): ?>
39
+ <?php $rowCount = sizeof($_result); $counter = 1; ?>
40
+ <?php $_id = 0; foreach($_result as $track): ?>
41
+ <table class="tracking-table-popup data-table" id="tracking-table-popup-<?php echo $_id ?>">
42
+ <col width="15%" />
43
+ <col />
44
+ <tbody>
45
+ <?php if(is_object($track)): ?>
46
+ <tr>
47
+ <th class="label"><?php echo $this->__('Tracking Number:'); ?></th>
48
+ <td class="value"><?php echo $this->escapeHtml($track->getTracking()); ?></td>
49
+ </tr>
50
+ <?php if ($track->getCarrierTitle()): ?>
51
+ <tr>
52
+ <th class="label"><?php echo $this->__('Carrier:'); ?></th>
53
+ <td class="value"><?php echo $this->escapeHtml($track->getCarrierTitle()); ?></td>
54
+ </tr>
55
+ <?php endif; ?>
56
+ <?php if($track->getErrorMessage()): ?>
57
+ <tr>
58
+ <th class="label"><?php echo $this->__('Error:'); ?></th>
59
+ <td class="error"><?php echo $this->__('Tracking information is currently not available. Please '); if ($this->getContactUsEnabled()) : ?><a href="<?php echo $this->getContactUs() ?>" title="<?php echo $this->__('contact us') ?>" onclick="this.target='_blank'"><?php echo $this->__('contact us') ?></a><?php echo $this->__(' for more information or '); endif; echo $this->__('email us at '); ?><a href="mailto:<?php echo $this->getStoreSupportEmail() ?>"><?php echo $this->getStoreSupportEmail() ?></a></td>
60
+ </tr>
61
+ <?php elseif($track->getTrackSummary()): ?>
62
+ <tr>
63
+ <th class="label"><?php echo $this->__('Info:'); ?></th>
64
+ <td class="value"><?php echo $track->getTrackSummary(); ?></td>
65
+ </tr>
66
+ <?php elseif($track->getUrl()): ?>
67
+ <tr>
68
+ <th class="label"><?php echo $this->__('Track:'); ?></th>
69
+ <td class="value">
70
+ <a href="<?php echo $this->escapeHtml($track->getUrl()); ?>" onclick="this.target='_blank'"><?php echo $this->__('View Details'); ?></a></td>
71
+ </tr>
72
+ <?php else: ?>
73
+ <?php if ($track->getStatus()): ?>
74
+ <tr>
75
+ <th class="label"><?php echo $this->__('Status:'); ?></th>
76
+ <td class="value"><?php echo $track->getStatus(); ?></td>
77
+ </tr>
78
+ <?php endif; ?>
79
+
80
+ <?php if ($track->getDeliverydate()): ?>
81
+ <tr>
82
+ <th class="label"><?php echo $this->__('Delivered on:'); ?></th>
83
+ <td class="value"><?php echo $this->formatDeliveryDateTime($track->getDeliverydate(),$track->getDeliverytime()); ?></td>
84
+ </tr>
85
+ <?php endif; ?>
86
+
87
+ <?php if ($track->getSignedby()): ?>
88
+ <tr>
89
+ <th class="label"><?php echo $this->__('Signed by:'); ?></th>
90
+ <td class="value"><?php echo $track->getSignedby(); ?></td>
91
+ </tr>
92
+ <?php endif; ?>
93
+
94
+ <?php if ($track->getDeliveryLocation()): ?>
95
+ <tr>
96
+ <th class="label"><?php echo $this->__('Delivered to:'); ?></th>
97
+ <td class="value"><?php echo $track->getDeliveryLocation(); ?></td>
98
+ </tr>
99
+ <?php endif; ?>
100
+
101
+ <?php if ($track->getShippedDate()): ?>
102
+ <tr>
103
+ <th class="label"><?php echo $this->__('Shipped or billed on:'); ?></th>
104
+ <td class="value"><?php echo $track->getShippedDate(); ?></td>
105
+ </tr>
106
+ <?php endif; ?>
107
+
108
+ <?php if ($track->getService()): ?>
109
+ <tr>
110
+ <th class="label"><?php echo $this->__('Service Type:'); ?></th>
111
+ <td class="value"><?php echo $track->getService(); ?></td>
112
+ </tr>
113
+ <?php endif; ?>
114
+
115
+ <?php if ($track->getWeight()): ?>
116
+ <tr>
117
+ <th class="label"><?php echo $this->__('Weight:'); ?></th>
118
+ <td class="value"><?php echo $track->getWeight(); ?></td>
119
+ </tr>
120
+ <?php endif; ?>
121
+ <?php endif; ?>
122
+ <?php elseif(isset($track['title']) && isset($track['number']) && $track['number']): ?>
123
+ <!--if the tracking is custom value-->
124
+ <tr>
125
+ <th class="label"><?php echo ($track['title'] ? $this->escapeHtml($track['title']) : $this->__('N/A')); ?>:</th>
126
+ <td class="value"><?php echo (isset($track['number']) ? $this->escapeHtml($track['number']) : ''); ?></td>
127
+ </tr>
128
+ <?php endif; ?>
129
+ </tbody>
130
+ </table>
131
+ <script type="text/javascript">decorateTable('tracking-table-popup-<?php echo $_id++ ?>');</script>
132
+ <?php if (is_object($track) && sizeof($track->getProgressdetail())>0): ?>
133
+ <br />
134
+ <table class="data-table" id="track-history-table-<?php echo $track->getTracking(); ?>">
135
+ <col />
136
+ <col width="1" />
137
+ <col width="1" />
138
+ <col />
139
+ <thead>
140
+ <tr>
141
+ <th><?php echo $this->__('Location') ?></th>
142
+ <th><?php echo $this->__('Date') ?></th>
143
+ <th><?php echo $this->__('Local Time') ?></th>
144
+ <th><?php echo $this->__('Description') ?></th>
145
+ </tr>
146
+ </thead>
147
+ <tbody>
148
+ <?php foreach($track->getProgressdetail() as $_detail): ?>
149
+ <?php $_detailDate = (isset($_detail['deliverydate']) ? $this->formatDeliveryDate($_detail['deliverydate']) : '') ?>
150
+ <?php $_detailTime = (isset($_detail['deliverytime']) ? $this->formatDeliveryTime($_detail['deliverytime'], $_detail['deliverydate']) : '') ?>
151
+ <tr>
152
+ <td><?php echo (isset($_detail['deliverylocation']) ? $_detail['deliverylocation'] : ''); ?></td>
153
+ <td><span class="nobr"><?php echo $_detailDate ?></span></td>
154
+ <td><span class="nobr"><?php echo $_detailTime ?></span></td>
155
+ <td><?php echo (isset($_detail['activity']) ? $_detail['activity'] : '') ?></td>
156
+ </tr>
157
+ <?php endforeach; ?>
158
+ </tbody>
159
+ </table>
160
+ <script type="text/javascript">decorateTable('track-history-table-<?php echo $track->getTracking(); ?>');</script>
161
+ <?php endif; ?>
162
+ <div class="divider"></div>
163
+ <?php if($counter!=$rowCount): ?>
164
+ <?php endif; ?>
165
+ <?php $counter++; ?>
166
+ <!--end for each tracking information-->
167
+ <?php endforeach; ?>
168
+ <?php else: ?>
169
+ <p><?php echo $this->__('There is no tracking available for this shipment.'); ?></p>
170
+ <?php endif; ?>
171
+
172
+ <?php endforeach; ?>
173
+ <?php else: ?>
174
+ <p><?php echo $this->__('There is no tracking available.'); ?></p>
175
+ <?php endif; ?>
176
+ <div class="buttons-set">
177
+ <button type="button" title="<?php echo $this->__('Close Window') ?>" class="button" onclick="window.close(); window.opener.focus();"><span><span><?php echo $this->__('Close Window') ?></span></span></button>
178
+ </div>
app/etc/modules/Plumrocket_ShippingTracking.xml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Plumrocket Inc.
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the End-user License Agreement
9
+ * that is available through the world-wide-web at this URL:
10
+ * http://wiki.plumrocket.net/wiki/EULA
11
+ * If you are unable to obtain it through the world-wide-web, please
12
+ * send an email to support@plumrocket.com so we can send you a copy immediately.
13
+ *
14
+ * @package Plumrocket_Shipping_Tracking
15
+ * @copyright Copyright (c) 2014 Plumrocket Inc. (http://www.plumrocket.com)
16
+ * @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
17
+ */
18
+ -->
19
+ <config>
20
+ <modules>
21
+ <Plumrocket_ShippingTracking>
22
+ <active>true</active>
23
+ <codePool>community</codePool>
24
+ <version>1.0.0</version>
25
+ <name>Plumrocket Order Status &amp; Shipping Tracking</name>
26
+ <depends>
27
+ <Plumrocket_Base />
28
+ </depends>
29
+ </Plumrocket_ShippingTracking>
30
+ </modules>
31
+ </config>
app/locale/en_US/Plumrocket_Order_Status_and_Shipping_Tracking.csv ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Order Status &amp; Shipping Tracking", "Order Status &amp; Shipping Tracking"
2
+ "Check Order Status","Check Order Status"
3
+ "Tracking Information","Tracking Information"
4
+ "Make sure that you have entered the Order Number and phone number (or email address).","Make sure that you have entered the Order Number and phone number (or email address)."
5
+ "Shipping tracking data not found.","Shipping tracking data not found."
6
+ "Data combination is not valid. Please check order number and phone number (or email address).","Data combination is not valid. Please check order number and phone number (or email address)."
7
+ "UPS Tracking Number","UPS Tracking Number"
8
+ "FedEx Tracking Number","FedEx Tracking Number"
9
+ "USPS Tracking Number","USPS Tracking Number"
10
+ "'Please enter the order number and phone number (or email address) from your customer agreement for shipping tracking.","'Please enter the order number and phone number (or email address) from your customer agreement for shipping tracking."
11
+ "Order Number","Order Number"
12
+ "Phone number or email address","Phone number or email address"
13
+ "Track","Track"
14
+ "FedEx Tracking Number %s","FedEx Tracking Number %s"
15
+ "m/d/Y","m/d/Y"
16
+ "g:i a","g:i a"
17
+ "Tracking information is not available at this time. Please check back later or double-check the tracking number entered and try again.","Tracking information is not available at this time. Please check back later or double-check the tracking number entered and try again."
18
+ "Location","Location"
19
+ "Date","Date"
20
+ "Time","Time"
21
+ "Status","Status"
22
+ "USPS Tracking Number %s","USPS Tracking Number %s"
23
+ "General Information","General Information"
24
+ "Guaranteed Delivery Date","Guaranteed Delivery Date"
25
+ "Shipment Progress","Shipment Progress"
26
+ "UPS Tracking Number %s","UPS Tracking Number %s"
27
+ "Signed For","Signed For"
28
+ "Additional Information","Additional Information"
29
+ "Shipped/Billed On:","Shipped/Billed On:"
30
+ "Type:","Type:"
31
+ "Package","Package"
package.xml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Plumrocket_Order_Status_and_Shipping_Tracking</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://wiki.plumrocket.net/wiki/EULA">End-user License Agreement</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Magento UPS integration, Magento FedEx and Magento USPS tracking allows to display UPS, FedEx, USPS tracking information right from your magento store.</summary>
10
+ <description>Order Status and UPS, FedEx, USPS Tracking is a free open source magento order tracking extension from Plumrocket. With this plugin your customers will be able to get full shipment tracking information and trace their order at every stage of shipment and delivery process.</description>
11
+ <notes>Magento UPS integration, Magento FedEx and Magento USPS tracking allows to display UPS, FedEx, USPS tracking information right from your magento store&#xD;
12
+ &#xD;
13
+ Admin can enter UPS, USPS and FedEx tracking codes while marking magento order as shipped. These tracking codes will be automatically picked up by this free magento order tracking extension&#xD;
14
+ &#xD;
15
+ 100% open source magento extension</notes>
16
+ <authors><author><name>Plumrocket Team</name><user>plumrocket</user><email>support@plumrocket.com</email></author></authors>
17
+ <date>2014-07-31</date>
18
+ <time>13:10:39</time>
19
+ <contents><target name="magecommunity"><dir name="Plumrocket"><dir name="ShippingTracking"><dir name="Block"><file name="Abstract.php" hash="1635152e554caa918fbb0144b6f9d225"/><file name="Fedex.php" hash="615c00bc91d477b3950c55ef678c544e"/><dir name="Shipping"><dir name="Tracking"><file name="Popup.php" hash="dbff310a33bbfcaf383bb07949214d82"/></dir></dir><dir name="System"><dir name="Config"><file name="Version.php" hash="e037e71e13a61e69c96be25d71350fc3"/></dir></dir><file name="Ups.php" hash="38fa1ddca61ec5cf312a8cd8379ced60"/><file name="Usps.php" hash="773c04c5a1e4de604bede10af8a301df"/></dir><dir name="Helper"><file name="Data.php" hash="4026cc0c2ad4f655891e38d277bd8b32"/></dir><dir name="controllers"><file name="IndexController.php" hash="279da8ee00305e8431ca81d481660541"/></dir><dir name="etc"><file name="config.xml" hash="e870bd2f6d2509809670f5284c832830"/><file name="system.xml" hash="da479bacb64778d27b8cdd739f28d281"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Plumrocket_ShippingTracking.xml" hash="32975534b8d336b9111b47c21f5b5f16"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="shippingtracking"><dir name="info"><file name="fedex.phtml" hash="f7fb679136fba5e550aed2ac1a305885"/><file name="form.phtml" hash="24388d5d83b6e7ef7bc4091649e82c9b"/><file name="ups.phtml" hash="ff73e84256d5ead0f5b86d9521d85e58"/><file name="usps.phtml" hash="ba96649891b943fc2951fbbf591f298c"/></dir><file name="info.phtml" hash="59cec0c15c782f708c33f46277928303"/><file name="main.phtml" hash="bf30f2e3895d9e527532195bd746dd76"/><file name="popup.phtml" hash="93fc32134a7697e21fd9ebff4438ffa4"/></dir></dir><dir name="layout"><file name="shippingtracking.xml" hash="98a7dffa36cab9d54f3bc03754db3410"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Plumrocket_Order_Status_and_Shipping_Tracking.csv" hash="efd95c78ef4738816ba08e2ced311493"/></dir></target></contents>
20
+ <compatible/>
21
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Plumrocket_Base</name><channel>community</channel><min></min><max></max></package></required></dependencies>
22
+ </package>