Version Notes
Infobip StoreSMS API module
Download this release
Release Info
Developer | Snowdog |
Extension | Infobip_Storesms |
Version | 1.0.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.0 to 1.0.3
- app/code/community/Infobip/Storesms/Block/Buttons/NewAccount.php +1 -1
- app/code/community/Infobip/Storesms/Model/ApiClient.php +9 -3
- app/code/community/Infobip/Storesms/Model/Observer.php +108 -88
- app/code/community/Infobip/Storesms/etc/config.xml +5 -5
- app/code/community/Infobip/Storesms/etc/system.xml +5 -5
- app/design/adminhtml/base/default/layout/Infobip_Storesms.xml +1 -1
- package.xml +17 -6
app/code/community/Infobip/Storesms/Block/Buttons/NewAccount.php
CHANGED
@@ -10,7 +10,7 @@ class Infobip_Storesms_Block_Buttons_NewAccount extends Mage_Adminhtml_Block_Sys
|
|
10 |
->setType('button')
|
11 |
->setClass('button')
|
12 |
->setLabel(Mage::helper('storesms')->__('Open Sign Up form'))
|
13 |
-
->setOnClick("window.open('
|
14 |
->toHtml();
|
15 |
|
16 |
return $html;
|
10 |
->setType('button')
|
11 |
->setClass('button')
|
12 |
->setLabel(Mage::helper('storesms')->__('Open Sign Up form'))
|
13 |
+
->setOnClick("window.open('https://accounts.infobip.com/signup','window1','width=990, height=705, scrollbars=1, resizable=1'); return false;")
|
14 |
->toHtml();
|
15 |
|
16 |
return $html;
|
app/code/community/Infobip/Storesms/Model/ApiClient.php
CHANGED
@@ -17,7 +17,6 @@ class Infobip_Storesms_Model_ApiClient {
|
|
17 |
|
18 |
public function sendByCurl(array $smsData) {
|
19 |
|
20 |
-
|
21 |
if (empty($smsData['recipients']))
|
22 |
throw new Exception(Mage::helper('storesms')->__('No recipients found'));
|
23 |
|
@@ -55,16 +54,20 @@ class Infobip_Storesms_Model_ApiClient {
|
|
55 |
$fields = "XML=" . urlencode($xmlString);
|
56 |
|
57 |
$ch = curl_init();
|
|
|
58 |
curl_setopt($ch, CURLOPT_URL, $postUrl);
|
|
|
59 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
60 |
curl_setopt($ch, CURLOPT_HEADER, FALSE);
|
|
|
|
|
61 |
curl_setopt($ch, CURLOPT_POST, 1);
|
62 |
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
|
63 |
-
|
|
|
64 |
// response of the POST request
|
65 |
$response = curl_exec($ch);
|
66 |
curl_close($ch);
|
67 |
-
|
68 |
return $response;
|
69 |
}
|
70 |
|
@@ -91,6 +94,9 @@ class Infobip_Storesms_Model_ApiClient {
|
|
91 |
|
92 |
|
93 |
public function checkCreditLimit() {
|
|
|
|
|
|
|
94 |
|
95 |
$config = Mage::getModel('storesms/config');
|
96 |
if ($config->isApiEnabled()==0) return;
|
17 |
|
18 |
public function sendByCurl(array $smsData) {
|
19 |
|
|
|
20 |
if (empty($smsData['recipients']))
|
21 |
throw new Exception(Mage::helper('storesms')->__('No recipients found'));
|
22 |
|
54 |
$fields = "XML=" . urlencode($xmlString);
|
55 |
|
56 |
$ch = curl_init();
|
57 |
+
|
58 |
curl_setopt($ch, CURLOPT_URL, $postUrl);
|
59 |
+
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,2);
|
60 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
61 |
curl_setopt($ch, CURLOPT_HEADER, FALSE);
|
62 |
+
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,TRUE);
|
63 |
+
curl_setopt($ch, CURLOPT_MAXREDIRS,2);
|
64 |
curl_setopt($ch, CURLOPT_POST, 1);
|
65 |
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
|
66 |
+
|
67 |
+
|
68 |
// response of the POST request
|
69 |
$response = curl_exec($ch);
|
70 |
curl_close($ch);
|
|
|
71 |
return $response;
|
72 |
}
|
73 |
|
94 |
|
95 |
|
96 |
public function checkCreditLimit() {
|
97 |
+
|
98 |
+
if (!Mage::getSingleton('admin/session')->isLoggedIn()) //checks credit limit only for logged admin
|
99 |
+
return;
|
100 |
|
101 |
$config = Mage::getModel('storesms/config');
|
102 |
if ($config->isApiEnabled()==0) return;
|
app/code/community/Infobip/Storesms/Model/Observer.php
CHANGED
@@ -10,98 +10,14 @@
|
|
10 |
* ...
|
11 |
*/
|
12 |
class Infobip_Storesms_Model_Observer {
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
/**
|
18 |
-
*
|
19 |
-
* @param type $observer
|
20 |
-
* @return type
|
21 |
-
*/
|
22 |
-
|
23 |
-
public function handleStatus($observer) {
|
24 |
-
|
25 |
-
$config = Mage::getModel('storesms/config');
|
26 |
-
if ($config->isApiEnabled()==0) return; //do nothing if api is disabled
|
27 |
-
|
28 |
-
$order = $observer->getEvent()->getOrder();
|
29 |
-
$newStatus = $order->getData('status');
|
30 |
-
$origStatus = $order->getOrigData('status');
|
31 |
-
|
32 |
-
|
33 |
-
//if status has changed run action
|
34 |
-
if ($newStatus!=$origStatus) {
|
35 |
-
|
36 |
-
$message = $config->getMessageTemplate($newStatus); //get template for new status (if active and exists)
|
37 |
-
if (!$message) //return if no active message template
|
38 |
-
return;
|
39 |
-
|
40 |
-
|
41 |
-
//getting last tracking number
|
42 |
-
$trackings = Mage::getResourceModel('sales/order_shipment_track_collection')->setOrderFilter($order)->getData();
|
43 |
-
|
44 |
-
if (!empty($trackings)) {
|
45 |
-
$last = count($trackings)-1;
|
46 |
-
$last_tracking_number = $trackings[$last]['track_number'];
|
47 |
-
}
|
48 |
-
else
|
49 |
-
$last_tracking_number = 'no_tracking'; //if no tracking number set "no_tracking" message for {TRACKINGNUMBER} template
|
50 |
-
|
51 |
-
|
52 |
-
//getting order data to generate message template
|
53 |
-
$messageOrderData['{NAME}'] = $order->getShippingAddress()->getData('firstname');
|
54 |
-
$messageOrderData['{ORDERNUMBER}'] = $order->getIncrement_id();
|
55 |
-
$messageOrderData['{ORDERSTATUS}'] = $newStatus;
|
56 |
-
$messageOrderData['{TRACKINGNUMBER}'] = $last_tracking_number;
|
57 |
-
$messageOrderData['{STORENAME}'] = $config->getStoreName();
|
58 |
-
|
59 |
-
$message = strtr($message,$messageOrderData);
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
$api = Mage::getModel('storesms/apiClient');
|
65 |
|
66 |
-
|
67 |
-
$msg['recipients'][] = $order->getShippingAddress()->getData('telephone'); //or getBillingAddress
|
68 |
-
$msg['message'] = $message;
|
69 |
-
$msg['single_message'] = $config->isSingle(); //allow_long_sms
|
70 |
-
$msg['sender'] = $config->getSender();//sender
|
71 |
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
$apiClient = Mage::getModel('storesms/apiClient');
|
78 |
-
$savedIds = Mage::getModel('storesms/storesms')->saveMessages($msg);
|
79 |
-
$msg['ids'] = $savedIds;
|
80 |
-
|
81 |
-
$response = $apiClient->sendByCurl($msg);
|
82 |
-
$responseVerbally = Mage::helper('storesms')->getStatusVerbally(Mage::helper('storesms/xml')->getStatusCode($response));
|
83 |
-
|
84 |
-
if ($responseVerbally!='SEND_OK')
|
85 |
-
throw new Exception (Mage::helper('storesms')->__('Error sending Message:').' '.$responseVerbally);
|
86 |
-
|
87 |
-
//@successs add comment to order
|
88 |
-
$newComment = Mage::helper('storesms')->__('SMS notification sent (SMS id:').$msg['ids'][$msg['recipients'][0]].') ' ;
|
89 |
-
$order->addStatusToHistory($order->getStatus(),$newComment,true);
|
90 |
-
$this->checkCreditLimit();
|
91 |
-
|
92 |
-
} catch (Exception $e) {
|
93 |
-
$newComment = Mage::helper('storesms')->__('SMS notification sending error:').' "'.$e->getMessage().'"';
|
94 |
-
$order->addStatusToHistory($order->getStatus(),$newComment,false);
|
95 |
-
}
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
}
|
102 |
-
|
103 |
}
|
104 |
-
|
105 |
|
106 |
/**
|
107 |
* Generating alert notification if storesmsAPI account balance is low
|
@@ -143,6 +59,110 @@ class Infobip_Storesms_Model_Observer {
|
|
143 |
Mage::getSingleton('core/session')->addError($e->getMessage());
|
144 |
}
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
}
|
147 |
|
148 |
}
|
10 |
* ...
|
11 |
*/
|
12 |
class Infobip_Storesms_Model_Observer {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
public static $lastExecutionTime; //to avoid multiple SMS if status was changed more than one time per 2 second
|
|
|
|
|
|
|
|
|
15 |
|
16 |
|
17 |
+
public function _construct() {
|
18 |
+
if (!self::$lastExecutionTime)
|
19 |
+
self::$lastExecutionTime = time();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
21 |
|
22 |
/**
|
23 |
* Generating alert notification if storesmsAPI account balance is low
|
59 |
Mage::getSingleton('core/session')->addError($e->getMessage());
|
60 |
}
|
61 |
|
62 |
+
}
|
63 |
+
|
64 |
+
|
65 |
+
public function orderStatusHistorySave($observer) {
|
66 |
+
|
67 |
+
$config = Mage::getModel('storesms/config');
|
68 |
+
if ($config->isApiEnabled()==0) return; //do nothing if api is disabled
|
69 |
+
|
70 |
+
$history = $observer->getEvent()->getStatusHistory();
|
71 |
+
|
72 |
+
//only for new status
|
73 |
+
if (!$history->getId()) {
|
74 |
+
|
75 |
+
$order = $history->getOrder();
|
76 |
+
$newStatus = $order->getData('status');
|
77 |
+
$origStatus = $order->getOrigData('status');
|
78 |
+
|
79 |
+
|
80 |
+
if (time()-self::$lastExecutionTime<=2)
|
81 |
+
return;
|
82 |
+
|
83 |
+
self::$lastExecutionTime = time();
|
84 |
+
|
85 |
+
//if status has changed run action
|
86 |
+
if ($newStatus!=$origStatus) {
|
87 |
+
|
88 |
+
$message = $config->getMessageTemplate($newStatus); //get template for new status (if active and exists)
|
89 |
+
if (!$message) //return if no active message template
|
90 |
+
return;
|
91 |
+
|
92 |
+
|
93 |
+
//getting last tracking number
|
94 |
+
$tracking = Mage::getResourceModel('sales/order_shipment_track_collection')->setOrderFilter($order)->getData();
|
95 |
+
|
96 |
+
if (!empty($tracking)) {
|
97 |
+
$last = count($tracking)-1;
|
98 |
+
$last_tracking_number = $tracking[$last]['track_number'];
|
99 |
+
}
|
100 |
+
else
|
101 |
+
$last_tracking_number = 'no_tracking'; //if no tracking number set "no_tracking" message for {TRACKINGNUMBER} template
|
102 |
+
|
103 |
+
|
104 |
+
//getting order data to generate message template
|
105 |
+
$messageOrderData['{NAME}'] = $order->getShippingAddress()->getData('firstname');
|
106 |
+
$messageOrderData['{ORDERNUMBER}'] = $order->getIncrement_id();
|
107 |
+
$messageOrderData['{ORDERSTATUS}'] = $newStatus;
|
108 |
+
$messageOrderData['{TRACKINGNUMBER}'] = $last_tracking_number;
|
109 |
+
$messageOrderData['{STORENAME}'] = $config->getStoreName();
|
110 |
+
|
111 |
+
$message = strtr($message,$messageOrderData);
|
112 |
+
|
113 |
+
//prepare sms content
|
114 |
+
$msg['recipients'][] = Mage::helper('storesms')->getPhoneNumber($order->getShippingAddress()->getData('telephone')); //or getBillingAddress
|
115 |
+
$msg['message'] = $message;
|
116 |
+
$msg['single_message'] = $config->isSingle(); //allow_long_sms
|
117 |
+
$msg['sender'] = $config->getSender();//sender
|
118 |
+
|
119 |
+
|
120 |
+
//sending sms and getting API response
|
121 |
+
|
122 |
+
try {
|
123 |
+
|
124 |
+
$apiClient = Mage::getModel('storesms/apiClient');
|
125 |
+
$model = Mage::getModel('storesms/storesms');
|
126 |
+
$savedIds = $model->saveMessages($msg);
|
127 |
+
$msg['ids'] = $savedIds;
|
128 |
+
$response = $apiClient->sendByCurl($msg);
|
129 |
+
if ($response===false)
|
130 |
+
{
|
131 |
+
|
132 |
+
//save delievery status for each message
|
133 |
+
foreach ($msg['ids'] as $messageId) {
|
134 |
+
$model->setNewDeliveryStatus($messageId,'API CONNECTION ERROR.');
|
135 |
+
$model->unsetData();
|
136 |
+
Mage::throwException('API CONNECTION ERROR.');
|
137 |
+
}
|
138 |
+
|
139 |
+
}
|
140 |
+
else {
|
141 |
+
|
142 |
+
$responseVerbally = Mage::helper('storesms')->getStatusVerbally(Mage::helper('storesms/xml')->getStatusCode($response));
|
143 |
+
if ($responseVerbally!='SEND_OK')
|
144 |
+
Mage::throwException(Mage::helper('storesms')->__('Error sending Message:').' '.$responseVerbally);
|
145 |
+
//@successs add comment to order
|
146 |
+
$newComment = Mage::helper('storesms')->__('SMS notification sent (SMS id:').$msg['ids'][$msg['recipients'][0]].') ' ;
|
147 |
+
$history->setComment($newComment);
|
148 |
+
//Mage::getSingleton('core/session')->addSuccess($newComment);
|
149 |
+
$this->checkCreditLimit();
|
150 |
+
}
|
151 |
+
|
152 |
+
|
153 |
+
} catch (Exception $e) {
|
154 |
+
$newComment = Mage::helper('storesms')->__('SMS notification sending error:').' "'.$e->getMessage().'"';
|
155 |
+
$history->setComment($newComment);
|
156 |
+
//Mage::getSingleton('core/session')->addError($newComment);
|
157 |
+
}
|
158 |
+
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
|
163 |
+
|
164 |
+
|
165 |
+
|
166 |
}
|
167 |
|
168 |
}
|
app/code/community/Infobip/Storesms/etc/config.xml
CHANGED
@@ -35,7 +35,7 @@
|
|
35 |
|
36 |
<modules>
|
37 |
<Infobip_Storesms>
|
38 |
-
<version>1.0.
|
39 |
</Infobip_Storesms>
|
40 |
</modules>
|
41 |
|
@@ -190,15 +190,15 @@
|
|
190 |
</setup>
|
191 |
</storesms_setup>
|
192 |
</resources>
|
193 |
-
<events>
|
194 |
-
<
|
195 |
<observers>
|
196 |
<order_new_status>
|
197 |
<class>Infobip_Storesms_Model_Observer</class>
|
198 |
-
<method>
|
199 |
</order_new_status>
|
200 |
</observers>
|
201 |
-
</
|
202 |
</events>
|
203 |
</global>
|
204 |
|
35 |
|
36 |
<modules>
|
37 |
<Infobip_Storesms>
|
38 |
+
<version>1.0.2</version>
|
39 |
</Infobip_Storesms>
|
40 |
</modules>
|
41 |
|
190 |
</setup>
|
191 |
</storesms_setup>
|
192 |
</resources>
|
193 |
+
<events>
|
194 |
+
<sales_order_status_history_save_before>
|
195 |
<observers>
|
196 |
<order_new_status>
|
197 |
<class>Infobip_Storesms_Model_Observer</class>
|
198 |
+
<method>orderStatusHistorySave</method>
|
199 |
</order_new_status>
|
200 |
</observers>
|
201 |
+
</sales_order_status_history_save_before>
|
202 |
</events>
|
203 |
</global>
|
204 |
|
app/code/community/Infobip/Storesms/etc/system.xml
CHANGED
@@ -170,7 +170,7 @@
|
|
170 |
<expanded>1</expanded>
|
171 |
<fields>
|
172 |
|
173 |
-
<
|
174 |
<label>Send SMS after status changed to "Pending Payment"</label>
|
175 |
<frontend_type>select</frontend_type>
|
176 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
@@ -178,16 +178,16 @@
|
|
178 |
<show_in_default>1</show_in_default>
|
179 |
<show_in_website>1</show_in_website>
|
180 |
<show_in_store>1</show_in_store>
|
181 |
-
</
|
182 |
-
<
|
183 |
<label>Template</label>
|
184 |
<frontend_type>textarea</frontend_type>
|
185 |
<sort_order>4</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 |
-
<depends><
|
190 |
-
</
|
191 |
|
192 |
<status_holded_active translate="label">
|
193 |
<label>Send SMS after status changed to "On Hold"</label>
|
170 |
<expanded>1</expanded>
|
171 |
<fields>
|
172 |
|
173 |
+
<status_pending_active translate="label">
|
174 |
<label>Send SMS after status changed to "Pending Payment"</label>
|
175 |
<frontend_type>select</frontend_type>
|
176 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
178 |
<show_in_default>1</show_in_default>
|
179 |
<show_in_website>1</show_in_website>
|
180 |
<show_in_store>1</show_in_store>
|
181 |
+
</status_pending_active>
|
182 |
+
<status_pending translate="label">
|
183 |
<label>Template</label>
|
184 |
<frontend_type>textarea</frontend_type>
|
185 |
<sort_order>4</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 |
+
<depends><status_pending_active>1</status_pending_active></depends>
|
190 |
+
</status_pending>
|
191 |
|
192 |
<status_holded_active translate="label">
|
193 |
<label>Send SMS after status changed to "On Hold"</label>
|
app/design/adminhtml/base/default/layout/Infobip_Storesms.xml
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<layout version="0.1.
|
3 |
<default>
|
4 |
<reference name="head">
|
5 |
<action method="addJs"><script>infobipStoresms/storesmscounter.js</script></action>
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<layout version="0.1.1">
|
3 |
<default>
|
4 |
<reference name="head">
|
5 |
<action method="addJs"><script>infobipStoresms/storesmscounter.js</script></action>
|
package.xml
CHANGED
@@ -1,18 +1,29 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Infobip_Storesms</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
<license>Infobip StoreSMS licence</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>Infobip StoreSMS
|
10 |
-
<description>Infobip StoreSMS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
<notes>Infobip StoreSMS API module</notes>
|
12 |
<authors><author><name>Snowdog</name><user>snowdog</user><email>support@snowdog.pl</email></author><author><name>Marek Jasiukiewicz</name><user>jasiukiewicz_m</user><email>dev@jasiukiewicz.pl</email></author><author><name>Infobip</name><user>Infobip</user><email>magento@infobip.com</email></author></authors>
|
13 |
-
<date>2013-
|
14 |
-
<time>
|
15 |
-
<contents><target name="magecommunity"><dir name="Infobip"><dir name="Storesms"><dir name="Block"><dir name="Adminhtml"><dir name="Storesms"><dir name="Edit"><file name="Form.php" hash="1b369dae5e437d2dcf17b30275fcd489"/><dir name="Tab"><file name="Form.php" hash="96d0f24063b0a7af61d55a728e13ad0e"/></dir><file name="Tabs.php" hash="188c99c05a103090fb0d3c65a30529a5"/></dir><file name="Edit.php" hash="d2095dd15d30a7ee0bb50f12c9d91c8d"/><file name="Grid.php" hash="b411c3db6224c7774811fa5bed9dbe70"/></dir><file name="Storesms.php" hash="7bb4da25d3b5bc3e7363cf8b9a86bfd2"/><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Branding.php" hash="eebc4a367ad619b8fe105dfd2fe42394"/></dir></dir></dir></dir><dir name="Buttons"><file name="Contact.php" hash="a9ea799fe52cac5ce9eced905173a69d"/><file name="NewAccount.php" hash="69047d85be7fe818d76e2c09c8f80805"/></dir></dir><dir name="Helper"><file name="Data.php" hash="2b7999c16e3f2e9400a31f87e0fa2fbc"/><file name="Xml.php" hash="a858c494660f260fae1d26c4baf98258"/></dir><dir name="Model"><file name="ApiClient.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Infobip_Storesms</name>
|
4 |
+
<version>1.0.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>Infobip StoreSMS licence</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>By using Infobip StoreSMS you can easily keep your customers informed about the status of their shipments. If your business sells or makes products that need shipping, Infobip StoreSMS is the right solution for you.</summary>
|
10 |
+
<description>By using Infobip StoreSMS you can easily keep your customers informed about the status of their shipments. If your business sells or makes products that need shipping, Infobip StoreSMS is the right solution for you.
|
11 |
+

|
12 |
+
Infobip StoreSMS is a plugin based on SMS API technology.
|
13 |
+
Features
|
14 |
+

|
15 |
+
Keep customers happy - providing the right information at the right time adds value to your business and increases customer loyalty.
|
16 |
+

|
17 |
+
Easy integration - a quick and esy way to provide your business with its own personal SMS service.
|
18 |
+

|
19 |
+
Bulk SMS - send out coupons or promotional offers and promote your business.
|
20 |
+

|
21 |
+
Sending speed - send up to 20 SMS messages per second over a highly reliable platform. </description>
|
22 |
<notes>Infobip StoreSMS API module</notes>
|
23 |
<authors><author><name>Snowdog</name><user>snowdog</user><email>support@snowdog.pl</email></author><author><name>Marek Jasiukiewicz</name><user>jasiukiewicz_m</user><email>dev@jasiukiewicz.pl</email></author><author><name>Infobip</name><user>Infobip</user><email>magento@infobip.com</email></author></authors>
|
24 |
+
<date>2013-06-18</date>
|
25 |
+
<time>09:11:49</time>
|
26 |
+
<contents><target name="magecommunity"><dir name="Infobip"><dir name="Storesms"><dir name="Block"><dir name="Adminhtml"><dir name="Storesms"><dir name="Edit"><file name="Form.php" hash="1b369dae5e437d2dcf17b30275fcd489"/><dir name="Tab"><file name="Form.php" hash="96d0f24063b0a7af61d55a728e13ad0e"/></dir><file name="Tabs.php" hash="188c99c05a103090fb0d3c65a30529a5"/></dir><file name="Edit.php" hash="d2095dd15d30a7ee0bb50f12c9d91c8d"/><file name="Grid.php" hash="b411c3db6224c7774811fa5bed9dbe70"/></dir><file name="Storesms.php" hash="7bb4da25d3b5bc3e7363cf8b9a86bfd2"/><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Branding.php" hash="eebc4a367ad619b8fe105dfd2fe42394"/></dir></dir></dir></dir><dir name="Buttons"><file name="Contact.php" hash="a9ea799fe52cac5ce9eced905173a69d"/><file name="NewAccount.php" hash="69047d85be7fe818d76e2c09c8f80805"/></dir></dir><dir name="Helper"><file name="Data.php" hash="2b7999c16e3f2e9400a31f87e0fa2fbc"/><file name="Xml.php" hash="a858c494660f260fae1d26c4baf98258"/></dir><dir name="Model"><file name="ApiClient.php" hash="257b17dc25de72c171736959e2aa7e47"/><file name="Config.php" hash="77679160df8b273550f2be7144c65723"/><file name="Cron.php" hash="7eabce279410694dd39ff7ba47b891ae"/><file name="Observer.php" hash="a9b1dfc58e6c37339d85060a0d24576c"/><dir name="Resource"><dir name="Storesms"><file name="Collection.php" hash="9ddcb7f555bce6a7d61b94a1b8411365"/></dir><file name="Storesms.php" hash="4c8de8d71e2b5f7240eced9ff892823f"/></dir><file name="Storesms.php" hash="13af9b62b847f156767250bb07079aba"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="StoresmsController.php" hash="f1ecf02504ed1ce8f1364f75df4827cf"/></dir></dir><dir name="etc"><file name="config.xml" hash="66b8b96487215d4d817209fcaedc4344"/><file name="system.xml" hash="dd9a9dcaff7211788e93589fb5055197"/></dir><dir name="sql"><dir name="storesms_setup"><file name="install-1.0.0.php" hash="05abcca86b256b1fe6ecc75dca077042"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="layout"><file name="Infobip_Storesms.xml" hash="adb7f697c159b49cc17313bf8d5426a8"/></dir><dir name="template"><dir name="storesms"><dir name="system"><dir name="config"><dir name="fieldset"><file name="branding.phtml" hash="97fd7bad4030f34f3869363786cc46c8"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="images"><dir name="storesms"><file name="storesms_header.png" hash="ca8dce29b3bbe56ae222587b103f27ac"/></dir></dir><dir name="css"><dir name="storesms"><file name="skin.css" hash="2f6c219956ed5ac0bd28256279cdc0cf"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Infobip_Storesms.xml" hash="ea5ef63fd7a211500bdaefaf6e56809e"/></dir></target><target name="mage"><dir name="js"><dir name="infobipStoresms"><file name="storesmscounter.js" hash="172592c438b41b35d5b3bec9ad8afc0d"/></dir></dir></target><target name="magelocale"><dir name="pl_PL"><file name="Infobip_Storesms.csv" hash="00700b577d39d3c4f9e0553301cdead7"/></dir></target></contents>
|
27 |
<compatible/>
|
28 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
29 |
</package>
|