aftership - Version 0.3.0

Version Notes

Support AfterShip v3

Download this release

Release Info

Developer aftership
Extension aftership
Version 0.3.0
Comparing to
See all releases


Code changes from version 0.2.9 to 0.3.0

app/code/community/Aftership/Track/Model/Observer.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  class Aftership_Track_Model_Observer
4
  {
5
- const ENDPOINT_TRACKING = 'https://api.aftership.com/v1/trackings';
6
- const ENDPOINT_CONFIG = 'https://api.aftership.com/v1/users/authenticate';
7
 
8
 
9
- public function salesOrderShipmentTrackSaveAfter(Varien_Event_Observer $observer)
10
- {
11
- ob_start();
12
 
13
  $track = $observer->getEvent()->getTrack();
14
  $track_data = $track->getData();
@@ -17,60 +17,57 @@ class Aftership_Track_Model_Observer
17
  $website_id = Mage::getModel('core/store')->load($order_data['store_id'])->getWebsiteId();
18
 
19
  //$config = Mage::getStoreConfig('aftership_options/messages');
20
- $config = Mage::app()->getWebsite($website_id)->getConfig('aftership_options/messages');
21
 
22
- $shipping_address_data = $track->getShipment()->getOrder()->getShippingAddress()->getData();
23
- if (strlen(trim($track_data["track_number"])) > 0) {
24
- //1.6.2.0 or later
25
- $track_no = trim($track_data["track_number"]);
26
- } else {
27
- //1.5.1.0
28
- $track_no = trim($track_data["number"]);
29
- }
30
 
31
  $order_id = '';
32
 
33
- if (isset($order_data["order_id"]))
34
- {
35
  $order_id = $order_data["order_id"];
36
- }
37
- else if (isset($order_data["increment_id"]))
38
- {
39
  $order_id = $order_data["increment_id"];
40
  }
41
 
42
- $exist_track_data = Mage::getModel('track/track')
43
- ->getCollection()
44
- ->addFieldToFilter('tracking_number', array('eq' => $track_no))
45
- ->addFieldToFilter('order_id', array('eq' => $order_id))
46
- ->getData();
47
 
48
- if (!$exist_track_data) {
49
- $track = Mage::getModel('track/track');
50
 
51
- $track->setTrackingNumber($track_no);
52
 
53
- $track->setShipCompCode($track_data["carrier_code"]);
54
- $track->setTitle($order_data["increment_id"]);
55
 
56
- $track->setOrderId($order_data["increment_id"]);
57
 
58
- if ($order_data["customer_email"] && $order_data["customer_email"] != "") {
59
- $track->setEmail($order_data["customer_email"]);
60
- }
61
 
62
- if ($shipping_address_data["telephone"] && $shipping_address_data["telephone"] != "") {
63
- $track->setTelephone($shipping_address_data["telephone"]);
64
- }
65
 
66
- if (array_key_exists("status", $config) && $config["status"]) {
67
- $track->setPosted(0);
68
- } else {
69
- $track->setPosted(2);
70
- }
71
 
72
- $track->save();
73
- }
74
 
75
  /*
76
 
@@ -89,39 +86,41 @@ class Aftership_Track_Model_Observer
89
 
90
  */
91
 
92
- if (array_key_exists("status", $config) && $config["status"])
93
- {
94
- $api_key = $config["api_key"];
95
 
96
- $post_tracks = Mage::getModel('track/track')
97
- ->getCollection()
98
- ->addFieldToFilter('posted', array('eq' => 0))
99
- ->getData();
100
 
101
- $url_params = array("api_key" => $api_key);
102
 
103
- foreach ($post_tracks as $track) {
104
 
105
  $url = self::ENDPOINT_TRACKING;
106
- $url_params["tracking_number"] = $track["tracking_number"];
107
- $url_params["smses[]"] = $track["telephone"];
108
- $url_params["emails[]"] = $track["email"];
109
- $url_params["title"] = $track["title"];
110
- $url_params["order_id"] = $track["order_id"];
111
- $url_params["customer_name"] = $shipping_address_data["firstname"]." ".$shipping_address_data['lastname'];
112
- $url_params["source"] = "magento";
 
113
 
 
114
 
115
  $ch = curl_init();
116
- curl_setopt($ch, CURLOPT_URL, $url);
117
- curl_setopt($ch, CURLOPT_POST, true);
118
- curl_setopt($ch, CURLOPT_POSTFIELDS, $url_params);
119
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
120
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
121
- curl_setopt($ch, CURLOPT_HEADER, 0);
122
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
123
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //the SSL is not correct
124
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //the SSL is not correct
 
125
 
126
  $response = curl_exec($ch);
127
 
@@ -145,21 +144,20 @@ class Aftership_Track_Model_Observer
145
  $track_obj->save();*/
146
 
147
  }
148
- }
149
 
150
- ob_end_clean();
151
- }
152
 
153
- public function adminSystemConfigChangedSectionAftership(Varien_Event_Observer $observer)
154
- {
155
  $post_data = Mage::app()->getRequest()->getPost();
156
 
157
  //$website = Mage::app()->getRequest()->getParam('website');
158
  //$scope = "websites";
159
  //$score_id = (int)Mage::getConfig()->getNode('websites/'.$website.'/system/website/id');
160
 
161
- if (!isset($post_data["groups"]["messages"]["fields"]["api_key"]['inherit']) || $post_data["groups"]["messages"]["fields"]["api_key"]['inherit'] != 1)
162
- {
163
  $api_key = $post_data["groups"]["messages"]["fields"]["api_key"]["value"];
164
 
165
  $url_params = array(
@@ -206,7 +204,7 @@ class Aftership_Track_Model_Observer
206
  }
207
  }
208
  }
209
- }
210
 
211
  /*
212
  *
@@ -227,19 +225,17 @@ class Aftership_Track_Model_Observer
227
 
228
  if (!$exist_track_data) {
229
  $track = Mage::getModel('track/track')
230
- ->setTrackingNumber($tracking_number)
231
- ->setShipCompCode($carrier_code)
232
- ->setTitle($title)
233
- ->setOrderId($order_id)
234
- ->setEmail($email)
235
- ->setTelephone($telephone)
236
- ->setPosted(0)
237
- ->save();
238
 
239
  $track_id = $track->getTrackId();
240
- }
241
- else
242
- {
243
  $track = $exist_track_data[0];
244
  $track_id = $track['track_id'];
245
  }
@@ -249,14 +245,14 @@ class Aftership_Track_Model_Observer
249
 
250
  $url_params = array();
251
 
252
- $url_params["api_key"] = (string)$api_key;
253
- $url_params["tracking_number"] = $tracking_number;
254
- $url_params["smses[]"] = $telephone;
255
- $url_params["emails[]"] = $email;
256
- $url_params["title"] = $title;
257
- $url_params["order_id"] = $order_id;
258
- $url_params["customer_name"] = $customer_name;
259
- $url_params["source"] = "magento";
260
 
261
  $ch = curl_init();
262
  curl_setopt($ch, CURLOPT_URL, $url);
@@ -269,9 +265,9 @@ class Aftership_Track_Model_Observer
269
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //the SSL is not correct
270
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //the SSL is not correct
271
 
272
- $response = curl_exec($ch);
273
- $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
274
- $error = curl_error($ch);
275
  curl_close($ch);
276
 
277
  $response_obj = json_decode($response, true);
@@ -288,16 +284,17 @@ class Aftership_Track_Model_Observer
288
  }
289
  }
290
 
291
- public function cron() {
 
292
 
293
  set_time_limit(0);
294
 
295
- $global_config = Mage::getStoreConfig('aftership_options/messages');
296
 
297
  $last_update = $global_config['last_update'];
298
 
299
  //load website config
300
- $website_config = array();
301
  foreach (Mage::app()->getWebsites() as $website) {
302
  $website_id = $website->getId();
303
  $config = Mage::app()->getWebsite($website_id)->getConfig('aftership_options/messages');
@@ -306,33 +303,29 @@ class Aftership_Track_Model_Observer
306
 
307
  //ob_start();
308
 
309
- $from = '';
310
- $to = '';
311
 
312
  $debug_range = 1;
313
 
314
- if ($last_update == '0' || !$last_update)
315
- {
316
- $from = gmdate('Y-m-d H:i:s', time() - 3*60*60 * $debug_range); //past 3 hours
317
- $to = gmdate('Y-m-d H:i:s');
318
- }
319
- else
320
- {
321
- $from = gmdate('Y-m-d H:i:s', $last_update);
322
- $to = gmdate('Y-m-d H:i:s');
323
  }
324
 
325
  //echo "from: ".$from.", to: ".$to."\n";
326
 
327
  $track_collection = Mage::getResourceModel('sales/order_shipment_track_collection')
328
  ->addAttributeToFilter('created_at', array(
329
- 'from' => $from,
330
- 'to' => $to,
331
  ))
332
  ->addAttributeToSort('created_at', 'asc');
333
 
334
- foreach ($track_collection as $track)
335
- {
336
  //echo "order id: ".$track->getOrderId().", tracking number: ".$track->getTrackNumber().", created at: ".$track->getCreatedAt()."\n";
337
 
338
  $order_shipment = $track->getShipment();
@@ -340,27 +333,28 @@ class Aftership_Track_Model_Observer
340
  $store_id = $order_shipment->getStoreId();
341
 
342
  if (isset($website_config[$store_id]['status']) && $website_config[$store_id]['status'] == 1 &&
343
- isset($website_config[$store_id]['cron_job_enable']) && $website_config[$store_id]['cron_job_enable'] == 1) //if website enabled
 
344
  {
345
  //check with existing as_track table and see if sent
346
  $post_tracks = Mage::getModel('track/track')
347
  ->getCollection()
348
- ->addFieldToFilter('posted', array('eq' => 1))
349
- ->addFieldToFilter('tracking_number', array('eq' => $track->getTrackNumber()))
350
  ->getData();
351
 
352
  if (count($post_tracks) == 0) //if not sent
353
  {
354
- $order = $order_shipment->getOrder();
355
- $shipping_address = $order->getShippingAddress();
356
 
357
- $api_key = $website_config[$store_id]['api_key'];
358
- $telephone = $shipping_address->getTelephone();
359
- $carrier_code = $track->getCarrierCode();
360
- $email = $order->getCustomerEmail();
361
- $title = $order->getIncrementId();
362
- $order_id = $order->getIncrementId();
363
- $customer_name = $shipping_address->getFirstname()." ".$shipping_address->getLastname();
364
 
365
  $this->sendTracking($api_key, $track->getTrackNumber(), $carrier_code, $telephone, $email, $title, $order_id, $customer_name);
366
  }
@@ -374,8 +368,8 @@ class Aftership_Track_Model_Observer
374
 
375
  foreach (Mage::app()->getWebsites() as $website) {
376
  $website_id = $website->getId();
377
- $scope = "websites";
378
- $scope_id = (int)Mage::getConfig()->getNode('websites/'.Mage::app()->getWebsite($website_id)->getCode().'/system/website/id');
379
 
380
  Mage::getModel('core/config_data')
381
  ->setScope($scope)
2
 
3
  class Aftership_Track_Model_Observer
4
  {
5
+ const ENDPOINT_TRACKING = 'https://api.aftership.com/v1/trackings';
6
+ const ENDPOINT_CONFIG = 'https://api.aftership.com/v1/users/authenticate';
7
 
8
 
9
+ public function salesOrderShipmentTrackSaveAfter(Varien_Event_Observer $observer)
10
+ {
11
+ ob_start();
12
 
13
  $track = $observer->getEvent()->getTrack();
14
  $track_data = $track->getData();
17
  $website_id = Mage::getModel('core/store')->load($order_data['store_id'])->getWebsiteId();
18
 
19
  //$config = Mage::getStoreConfig('aftership_options/messages');
20
+ $config = Mage::app()->getWebsite($website_id)->getConfig('aftership_options/messages');
21
 
22
+ $shipping_address_data = $track->getShipment()->getOrder()->getShippingAddress()->getData();
23
+ if (strlen(trim($track_data["track_number"])) > 0) {
24
+ //1.6.2.0 or later
25
+ $track_no = trim($track_data["track_number"]);
26
+ } else {
27
+ //1.5.1.0
28
+ $track_no = trim($track_data["number"]);
29
+ }
30
 
31
  $order_id = '';
32
 
33
+ if (isset($order_data["order_id"])) {
 
34
  $order_id = $order_data["order_id"];
35
+ } else if (isset($order_data["increment_id"])) {
 
 
36
  $order_id = $order_data["increment_id"];
37
  }
38
 
39
+ $exist_track_data = Mage::getModel('track/track')
40
+ ->getCollection()
41
+ ->addFieldToFilter('tracking_number', array('eq' => $track_no))
42
+ ->addFieldToFilter('order_id', array('eq' => $order_id))
43
+ ->getData();
44
 
45
+ if (!$exist_track_data) {
46
+ $track = Mage::getModel('track/track');
47
 
48
+ $track->setTrackingNumber($track_no);
49
 
50
+ $track->setShipCompCode($track_data["carrier_code"]);
51
+ $track->setTitle($order_data["increment_id"]);
52
 
53
+ $track->setOrderId($order_data["increment_id"]);
54
 
55
+ if ($order_data["customer_email"] && $order_data["customer_email"] != "") {
56
+ $track->setEmail($order_data["customer_email"]);
57
+ }
58
 
59
+ if ($shipping_address_data["telephone"] && $shipping_address_data["telephone"] != "") {
60
+ $track->setTelephone($shipping_address_data["telephone"]);
61
+ }
62
 
63
+ if (array_key_exists("status", $config) && $config["status"]) {
64
+ $track->setPosted(0);
65
+ } else {
66
+ $track->setPosted(2);
67
+ }
68
 
69
+ $track->save();
70
+ }
71
 
72
  /*
73
 
86
 
87
  */
88
 
89
+ if (array_key_exists("status", $config) && $config["status"]) {
90
+ $api_key = $config["api_key"];
 
91
 
92
+ $post_tracks = Mage::getModel('track/track')
93
+ ->getCollection()
94
+ ->addFieldToFilter('posted', array('eq' => 0))
95
+ ->getData();
96
 
97
+ $url_params = array("api_key" => $api_key . "");
98
 
99
+ foreach ($post_tracks as $track) {
100
 
101
  $url = self::ENDPOINT_TRACKING;
102
+ $url_params["tracking_number"] = $track["tracking_number"];
103
+ $url_params["smses[]"] = $track["telephone"];
104
+ $url_params["emails[]"] = $track["email"];
105
+ $url_params["title"] = $track["title"];
106
+ $url_params["order_id"] = $track["order_id"];
107
+ $url_params["customer_name"] = $shipping_address_data["firstname"] . " " . $shipping_address_data['lastname'];
108
+ $url_params["source"] = "magento";
109
+
110
 
111
+ $url_params = http_build_query($url_params);
112
 
113
  $ch = curl_init();
114
+ curl_setopt($ch, CURLOPT_URL, $url);
115
+ curl_setopt($ch, CURLOPT_POST, true);
116
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $url_params);
117
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
118
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
119
+ //curl_setopt($ch, CURLOPT_HEADER, 0);
120
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
121
+ //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //the SSL is not correct
122
+ //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //the SSL is not correct
123
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($url_params)));
124
 
125
  $response = curl_exec($ch);
126
 
144
  $track_obj->save();*/
145
 
146
  }
147
+ }
148
 
149
+ ob_end_clean();
150
+ }
151
 
152
+ public function adminSystemConfigChangedSectionAftership(Varien_Event_Observer $observer)
153
+ {
154
  $post_data = Mage::app()->getRequest()->getPost();
155
 
156
  //$website = Mage::app()->getRequest()->getParam('website');
157
  //$scope = "websites";
158
  //$score_id = (int)Mage::getConfig()->getNode('websites/'.$website.'/system/website/id');
159
 
160
+ if (!isset($post_data["groups"]["messages"]["fields"]["api_key"]['inherit']) || $post_data["groups"]["messages"]["fields"]["api_key"]['inherit'] != 1) {
 
161
  $api_key = $post_data["groups"]["messages"]["fields"]["api_key"]["value"];
162
 
163
  $url_params = array(
204
  }
205
  }
206
  }
207
+ }
208
 
209
  /*
210
  *
225
 
226
  if (!$exist_track_data) {
227
  $track = Mage::getModel('track/track')
228
+ ->setTrackingNumber($tracking_number)
229
+ ->setShipCompCode($carrier_code)
230
+ ->setTitle($title)
231
+ ->setOrderId($order_id)
232
+ ->setEmail($email)
233
+ ->setTelephone($telephone)
234
+ ->setPosted(0)
235
+ ->save();
236
 
237
  $track_id = $track->getTrackId();
238
+ } else {
 
 
239
  $track = $exist_track_data[0];
240
  $track_id = $track['track_id'];
241
  }
245
 
246
  $url_params = array();
247
 
248
+ $url_params["api_key"] = (string)$api_key;
249
+ $url_params["tracking_number"] = $tracking_number;
250
+ $url_params["smses[]"] = $telephone;
251
+ $url_params["emails[]"] = $email;
252
+ $url_params["title"] = $title;
253
+ $url_params["order_id"] = $order_id;
254
+ $url_params["customer_name"] = $customer_name;
255
+ $url_params["source"] = "magento";
256
 
257
  $ch = curl_init();
258
  curl_setopt($ch, CURLOPT_URL, $url);
265
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //the SSL is not correct
266
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //the SSL is not correct
267
 
268
+ $response = curl_exec($ch);
269
+ $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
270
+ $error = curl_error($ch);
271
  curl_close($ch);
272
 
273
  $response_obj = json_decode($response, true);
284
  }
285
  }
286
 
287
+ public function cron()
288
+ {
289
 
290
  set_time_limit(0);
291
 
292
+ $global_config = Mage::getStoreConfig('aftership_options/messages');
293
 
294
  $last_update = $global_config['last_update'];
295
 
296
  //load website config
297
+ $website_config = array();
298
  foreach (Mage::app()->getWebsites() as $website) {
299
  $website_id = $website->getId();
300
  $config = Mage::app()->getWebsite($website_id)->getConfig('aftership_options/messages');
303
 
304
  //ob_start();
305
 
306
+ $from = '';
307
+ $to = '';
308
 
309
  $debug_range = 1;
310
 
311
+ if ($last_update == '0' || !$last_update) {
312
+ $from = gmdate('Y-m-d H:i:s', time() - 3 * 60 * 60 * $debug_range); //past 3 hours
313
+ $to = gmdate('Y-m-d H:i:s');
314
+ } else {
315
+ $from = gmdate('Y-m-d H:i:s', $last_update);
316
+ $to = gmdate('Y-m-d H:i:s');
 
 
 
317
  }
318
 
319
  //echo "from: ".$from.", to: ".$to."\n";
320
 
321
  $track_collection = Mage::getResourceModel('sales/order_shipment_track_collection')
322
  ->addAttributeToFilter('created_at', array(
323
+ 'from' => $from,
324
+ 'to' => $to,
325
  ))
326
  ->addAttributeToSort('created_at', 'asc');
327
 
328
+ foreach ($track_collection as $track) {
 
329
  //echo "order id: ".$track->getOrderId().", tracking number: ".$track->getTrackNumber().", created at: ".$track->getCreatedAt()."\n";
330
 
331
  $order_shipment = $track->getShipment();
333
  $store_id = $order_shipment->getStoreId();
334
 
335
  if (isset($website_config[$store_id]['status']) && $website_config[$store_id]['status'] == 1 &&
336
+ isset($website_config[$store_id]['cron_job_enable']) && $website_config[$store_id]['cron_job_enable'] == 1
337
+ ) //if website enabled
338
  {
339
  //check with existing as_track table and see if sent
340
  $post_tracks = Mage::getModel('track/track')
341
  ->getCollection()
342
+ ->addFieldToFilter('posted', array('eq' => 1))
343
+ ->addFieldToFilter('tracking_number', array('eq' => $track->getTrackNumber()))
344
  ->getData();
345
 
346
  if (count($post_tracks) == 0) //if not sent
347
  {
348
+ $order = $order_shipment->getOrder();
349
+ $shipping_address = $order->getShippingAddress();
350
 
351
+ $api_key = $website_config[$store_id]['api_key'];
352
+ $telephone = $shipping_address->getTelephone();
353
+ $carrier_code = $track->getCarrierCode();
354
+ $email = $order->getCustomerEmail();
355
+ $title = $order->getIncrementId();
356
+ $order_id = $order->getIncrementId();
357
+ $customer_name = $shipping_address->getFirstname() . " " . $shipping_address->getLastname();
358
 
359
  $this->sendTracking($api_key, $track->getTrackNumber(), $carrier_code, $telephone, $email, $title, $order_id, $customer_name);
360
  }
368
 
369
  foreach (Mage::app()->getWebsites() as $website) {
370
  $website_id = $website->getId();
371
+ $scope = "websites";
372
+ $scope_id = (int)Mage::getConfig()->getNode('websites/' . Mage::app()->getWebsite($website_id)->getCode() . '/system/website/id');
373
 
374
  Mage::getModel('core/config_data')
375
  ->setScope($scope)
app/code/community/Aftership/Track/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Aftership_Track>
5
- <version>0.2.9</version>
6
  </Aftership_Track>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <Aftership_Track>
5
+ <version>0.3.0</version>
6
  </Aftership_Track>
7
  </modules>
8
 
app/code/community/Aftership/Track/etc/system.xml CHANGED
@@ -31,7 +31,7 @@
31
  <show_in_default>1</show_in_default>
32
  <show_in_website>1</show_in_website>
33
  <show_in_store>0</show_in_store>
34
- <comment>You can find your API key in <![CDATA[<a target='_blank' href="https://www.aftership.com/connect/magento">https://www.aftership.com/connect/magento</a>]]></comment>
35
  </api_key>
36
  <status>
37
  <label>Status</label>
31
  <show_in_default>1</show_in_default>
32
  <show_in_website>1</show_in_website>
33
  <show_in_store>0</show_in_store>
34
+ <comment>You can find your API key in <![CDATA[<a target='_blank' href="https://www.aftership.com/apps/magento-v1">https://www.aftership.com/apps/magento-v1</a>]]></comment>
35
  </api_key>
36
  <status>
37
  <label>Status</label>
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>aftership</name>
4
- <version>0.2.9</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>AfterShip magento extension interface. Tracking number will be added to the aftership.com &lt;https://www.aftership.com/&gt; account at the same time when input in magento shipment. Please go to aftership.com &lt;https://www.aftership.com/&gt; to change the notification setting and value.</summary>
10
  <description>Users can simply link their online stores to Aftership and view all packages in one place. Online stores can also automatically inform their customers of the latest delivery status through SMS, email and Twitter. All the messages are white-labeled and can be customized for any marketing opportunities. Aftership also provides online stores a reporting tool so that they can easily find out any shipping problems like delayed delivery and solve immediately. Aftership currently supports over 40 shipping companies worldwide.</description>
11
- <notes>Added Cron Job</notes>
12
  <authors><author><name>aftership</name><user>aftership</user><email>support@aftership.com</email></author></authors>
13
- <date>2013-03-22</date>
14
- <time>05:03:11</time>
15
- <contents><target name="magecommunity"><dir name="Aftership"><dir name="Track"><dir name="Helper"><file name="Data.php" hash="854baf793cb348f80c94703b585691b9"/></dir><dir name="Model"><file name="FrequencyWords.php" hash="91aad25bcba1c0f8433ab0f297f50614"/><file name="Methods.php" hash="ee6ccd73ab94405e8b0ab4a59990a0fa"/><dir name="Mysql4"><dir name="Track"><file name="Collection.php" hash="b359845af660063396556b37920675ad"/></dir><file name="Track.php" hash="e7799ea4fef0ff7e4217ae0d3a3ed50e"/></dir><file name="Observer.php" hash="0fd42279783d6121e8ace57a8dd24017"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="9a1fee597d5f7219cd3f68f38bb1ed97"/></dir></dir><file name="Track.php" hash="61bae429d01ace637296e11994203fe5"/><file name="Words.php" hash="40d412b8ea57998ae6429219b14709db"/></dir><dir name="controllers"><file name="IndexController.php" hash="7f5c1ae52f625152ca3e9ffe15a93028"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cadc113478c285edf9f43c7506f6ba89"/><file name="config.xml" hash="71ed4bcbd51777bddbcd58a2f8ea1586"/><file name="system.xml" hash="7dd1b39b8d00a0c3775c997bb223d2df"/></dir><dir name="sql"><dir name="track_setup"><file name="mysql4-install-0.2.9.php" hash="7639b6303191813f78441a6d7297e0d1"/><file name="mysql4-upgrade-0.2.8-0.2.9.php" hash="7639b6303191813f78441a6d7297e0d1"/></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Aftership_Track.xml" hash="25367ce0ec0484973a73e5548199dea0"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="aftership"><dir name="css"><file name="style.css" hash="bd5df03e68aa767303eb392df394ce52"/></dir><dir name="images"><file name="logo.png" hash="3e8d8f9d5e1747c18fcd1a810ddc5f2a"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="e8931b980e8ec084f41ef4f99eeef0c3"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="aftership.xml" hash="263c8bb1e2ba9acbf017a2a44fb11439"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
- <dependencies><required><php><min>5.2.13</min><max>5.4.13</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>aftership</name>
4
+ <version>0.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>AfterShip magento extension interface. Tracking number will be added to the aftership.com &lt;https://www.aftership.com/&gt;; account at the same time when input in magento shipment. Please go to aftership.com &lt;https://www.aftership.com/&gt; to change the notification setting and value.</summary>
10
  <description>Users can simply link their online stores to Aftership and view all packages in one place. Online stores can also automatically inform their customers of the latest delivery status through SMS, email and Twitter. All the messages are white-labeled and can be customized for any marketing opportunities. Aftership also provides online stores a reporting tool so that they can easily find out any shipping problems like delayed delivery and solve immediately. Aftership currently supports over 40 shipping companies worldwide.</description>
11
+ <notes>Support AfterShip v3</notes>
12
  <authors><author><name>aftership</name><user>aftership</user><email>support@aftership.com</email></author></authors>
13
+ <date>2013-07-23</date>
14
+ <time>11:05:35</time>
15
+ <contents><target name="magecommunity"><dir name="Aftership"><dir name="Track"><dir name="Helper"><file name="Data.php" hash="854baf793cb348f80c94703b585691b9"/></dir><dir name="Model"><file name="FrequencyWords.php" hash="91aad25bcba1c0f8433ab0f297f50614"/><file name="Methods.php" hash="ee6ccd73ab94405e8b0ab4a59990a0fa"/><dir name="Mysql4"><dir name="Track"><file name="Collection.php" hash="b359845af660063396556b37920675ad"/></dir><file name="Track.php" hash="e7799ea4fef0ff7e4217ae0d3a3ed50e"/></dir><file name="Observer.php" hash="9d7f61b2a8e7b78d593c7e8b242cad19"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="9a1fee597d5f7219cd3f68f38bb1ed97"/></dir></dir><file name="Track.php" hash="61bae429d01ace637296e11994203fe5"/><file name="Words.php" hash="40d412b8ea57998ae6429219b14709db"/></dir><dir name="controllers"><file name="IndexController.php" hash="7f5c1ae52f625152ca3e9ffe15a93028"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cadc113478c285edf9f43c7506f6ba89"/><file name="config.xml" hash="29e1148689e9e73834ae67c3cbf028c6"/><file name="system.xml" hash="d1cb53e60df50f0bf39d5c04745482d9"/></dir><dir name="sql"><dir name="track_setup"><file name="mysql4-install-0.2.9.php" hash="7639b6303191813f78441a6d7297e0d1"/><file name="mysql4-upgrade-0.2.8-0.2.9.php" hash="7639b6303191813f78441a6d7297e0d1"/></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Aftership_Track.xml" hash="25367ce0ec0484973a73e5548199dea0"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="aftership"><dir name="css"><file name="style.css" hash="bd5df03e68aa767303eb392df394ce52"/></dir><dir name="images"><file name="logo.png" hash="3e8d8f9d5e1747c18fcd1a810ddc5f2a"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="e8931b980e8ec084f41ef4f99eeef0c3"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="aftership.xml" hash="263c8bb1e2ba9acbf017a2a44fb11439"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
+ <dependencies><required><php><min>5.2.13</min><max>5.5.1</max></php></required></dependencies>
18
  </package>