Zentio_Zentio - Version 1.0.3

Version Notes

Minor Bug Fixes

Download this release

Release Info

Developer Antonio José Moreno de la Rosa
Extension Zentio_Zentio
Version 1.0.3
Comparing to
See all releases


Code changes from version 1.0.2 to 1.0.3

app/code/community/Zentio/Zentio/Helper/Data.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Zentio_Zentio_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ function loadCustomer($email, $website = null)
6
+ {
7
+ $customer = null;
8
+
9
+ if (Mage::getModel('customer/customer')->getSharingConfig()->isWebsiteScope()) {
10
+ // Customer email address can be used in multiple websites so we need to
11
+ // explicitly scope it
12
+ if ($website) {
13
+ // We've been given a specific website, so try that
14
+ $customer = Mage::getModel('customer/customer')
15
+ ->setWebsiteId($website)
16
+ ->loadByEmail($email);
17
+ } else {
18
+ // No particular website, so load all customers with the given email and then return a single object
19
+ $customers = Mage::getModel('customer/customer')
20
+ ->getCollection()
21
+ ->addFieldToFilter('email', array('eq' => array($email)));
22
+
23
+ if ($customers->getSize()) {
24
+ $id = $customers->getLastItem()->getId();
25
+ $customer = Mage::getModel('customer/customer')->load($id);
26
+ }
27
+ }
28
+
29
+ } else {
30
+ // Customer email is global, so no scoping issues
31
+ $customer = Mage::getModel('customer/customer')->loadByEmail($email);
32
+ }
33
+
34
+ return $customer;
35
+ }
36
+
37
+ function getOrderDetail($order)
38
+ {
39
+ // if the admin site has a custom URL, use it
40
+ $urlModel = Mage::getModel('adminhtml/url')->setStore('admin');
41
+
42
+ $orderInfo = array(
43
+ 'title' => array("label"=>"Last Order Detail", "value"=>$order->getId()),
44
+ 'status' => array("label"=>"Status", "value"=>$order->getStatus()),
45
+ 'created' => array("label"=>"Created", "value"=>$order->getCreatedAt()),
46
+ 'updated' => array("label"=>"Updated", "value"=>$order->getUpdatedAt()),
47
+ 'total' => array("label"=>"Total", "value"=>$order->getGrandTotal() . " " . $order->getOrderCurrencyCode()),
48
+ 'admin_url' => array("label"=>"More", "value"=>$urlModel->getUrl('adminhtml/sales_order/view', array('order_id' => $order->getId()))),
49
+ );
50
+
51
+ $orderInfo['items']['label'] = "Items";
52
+ $orderInfo['items']['value']['header'] = array("SKU", "Product Name", "Price");
53
+ foreach($order->getItemsCollection(array(), true) as $item) {
54
+ $orderInfo['items']['value']['items'][] = array(
55
+ 'sku' => $item->getSku(),
56
+ 'name' => $item->getName(),
57
+ 'price' => $item->getPrice()
58
+ );
59
+ }
60
+
61
+ return $orderInfo;
62
+ }
63
+
64
+ function getLastOrders($orders) {
65
+
66
+ $lastOrders=array();
67
+ $lastOrders['label'] = "Last Orders";
68
+ $lastOrders['value']['header'] = array("Id", "Status", "Created At", "Total", "More");
69
+ $lastOrders['value']['items'] = array();
70
+
71
+ foreach ($orders as $order) {
72
+ $lastOrders['value']['items'][] = $this->getLastOrdersRow($order);
73
+ }
74
+
75
+ return array("last_orders"=>$lastOrders);
76
+ }
77
+
78
+ function getLastOrdersRow($order)
79
+ {
80
+ // if the admin site has a custom URL, use it
81
+ $urlModel = Mage::getModel('adminhtml/url')->setStore('admin');
82
+
83
+ $orderInfo = array(
84
+ 'id' => $order->getIncrementId(),
85
+ 'status' => $order->getStatus(),
86
+ 'created' => $order->getCreatedAt(),
87
+ 'total' => $order->getGrandTotal(),
88
+ 'admin_url' => $urlModel->getUrl('adminhtml/sales_order/view', array('order_id' => $order->getId())),
89
+ );
90
+
91
+ return $orderInfo;
92
+ }
93
+
94
+ function getApiToken($generate = true)
95
+ {
96
+ // Grab any existing token from the admin scope
97
+ $token = Mage::getStoreConfig('zentio/api/token', 0);
98
+
99
+ if( (!$token || strlen(trim($token)) == 0) && $generate) {
100
+ $token = $this->setApiToken();
101
+ }
102
+
103
+ return $token;
104
+ }
105
+
106
+ function setApiToken($token = null)
107
+ {
108
+ if(!$token) {
109
+ $token = md5(time());
110
+ }
111
+ Mage::getModel('core/config')->saveConfig('zentio/api/token', $token, 'default');
112
+
113
+ return $token;
114
+ }
115
+ }
app/code/community/Zentio/Zentio/LICENSE.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright 2015 ZentIO
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
app/code/community/Zentio/Zentio/controllers/Adminhtml/ZentioController.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Zentio_Zentio_Adminhtml_ZentioController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+ /**
6
+ * Generates a new API Token
7
+ */
8
+ function generateAction()
9
+ {
10
+ try {
11
+ Mage::helper('zentio')->setApiToken();
12
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('zentio')->__('Successfully generated a new API token'));
13
+ } catch(Exception $e) {
14
+ Mage::getSingleton('adminhtml/session')->addError($e->getCode() . ': ' . $e->getMessage());
15
+ }
16
+
17
+ $this->_redirect('adminhtml/system_config/edit/section/zentio');
18
+ }
19
+
20
+ }
app/code/community/Zentio/Zentio/controllers/ApiController.php ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Zentio_Zentio_ApiController extends Mage_Core_Controller_Front_Action
4
+ {
5
+ public function customersAction()
6
+ {
7
+ if ( ! $this->checkAuth()) return $this;
8
+
9
+ $email = $this->getRequest()->getParam('email', null);
10
+
11
+ if ( ! $email) {
12
+ return $this->sendJsonResponse(array('messsage' => 'You must provide the email query parameter'), 400);
13
+ }
14
+
15
+ // load customer object for email
16
+ $customer = Mage::helper('zentio')->loadCustomer($email);
17
+
18
+ // Get a list of all orders for the given email address
19
+ // This is used to determine if a missing customer is a guest or if they really aren't a customer at all
20
+ $orderCollection = Mage::getModel('sales/order')->getCollection()
21
+ ->addFieldToFilter('customer_email', array('eq' => array($email)));
22
+
23
+ $orderCollection->setOrder('increment_id','DESC')->getSelect()->limit(5);
24
+
25
+ $lastOrder = array();
26
+ $lastOrders = array();
27
+ if ($orderCollection->getSize()) {
28
+ $lastOrder = Mage::helper('zentio')->getOrderDetail($orderCollection->getFirstItem());
29
+ $lastOrders = Mage::helper('zentio')->getLastOrders($orderCollection);
30
+ }
31
+
32
+ if ($customer && $customer->getId()) {
33
+ $data = array(
34
+ 'id' => $customer->getId(),
35
+ 'name' => $customer->getName(),
36
+ 'email' => $customer->getEmail(),
37
+ 'phone' => $customer->getTelephone() ? $customer->getTelephone() : $customer->getDefaultBillingAddress()->getTelephone(),
38
+ );
39
+
40
+ /*if ($billing = $customer->getDefaultBillingAddress()) {
41
+ $data['address'] = $billing->format('text');
42
+ }*/
43
+
44
+ $data['custom_attributes'] = $lastOrder + $lastOrders;
45
+
46
+ return $this->sendJsonResponse($data);
47
+ }
48
+
49
+ return $this->sendJsonResponse(array('message' => 'Customer does not exist'), 404);
50
+ }
51
+
52
+ protected function sendJsonResponse(array $content, $statusCode = 200)
53
+ {
54
+ $this->getResponse()
55
+ ->setBody(json_encode($content))
56
+ ->setHttpResponseCode($statusCode)
57
+ ->setHeader('Content-type', 'application/json', true);
58
+
59
+ return $this;
60
+ }
61
+
62
+ protected function setCustomAttribute(array &$data, $field, $value, $label = null)
63
+ {
64
+ $label = $label ? $label : ucfirst($field);
65
+ $data['custom_attributes'][$field] = array('label' => $label, 'value' => $value);
66
+
67
+ return $data;
68
+ }
69
+
70
+ protected function checkAuth()
71
+ {
72
+ $configs = $this->getAuthConfigs();
73
+
74
+ if ( ! $configs['enabled']) {
75
+ $message = 'API access is disabled';
76
+ Mage::log($messsage, null, 'zentio.log');
77
+
78
+ $this->sendJsonResponse(array('message' => $message), 403);
79
+ return false;
80
+ }
81
+
82
+ if ( ! $configs['username'] || !$configs['password']) {
83
+ $message = "API access details incomplete. username and/or password hasn't been set correctly. (in Magento ZentIO settings page)";
84
+ Mage::log($messsage, null, 'zentio.log');
85
+
86
+ $this->sendJsonResponse(array('message' => $message), 403);
87
+ return false;
88
+ }
89
+
90
+ $paramUsername = $this->getRequest()->getServer('PHP_AUTH_USER', null);
91
+ $paramPassword = $this->getRequest()->getServer('PHP_AUTH_PW', null);
92
+
93
+ if ( ! $paramUsername) {
94
+ $message = 'Requires authentication';
95
+ Mage::log($messsage, null, 'zentio.log');
96
+
97
+ $this->sendJsonResponse(array('message' => $message), 401);
98
+ return false;
99
+ }
100
+
101
+ if ($configs['username'] !== $paramUsername ||
102
+ $configs['password'] !== $paramPassword) {
103
+ $message = 'Authorization failed!';
104
+ Mage::log($messsage, null, 'zentio.log');
105
+
106
+ $this->sendJsonResponse(array('message' => $message), 403); // send forbidden if credentials are incorrect
107
+ return false;
108
+ }
109
+
110
+ return true;
111
+ }
112
+
113
+ protected function getAuthConfigs()
114
+ {
115
+ $basic_auth_realm = 'Zentio Realm';
116
+ $api_enabled = Mage::getStoreConfig('zentio/api/enabled', null);
117
+ $basic_auth_username = Mage::getStoreConfig('zentio/api/username', null);
118
+ $basic_auth_password = Mage::getStoreConfig('zentio/api/password', null);
119
+
120
+ return array(
121
+ 'enabled' => (int) $api_enabled,
122
+ 'realm' => $basic_auth_realm,
123
+ 'username' => $basic_auth_username,
124
+ 'password' => $basic_auth_password,
125
+ );
126
+ }
127
+ }
app/code/community/Zentio/Zentio/etc/adminhtml.xml ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <layout>
4
+ <updates>
5
+ <zentio_admin_layout>
6
+ <file>zentio.xml</file>
7
+ </zentio_admin_layout>
8
+ </updates>
9
+ </layout>
10
+ <menu>
11
+ <zentio translate="title" module="zentio">
12
+ <title>ZentIO</title>
13
+ <sort_order>99999</sort_order>
14
+ <children>
15
+ <zentio_settings module="zentio">
16
+ <title>Settings</title>
17
+ <action>adminhtml/system_config/edit/section/zentio</action>
18
+ <sort_order>10</sort_order>
19
+ </zentio_settings>
20
+ </children>
21
+ </zentio>
22
+ </menu>
23
+ <acl>
24
+ <resources>
25
+ <admin>
26
+ <children>
27
+ <zentio translate="title" module="zentio">
28
+ <title>ZentIO</title>
29
+ <children>
30
+ <zentio_settings translate="title" module="zentio">
31
+ <title>Settings</title>
32
+ <sort_order>10</sort_order>
33
+ </zentio_settings>
34
+ </children>
35
+ </zentio>
36
+ <system>
37
+ <children>
38
+ <config>
39
+ <children>
40
+ <zentio>
41
+ <title>ZentIO Settings section</title>
42
+ </zentio>
43
+ </children>
44
+ </config>
45
+ </children>
46
+ </system>
47
+ </children>
48
+ </admin>
49
+ </resources>
50
+ </acl>
51
+ </config>
app/code/community/Zentio/Zentio/etc/config.xml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" ?>
2
+ <!--
3
+ /**
4
+ * Module config
5
+ * @author ZentIO
6
+ */
7
+ -->
8
+ <config>
9
+ <modules>
10
+ <Zentio_Zentio>
11
+ <version>1.0</version>
12
+ </Zentio_Zentio>
13
+ </modules>
14
+
15
+ <global>
16
+ <helpers>
17
+ <zentio>
18
+ <class>Zentio_Zentio_Helper</class>
19
+ </zentio>
20
+ </helpers>
21
+ <models>
22
+ <zentio>
23
+ <class>Zentio_Zentio_Model</class>
24
+ </zentio>
25
+ </models>
26
+ <blocks>
27
+ <zentio>
28
+ <class>Zentio_Zentio_Block</class>
29
+ </zentio>
30
+ </blocks>
31
+ </global>
32
+
33
+ <frontend>
34
+ <routers>
35
+ <zentio>
36
+ <use>standard</use>
37
+ <args>
38
+ <module>Zentio_Zentio</module>
39
+ <frontName>zentio</frontName>
40
+ </args>
41
+ </zentio>
42
+ </routers>
43
+ </frontend>
44
+
45
+ <admin>
46
+ <routers>
47
+ <adminhtml>
48
+ <args>
49
+ <modules>
50
+ <Zentio_Zentio after="Mage_Adminhtml">Zentio_Zentio_Adminhtml</Zentio_Zentio>
51
+ </modules>
52
+ </args>
53
+ </adminhtml>
54
+ </routers>
55
+ </admin>
56
+ </config>
app/code/community/Zentio/Zentio/etc/system.xml ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @author ZentIO
5
+ */
6
+ -->
7
+ <config>
8
+ <tabs>
9
+ <zentio_extensions>
10
+ <label>ZentIO</label>
11
+ <sort_order>1000</sort_order>
12
+ </zentio_extensions>
13
+ </tabs>
14
+ <sections>
15
+ <zentio translate="label" module="zentio">
16
+ <label>ZentIO</label>
17
+ <tab>zentio_extensions</tab>
18
+ <frontend_type>text</frontend_type>
19
+ <class>zentio-section</class>
20
+ <header_css>zentio-header</header_css>
21
+ <sort_order>999999</sort_order>
22
+ <show_in_default>1</show_in_default>
23
+ <show_in_website>1</show_in_website>
24
+ <show_in_store>1</show_in_store>
25
+ <groups>
26
+ <api translate="label comment">
27
+ <label>API Access Details</label>
28
+ <comment>Required for Magento integration inside ZentIO to work. Your Base Url is http://yourstoredomain.com/zentio/api</comment>
29
+ <frontend_type>text</frontend_type>
30
+ <sort_order>40</sort_order>
31
+ <show_in_default>1</show_in_default>
32
+ <show_in_website>1</show_in_website>
33
+ <show_in_store>1</show_in_store>
34
+ <fields>
35
+ <enabled translate="label">
36
+ <label>API Enabled</label>
37
+ <frontend_type>select</frontend_type>
38
+ <source_model>adminhtml/system_config_source_yesno</source_model>
39
+ <sort_order>1</sort_order>
40
+ <show_in_default>1</show_in_default>
41
+ <show_in_website>1</show_in_website>
42
+ <show_in_store>1</show_in_store>
43
+ </enabled>
44
+ <username translate="label">
45
+ <label>API Username</label>
46
+ <frontend_type>text</frontend_type>
47
+ <sort_order>2</sort_order>
48
+ <show_in_default>1</show_in_default>
49
+ <show_in_website>1</show_in_website>
50
+ <show_in_store>1</show_in_store>
51
+ </username>
52
+ <password translate="label">
53
+ <label>API Password</label>
54
+ <frontend_type>text</frontend_type>
55
+ <sort_order>3</sort_order>
56
+ <show_in_default>1</show_in_default>
57
+ <show_in_website>1</show_in_website>
58
+ <show_in_store>1</show_in_store>
59
+ </password>
60
+ </fields>
61
+ </api>
62
+ </groups>
63
+ </zentio>
64
+ </sections>
65
+ </config>
app/etc/modules/Zentio_Zentio.xml ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @author ZentIO
5
+ */
6
+ -->
7
+ <config>
8
+ <modules>
9
+ <Zentio_Zentio>
10
+ <active>true</active>
11
+ <codePool>community</codePool>
12
+ </Zentio_Zentio>
13
+ </modules>
14
+ </config>
package.xml CHANGED
@@ -1,89 +1,20 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zentio_Zentio</name>
4
- <version>1.0.2</version>
5
  <stability>stable</stability>
6
- <license>ASL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Zent.io Multi-Channel Contact Center and Customer Support integrated into your store.</summary>
10
- <description>&lt;p&gt;Zent.io is a Contact Center/Customer Support Cloud Software Multichannel that unify chat, phone and e-mail. All the communication channels will be answered from a single interface. The agent will only need a web browser.&lt;/p&gt;&#xD;
11
- &lt;p&gt;&lt;a href="http://zent.io"&gt;&lt;b&gt;See our website&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
12
- &lt;ul&gt;&#xD;
13
- &lt;li&gt;No upfront investment&lt;/li&gt;&#xD;
14
- &lt;li&gt;No software/hardware required&lt;/li&gt;&#xD;
15
- &lt;li&gt;Multichannel Administration&lt;/li&gt;&#xD;
16
- &lt;li&gt;Multichannel Workplace&lt;/li&gt;&#xD;
17
- &lt;li&gt;Dashboards and Reports&lt;/li&gt;&#xD;
18
- &lt;li&gt;Multichannel Ticket/Case Management&lt;/li&gt;&#xD;
19
- &lt;li&gt;Smart customer management&lt;/li&gt;&#xD;
20
- &lt;li&gt;Team management&lt;/li&gt;&#xD;
21
- &lt;li&gt;Shift planning&lt;/li&gt;&#xD;
22
- &lt;li&gt;Outsourcing features&lt;/li&gt;&#xD;
23
- &lt;li&gt;Service management&lt;/li&gt;&#xD;
24
- &lt;li&gt;Collaborative tools&lt;/li&gt;&#xD;
25
- &lt;li&gt;Remote agents&lt;/li&gt;&#xD;
26
- &lt;/ul&gt;&#xD;
27
- &lt;h1&gt;Chat&lt;/h1&gt;&#xD;
28
- &lt;b&gt;Increase the productivity of your agents and customers engagement.&lt;/b&gt;&#xD;
29
- &lt;p&gt;Real time chatting with a customer support expert not only builds customers&#x2018; confidence during their shopping experience, but also helps to improve your conversion rates. According to a survey of American online consumers, 68% engage in live chat and 63% prefer getting back to a website with live chat for repeat purchase.&lt;/p&gt;&#xD;
30
  &#xD;
31
- &lt;ul&gt;&#xD;
32
- &lt;li&gt;Multiple chat sessions&lt;/li&gt;&#xD;
33
- &lt;li&gt;Transfer chats&lt;/li&gt;&#xD;
34
- &lt;li&gt;Chat whispering&lt;/li&gt;&#xD;
35
- &lt;li&gt;Gather user info&lt;/li&gt;&#xD;
36
- &lt;li&gt;Auto grettings message&lt;/li&gt;&#xD;
37
- &lt;li&gt;Cobrowsing&lt;/li&gt;&#xD;
38
- &lt;li&gt;Customizable&lt;/li&gt;&#xD;
39
- &lt;li&gt;Smart canned answers&lt;/li&gt;&#xD;
40
- &lt;li&gt;Prechat form&lt;/li&gt;&#xD;
41
- &lt;li&gt;Load balancing&lt;/li&gt;&#xD;
42
- &lt;li&gt;Reports and KPIs&lt;/li&gt;&#xD;
43
- &lt;li&gt;Javascript API&lt;/li&gt;&#xD;
44
- &lt;li&gt;Real time messages delivery&lt;/li&gt;&#xD;
45
- &lt;li&gt;Integration with GA&lt;/li&gt;&#xD;
46
- &lt;/ul&gt;&#xD;
47
- &lt;h1&gt;Voice&lt;/h1&gt;&#xD;
48
- &lt;b&gt;Reduce your tech costs.&lt;/b&gt;&#xD;
49
- &lt;p&gt;With our IVR templates builder, contact center administrator will be able to define advanced behaviors on incoming calls for a service/project. Since it's easy to use any administrator or supervisor can use since it doesn't require tech skills.&lt;/p&gt;&#xD;
50
- &lt;ul&gt;&#xD;
51
- &lt;li&gt;IVR templates&lt;/li&gt;&#xD;
52
- &lt;li&gt;No extra software required&lt;/li&gt;&#xD;
53
- &lt;li&gt;Voice recording&lt;/li&gt;&#xD;
54
- &lt;li&gt;Reporting and KPIs&lt;/li&gt;&#xD;
55
- &lt;li&gt;Load balancing&lt;/li&gt;&#xD;
56
- &lt;li&gt;VoIP&lt;/li&gt;&#xD;
57
- &lt;/ul&gt;&#xD;
58
- &lt;h1&gt;Email&lt;/h1&gt;&#xD;
59
- &lt;p&gt;Improve your response time and productivity of your team. Manage all the incoming messages from customers to your contact center.&lt;/p&gt;&#xD;
60
- &lt;ul&gt;&#xD;
61
- &lt;li&gt;Incoming mail management&lt;/li&gt;&#xD;
62
- &lt;li&gt;Fully customizable&lt;/li&gt;&#xD;
63
- &lt;li&gt;Reporting and KPIs&lt;/li&gt;&#xD;
64
- &lt;/ul&gt;&#xD;
65
- &lt;h1&gt;Customer Portal&lt;/h1&gt;&#xD;
66
- &lt;b&gt;Share important information with customers.&lt;/b&gt;&#xD;
67
- &lt;p&gt;Customer Portal helps to solve to customers questions from a service/project so they can solve them by themselves furthermore to add a new channel where the customer can start a case/ticket.&lt;/p&gt;&#xD;
68
- &lt;ul&gt;&#xD;
69
- &lt;li&gt;Advanced search and categorization&lt;/li&gt;&#xD;
70
- &lt;li&gt;Fully customizable&lt;/li&gt;&#xD;
71
- &lt;li&gt;Ticket/Case submission&lt;/li&gt;&#xD;
72
- &lt;/ul&gt;&#xD;
73
- &lt;h1&gt;Integration to Magento&lt;/h1&gt;&#xD;
74
- &lt;p&gt;You will see last orders and last order details for each customer that access to your customer service. &lt;/p&gt;&#xD;
75
- &lt;h1&gt;Also for outsources&lt;/h1&gt;&#xD;
76
- &lt;p&gt;Whether we are a contact center inside a company or a contact center that provides services to customers for other companies that outsource their customer care, being multichannel is a necessity nowadays. Give a step forward with Zent.io.&lt;/p&gt;&#xD;
77
- &#xD;
78
- &lt;p&gt;&lt;a href="http://www.zent.io/bundles/website/pdf/datasheet_zentio_en.pdf"&gt;&lt;b&gt;Datasheet&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
79
- &lt;p&gt;&lt;a href="http://zent.io"&gt;More&lt;/a&gt;&lt;/p&gt;&#xD;
80
- </description>
81
- <notes>Some bugs solved&#xD;
82
- Link to order</notes>
83
- <authors><author><name>Antonio Jos&#xE9; Moreno de la Rosa</name><user>amoreno</user><email>support@zent.io</email></author></authors>
84
- <date>2015-02-15</date>
85
- <time>21:09:19</time>
86
- <contents><target name="magelocal"><dir/></target></contents>
87
  <compatible/>
88
- <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
89
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Zentio_Zentio</name>
4
+ <version>1.0.3</version>
5
  <stability>stable</stability>
6
+ <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License (ASL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Zent.io Multi-Channel Contact Center and Customer Support integrated into your store.</summary>
10
+ <description>Zent.IO is a Contact Center Cloud Software Multichannel that unify chat, phone and e-mail. All the communication channels will be answered from a single interface. The agent will only need a web browser.&#xD;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  &#xD;
12
+ Whether we are a contact center inside a company or a contact center that provides services to customers for other companies that outsource their customer care, being multichannel is a necessity nowadays. Give a step forward with Zent.io</description>
13
+ <notes>Minor Bug Fixes</notes>
14
+ <authors><author><name>Antonio Jos&#xE9; Moreno de la Rosa</name><user>zentio</user><email>support@zent.io</email></author></authors>
15
+ <date>2015-02-19</date>
16
+ <time>06:43:01</time>
17
+ <contents><target name="magecommunity"><dir name="Zentio"><dir name="Zentio"><dir name="Helper"><file name="Data.php" hash="5efa851fe49b5bff580142f3e631d86b"/></dir><file name="LICENSE.txt" hash="51f3d38889a28739d45f31597a9f4446"/><dir name="controllers"><dir name="Adminhtml"><file name="ZentioController.php" hash="6072e05687cdd164e480b0af7b8d2530"/></dir><file name="ApiController.php" hash="314cad9f4ebc630f9180bb42868e9196"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f649f2c785bca8dc36d06f8fdf8a4e31"/><file name="config.xml" hash="544edbc93b810416989b3f3a190a072e"/><file name="system.xml" hash="3b703cb9f4dcd7a0e697da456b124fae"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zentio_Zentio.xml" hash="4e9c12b8be9848d47d75941c140ffe83"/></dir></target></contents>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  <compatible/>
19
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>