Version Notes
Country Code auto addition.
Download this release
Release Info
| Developer | Abdullah Shah |
| Extension | eKomi_integration |
| Version | 1.3.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.3.0 to 1.3.1
app/code/community/Ekomi/EkomiIntegration/Helper/Data.php
CHANGED
|
@@ -66,4 +66,33 @@ class Ekomi_EkomiIntegration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 66 |
}
|
| 67 |
return false;
|
| 68 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
}
|
| 66 |
}
|
| 67 |
return false;
|
| 68 |
}
|
| 69 |
+
|
| 70 |
+
/**
|
| 71 |
+
* @param $phone
|
| 72 |
+
* @param $country
|
| 73 |
+
*
|
| 74 |
+
* @return mixed|string
|
| 75 |
+
*/
|
| 76 |
+
function addCountryCode($phone, $country)
|
| 77 |
+
{
|
| 78 |
+
$ApiUrl = 'https://plugins-dashboard.ekomiapps.de/api/v1/country-code';
|
| 79 |
+
$ch = curl_init();
|
| 80 |
+
curl_setopt($ch, CURLOPT_URL, $ApiUrl . '?shop_id=' . $this->getShopId() . '&interface_password=' . $this->getShopPassword() . '&country_code=' . $country);
|
| 81 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 82 |
+
$json = curl_exec($ch);
|
| 83 |
+
curl_close($ch);
|
| 84 |
+
|
| 85 |
+
$response = json_decode($json, true);
|
| 86 |
+
if($response['status']['type'] == 'success'){
|
| 87 |
+
$phoneCode = $response['data']['phone_code'];
|
| 88 |
+
|
| 89 |
+
if(substr($phone, 0 , 1) == '0') {
|
| 90 |
+
$phone = substr_replace($phone, $phoneCode, 0, 1);
|
| 91 |
+
} else if(substr($phone, 0 , 2) != $phoneCode) {
|
| 92 |
+
$phone = $phoneCode . $phone;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
return $phone;
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
}
|
app/code/community/Ekomi/EkomiIntegration/Model/Observer.php
CHANGED
|
@@ -50,15 +50,30 @@ class Ekomi_EkomiIntegration_Model_Observer
|
|
| 50 |
*/
|
| 51 |
protected function getData($order, $storeId)
|
| 52 |
{
|
| 53 |
-
$helper
|
| 54 |
-
$scheduleTime
|
| 55 |
-
$
|
| 56 |
-
$
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
'transaction_time' => $scheduleTime,
|
| 61 |
-
'telephone' => $
|
| 62 |
'sender_name' => Mage::getStoreConfig('trans_email/ident_sales/name'),
|
| 63 |
'sender_email' => Mage::getStoreConfig('trans_email/ident_sales/email')
|
| 64 |
);
|
|
@@ -68,8 +83,8 @@ class Ekomi_EkomiIntegration_Model_Observer
|
|
| 68 |
$fields['screen_name'] = $this->getCustomerScreenName($order->getCustomerId());
|
| 69 |
} else {
|
| 70 |
$fields['client_id'] = 'guest_oId_' . $order->getIncrementId();
|
| 71 |
-
$lname = $order->
|
| 72 |
-
$fields['screen_name'] = $order->
|
| 73 |
}
|
| 74 |
|
| 75 |
if ($helper->isProductReviewEnabled($storeId)) {
|
|
@@ -180,25 +195,46 @@ class Ekomi_EkomiIntegration_Model_Observer
|
|
| 180 |
* @param $storeId
|
| 181 |
* @return string
|
| 182 |
*/
|
| 183 |
-
protected
|
|
|
|
| 184 |
$helper = Mage::helper('ekomi_ekomiIntegration');
|
| 185 |
$reviewMod = $helper->getReviewMod($storeId);
|
| 186 |
-
$
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 201 |
|
| 202 |
-
return $
|
| 203 |
}
|
| 204 |
}
|
| 50 |
*/
|
| 51 |
protected function getData($order, $storeId)
|
| 52 |
{
|
| 53 |
+
$helper = Mage::helper('ekomi_ekomiIntegration');
|
| 54 |
+
$scheduleTime = date('d-m-Y H:i:s', strtotime($order->getCreatedAtStoreDate()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT)));
|
| 55 |
+
$telephone = $order->getShippingAddress()->getTelephone();
|
| 56 |
+
$country = $order->getShippingAddress()->getCountry();
|
| 57 |
+
$recipientData = $this->getRecipientData($telephone, $country, $storeId);
|
| 58 |
+
|
| 59 |
+
if(!$recipientData['success']){
|
| 60 |
+
return '';
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
$apiMode = $recipientData['api-mode'];
|
| 64 |
+
$phoneNumber = $recipientData['phone-number'];
|
| 65 |
+
|
| 66 |
+
$fields = array(
|
| 67 |
+
'recipient_type' => $apiMode,
|
| 68 |
+
'shop_id' => $helper->getShopId($storeId),
|
| 69 |
+
'password' => $helper->getShopPassword($storeId),
|
| 70 |
+
'salutation' => '',
|
| 71 |
+
'first_name' => $order->getShippingAddress()->getFirstname(),
|
| 72 |
+
'last_name' => $order->getShippingAddress()->getLastname(),
|
| 73 |
+
'email' => $order->getCustomerEmail(),
|
| 74 |
+
'transaction_id' => $order->getIncrementId(),
|
| 75 |
'transaction_time' => $scheduleTime,
|
| 76 |
+
'telephone' => $phoneNumber,
|
| 77 |
'sender_name' => Mage::getStoreConfig('trans_email/ident_sales/name'),
|
| 78 |
'sender_email' => Mage::getStoreConfig('trans_email/ident_sales/email')
|
| 79 |
);
|
| 83 |
$fields['screen_name'] = $this->getCustomerScreenName($order->getCustomerId());
|
| 84 |
} else {
|
| 85 |
$fields['client_id'] = 'guest_oId_' . $order->getIncrementId();
|
| 86 |
+
$lname = $order->getShippingAddress()->getLastname();
|
| 87 |
+
$fields['screen_name'] = $order->getShippingAddress()->getFirstname() . $lname[0];
|
| 88 |
}
|
| 89 |
|
| 90 |
if ($helper->isProductReviewEnabled($storeId)) {
|
| 195 |
* @param $storeId
|
| 196 |
* @return string
|
| 197 |
*/
|
| 198 |
+
protected function getRecipientData($telephone, $country, $storeId)
|
| 199 |
+
{
|
| 200 |
$helper = Mage::helper('ekomi_ekomiIntegration');
|
| 201 |
$reviewMod = $helper->getReviewMod($storeId);
|
| 202 |
+
$recipientData = array(
|
| 203 |
+
'success' => false,
|
| 204 |
+
'api-mode' => 'email',
|
| 205 |
+
'phone-number' => $telephone
|
| 206 |
+
);
|
| 207 |
+
|
| 208 |
+
if($reviewMod == 'email') {
|
| 209 |
+
$recipientData['success'] = true;
|
| 210 |
+
$recipientData['api-mode'] = 'email';
|
| 211 |
+
} else {
|
| 212 |
+
if (substr($telephone, 0, 1) == '+') {
|
| 213 |
+
$recipientData['phone-number'] = $telephone;
|
| 214 |
+
} else if (substr($telephone, 0, 1) == '0') {
|
| 215 |
+
$telephone = $helper->addCountryCode($telephone, $country);
|
| 216 |
+
} else if ($helper->validateE164($telephone)) {
|
| 217 |
+
$telephone = $helper->addCountryCode($telephone, $country);
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
if ($helper->validateE164($telephone)) {
|
| 221 |
+
$recipientData['success'] = true;
|
| 222 |
+
$recipientData['api-mode'] = 'sms';
|
| 223 |
+
$recipientData['phone-number'] = $telephone;
|
| 224 |
+
} else {
|
| 225 |
+
switch ($reviewMod) {
|
| 226 |
+
case 'sms':
|
| 227 |
+
$recipientData['success'] = false;
|
| 228 |
+
$recipientData['api-mode'] = 'sms';
|
| 229 |
+
break;
|
| 230 |
+
case 'fallback':
|
| 231 |
+
$recipientData['success'] = true;
|
| 232 |
+
$recipientData['api-mode'] = 'email';
|
| 233 |
+
break;
|
| 234 |
+
}
|
| 235 |
+
}
|
| 236 |
+
};
|
| 237 |
|
| 238 |
+
return $recipientData;
|
| 239 |
}
|
| 240 |
}
|
app/code/community/Ekomi/EkomiIntegration/etc/config.xml
CHANGED
|
@@ -16,7 +16,7 @@
|
|
| 16 |
<config>
|
| 17 |
<modules>
|
| 18 |
<Ekomi_EkomiIntegration>
|
| 19 |
-
<version>1.
|
| 20 |
</Ekomi_EkomiIntegration>
|
| 21 |
</modules>
|
| 22 |
<global>
|
| 16 |
<config>
|
| 17 |
<modules>
|
| 18 |
<Ekomi_EkomiIntegration>
|
| 19 |
+
<version>1.3.0.0</version>
|
| 20 |
</Ekomi_EkomiIntegration>
|
| 21 |
</modules>
|
| 22 |
<global>
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>eKomi_integration</name>
|
| 4 |
-
<version>1.3.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>AFL</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -11,8 +11,8 @@
|
|
| 11 |
<notes>Country Code auto addition.</notes>
|
| 12 |
<authors><author><name>Abdullah Shah</name><user>sbarics</user><email>sbarics@ekomi.de</email></author></authors>
|
| 13 |
<date>2017-05-29</date>
|
| 14 |
-
<time>10:
|
| 15 |
-
<contents><target name="magecommunity"><dir name="Ekomi"><dir name="EkomiIntegration"><dir name="Helper"><file name="Data.php" hash="
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.0.0</min><max>7.1.0</max></php></required></dependencies>
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>eKomi_integration</name>
|
| 4 |
+
<version>1.3.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>AFL</license>
|
| 7 |
<channel>community</channel>
|
| 11 |
<notes>Country Code auto addition.</notes>
|
| 12 |
<authors><author><name>Abdullah Shah</name><user>sbarics</user><email>sbarics@ekomi.de</email></author></authors>
|
| 13 |
<date>2017-05-29</date>
|
| 14 |
+
<time>10:17:09</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Ekomi"><dir name="EkomiIntegration"><dir name="Helper"><file name="Data.php" hash="b67445ff0f07de4feee9dd05bcabf82a"/></dir><dir name="Model"><file name="Observer.php" hash="7b6437296acb1ce2284460aafb2de95e"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Dropdown"><file name="Mod.php" hash="39cfbafdf917b466f5b0ce5e4d7c9ea5"/><file name="Status.php" hash="890aab8d85bd23b7a46ab8b87758a018"/></dir></dir></dir></dir><file name="Validate.php" hash="b9de4708ae8fb88f9bb9c9dd0f13abc2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="bfb8c20cbf01af974039b5e71a040f71"/><file name="config.xml" hash="ef12a656fbfc25cac5936b57c6c462cb"/><file name="system.xml" hash="d4c5b8d9c2ddf5dfcb73969d2cf01c3a"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ekomi_EkomiIntegration.xml" hash="e84d0589f7081183d0d3d1e1c66c059e"/></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.0.0</min><max>7.1.0</max></php></required></dependencies>
|
| 18 |
</package>
|
