diff --git a/CHANGELOG.md b/CHANGELOG.md index ae830ad2..9ddf3803 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v3.3.2 +* Ребрендинг модуля RetailCRM --> Simla.com +* Улучшена работа с историей изменений заказов из Simla.com +* Добавлена проверка наличия папки логов +* Добавлена индикация ошибок в настройках модуля + ## v3.3.1 * Исправлена ошибка в работе с файлами логов на старых версиях PrestaShop * Изменена сортировка статусов заказов RetailCRM в настройках модуля diff --git a/README.md b/README.md index 886da6b7..9d397da2 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ Prestashop module. ================= -Module allows integrate CMS Prestashop with [RetailCRM](https://www.retailcrm.pro) ([Documentation](https://docs.retailcrm.ru/Users/Integration/SiteModules/PrestaShop) page) +Module allows integrate CMS Prestashop with [Simla.com](https://www.retailcrm.pro) ([Documentation](https://docs.retailcrm.ru/Users/Integration/SiteModules/PrestaShop) page) #### Features: -* Export orders to RetailCRM & fetch changes back +* Export orders to Simla.com & fetch changes back * Export product catalog into [ICML](https://help.retailcrm.pro/Developers/ICML) format #### Setup @@ -22,7 +22,7 @@ Module allows integrate CMS Prestashop with [RetailCRM](https://www.retailcrm.pr #### Notice * This release contains an experimental feature "corporate customers". Use at your own risk. -* This release only supports RetailCRM API v5. +* This release only supports Simla.com API v5. #### Customization diff --git a/VERSION b/VERSION index bea438e9..47725433 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.3.1 +3.3.2 diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 35673cbf..f47d6f36 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -12,7 +12,7 @@ syntaxCheck="true" > - + tests tests/helpers diff --git a/retailcrm/lib/RetailcrmTools.php b/retailcrm/lib/RetailcrmTools.php index 95b4205e..444579b7 100644 --- a/retailcrm/lib/RetailcrmTools.php +++ b/retailcrm/lib/RetailcrmTools.php @@ -315,7 +315,7 @@ public static function getPhone($address, &$customer = array(), &$order = array( */ public static function validateCrmAddress($address) { - if (preg_match("/https:\/\/(.*).retailcrm.(pro|ru|es)/", $address) === 1) { + if (preg_match("/https:\/\/(.*).(retailcrm.(pro|ru|es)|simla.com)/", $address)) { return true; } diff --git a/retailcrm/lib/events/RetailcrmIcmlEvent.php b/retailcrm/lib/events/RetailcrmIcmlEvent.php index dc5c79ad..2bdc220b 100644 --- a/retailcrm/lib/events/RetailcrmIcmlEvent.php +++ b/retailcrm/lib/events/RetailcrmIcmlEvent.php @@ -61,10 +61,11 @@ public function execute() $job = new RetailcrmCatalog(); $data = $job->getData(); - if ($isMultiStoreActive) - $icmlFileName = 'retailcrm_' . $shop['id_shop'] . '.xml'; - else - $icmlFileName = 'retailcrm.xml'; + if ($isMultiStoreActive) { + $icmlFileName = 'simla_' . $shop['id_shop'] . '.xml'; + } else { + $icmlFileName = 'simla.xml'; + } $icml = new RetailcrmIcml($shop['name'], _PS_ROOT_DIR_ . '/' . $icmlFileName); $icml->generate($data[0], $data[1]); diff --git a/retailcrm/lib/templates/RetailcrmBaseTemplate.php b/retailcrm/lib/templates/RetailcrmBaseTemplate.php index b9978c22..b856e8cf 100644 --- a/retailcrm/lib/templates/RetailcrmBaseTemplate.php +++ b/retailcrm/lib/templates/RetailcrmBaseTemplate.php @@ -42,18 +42,18 @@ protected function buildParams() switch ($this->getCurrentLanguageISO()) { case 'ru': $promoVideoUrl = 'VEatkEGJfGw'; - $registerUrl = 'https://retailcrm.ru/signup?utm_source=prestashop&utm_medium=modul&utm_campaign=button-in-modul'; - $supportEmail = 'support@retailcrm.ru'; + $registerUrl = 'https://account.simla.com/lead-form/?cp=https%3A%2F%2Faccount.simla.com%2Flead-form%2F'; + $supportEmail = 'help@simla.com'; break; case 'es': $promoVideoUrl = 'LdJFoqOkLj8'; - $registerUrl = 'https://calendly.com/retailcrm_es/15min'; - $supportEmail = 'support@retailcrm.es'; + $registerUrl = 'https://account.simla.com/lead-form/?cp=https%3A%2F%2Faccount.simla.com%2Flead-form%2F'; + $supportEmail = 'help@simla.com'; break; default: $promoVideoUrl = 'wLjtULfZvOw'; - $registerUrl = 'https://calendly.com/retailcrm_es/15min'; - $supportEmail = 'support@retailcrm.pro'; + $registerUrl = 'https://account.simla.com/lead-form/?cp=https%3A%2F%2Faccount.simla.com%2Flead-form%2F'; + $supportEmail = 'help@simla.com'; break; } diff --git a/retailcrm/logo.gif b/retailcrm/logo.gif index 22e4b6da..14f67906 100644 Binary files a/retailcrm/logo.gif and b/retailcrm/logo.gif differ diff --git a/retailcrm/logo.png b/retailcrm/logo.png index 8db5a755..fe6cb43c 100644 Binary files a/retailcrm/logo.png and b/retailcrm/logo.png differ diff --git a/retailcrm/retailcrm.php b/retailcrm/retailcrm.php index 22312e5b..91cbc9e9 100644 --- a/retailcrm/retailcrm.php +++ b/retailcrm/retailcrm.php @@ -138,10 +138,10 @@ public function __construct() { $this->name = 'retailcrm'; $this->tab = 'export'; - $this->version = '3.3.1'; + $this->version = '3.3.2'; $this->author = 'DIGITAL RETAIL TECHNOLOGIES SL'; - $this->displayName = $this->l('retailCRM'); - $this->description = $this->l('Integration module for retailCRM'); + $this->displayName = $this->l('Simla.com'); + $this->description = $this->l('Integration module for Simla.com'); $this->confirmUninstall = $this->l('Are you sure you want to uninstall?'); $this->default_lang = (int) Configuration::get('PS_LANG_DEFAULT'); $this->default_currency = (int) Configuration::get('PS_CURRENCY_DEFAULT'); diff --git a/retailcrm/translations/es.php b/retailcrm/translations/es.php index 37442e6e..e032e686 100644 --- a/retailcrm/translations/es.php +++ b/retailcrm/translations/es.php @@ -2,8 +2,8 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{retailcrm}prestashop>retailcrm_b0edd77b179acca4cb3572c4393db254'] = 'RetailCRM'; -$_MODULE['<{retailcrm}prestashop>retailcrm_4aa0e53499eeb8383a6330c96b9ed7c3'] = 'Módulo de integración para RetailCRM'; +$_MODULE['<{retailcrm}prestashop>retailcrm_9b1e2d4b35252401dbdab3cbad2735c4'] = 'Simla.com'; +$_MODULE['<{retailcrm}prestashop>retailcrm_5e36a81536959d8cde52246dd15a6fca'] = 'Módulo de integración para Simla.com'; $_MODULE['<{retailcrm}prestashop>retailcrm_876f23178c29dc2552c0b48bf23cd9bd'] = '¿Está seguro de que desea eliminar el módulo?'; $_MODULE['<{retailcrm}prestashop>retailcrm_6bd461d1fc51b3294c6513cecc24758d'] = 'Los pedidos han sido cargados con éxito'; $_MODULE['<{retailcrm}prestashop>retailcrm_9a7fc06b4b2359f1f26f75fbbe27a3e8'] = 'No todos los pedidos se han cargado con existo'; @@ -23,13 +23,13 @@ $_MODULE['<{retailcrm}prestashop>retailcrm_9d3095e54f694bb41ef4a3e62ed90e7a'] = 'Tras 30 minutos'; $_MODULE['<{retailcrm}prestashop>retailcrm_dfb403fd86851c7d9f97706dff5a2327'] = 'Tras 45 minutos'; $_MODULE['<{retailcrm}prestashop>retailcrm_4b5e6470d5d85448fcd89c828352d25e'] = 'Tras 1 hora'; -$_MODULE['<{retailcrm}prestashop>index_f545947db05aa489f59babf06c319d06'] = 'RetailCRM es un servicio para tiendas online, el cual ayuda a dejar de perder pedidos y así mejorar las ganancias de tu comercio online en todas las etapas del embudo de ventas.'; -$_MODULE['<{retailcrm}prestashop>index_96f5fae5347f2f1cf560e71a30420fec'] = 'Tengo una cuenta en RetailCRM'; +$_MODULE['<{retailcrm}prestashop>index_dd259436b3f29f0ba1778d220b343ec9'] = 'Simla.com es un servicio para tiendas online, el cual ayuda a dejar de perder pedidos y así mejorar las ganancias de tu comercio online en todas las etapas del embudo de ventas.'; +$_MODULE['<{retailcrm}prestashop>index_c7476a92e20715b855d72b1786a71017'] = 'Tengo una cuenta en Simla.com'; $_MODULE['<{retailcrm}prestashop>index_e81c4e4f2b7b93b481e13a8553c2ae1b'] = 'o'; -$_MODULE['<{retailcrm}prestashop>index_20e2fe2cec9a2b77838b6a9f1c33f9a8'] = 'Solicitar demo gratis'; +$_MODULE['<{retailcrm}prestashop>index_560cb0d630a0067860713ce68126e777'] = 'Obtenga Simla.com gratis'; $_MODULE['<{retailcrm}prestashop>index_061b368c43f85d3fe2c7ccc842883a40'] = 'Configuración de la conexión'; -$_MODULE['<{retailcrm}prestashop>index_dc1128d67edd31d3b84e8f7fca5a99d5'] = 'URL de RetailCRM'; -$_MODULE['<{retailcrm}prestashop>index_656a6828d7ef1bb791e42087c4b5ee6e'] = 'Accesos API RetailCRM'; +$_MODULE['<{retailcrm}prestashop>index_22a65bd0ef1919aa4e6dee849a7a2925'] = 'URL de Simla.com'; +$_MODULE['<{retailcrm}prestashop>index_656a6828d7ef1bb791e42087c4b5ee6e'] = 'Accesos API Simla.com'; $_MODULE['<{retailcrm}prestashop>index_c9cc8cce247e49bae79f15173ce97354'] = 'Guardar'; $_MODULE['<{retailcrm}prestashop>index_b5a7adde1af5c87d7fd797b6245c2a39'] = 'Descripción'; $_MODULE['<{retailcrm}prestashop>index_9aa698f602b1e5694855cee73a683488'] = 'Contactos'; @@ -51,28 +51,28 @@ $_MODULE['<{retailcrm}prestashop>index_d2d8dd2103f64290845f5635ce185270'] = 'Las campañas de mailing, SMS, WhatsApp y Facebook Messenger incrementarán la frecuencia de compra de tus clientes actuales.'; $_MODULE['<{retailcrm}prestashop>index_b0e12648f812bedb79fe86c8f66cec8a'] = 'La regla “Productos de consumo regular” te ayuda a recordarle a tus clientes para que vuelvan a hacer la compra antes de que se les agoten sus productos.'; $_MODULE['<{retailcrm}prestashop>index_02f67e7fb237e6fa9eb746fa0f721e96'] = 'Reanima a clientes inactivos'; -$_MODULE['<{retailcrm}prestashop>index_d4e7ddb6e3a173af215897454957bcf4'] = 'Con ayuda de retargeting en el RetailCRM podrás iniciar campañas utilizando los segmentos de tu base de clientes.'; +$_MODULE['<{retailcrm}prestashop>index_68cd6fde983ce8c8eb0966bed76e7062'] = 'Con ayuda de retargeting en el Simla.com podrás iniciar campañas utilizando los segmentos de tu base de clientes.'; $_MODULE['<{retailcrm}prestashop>index_9f8f75ffd4d9e4f326576dfdc5570739'] = 'Las visitas con abandono te permiten registrar los productos que el cliente estaba viendo, así podrás proponerle completar su pedido.'; $_MODULE['<{retailcrm}prestashop>index_f78799eda5746aebce16dfbc6c824b71'] = 'Las campañas para reactivar clientes te ayudarán a recuperar a aquellos que se habían perdido y así lograr que vuelvan a tu tienda online.'; -$_MODULE['<{retailcrm}prestashop>index_fac198dfa48ac33fa2ef0f700704bd07'] = 'RetailCRM mejorará la efectividad de todos tus canales de marketing'; +$_MODULE['<{retailcrm}prestashop>index_7ac9b002ef2ce5608af086be3ad5f64f'] = 'Simla.com mejorará la efectividad de todos tus canales de marketing'; $_MODULE['<{retailcrm}prestashop>index_17b39a0118f63cf041abfb9d92d12414'] = 'LiveChat'; $_MODULE['<{retailcrm}prestashop>index_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email'; $_MODULE['<{retailcrm}prestashop>index_31f803c0e3b881bf2fc62b248c8aaace'] = 'Facebook Messenger'; $_MODULE['<{retailcrm}prestashop>index_4cecb21b44628b17c436739bf6301af2'] = 'SMS'; $_MODULE['<{retailcrm}prestashop>index_2ca3885b024c5983c60a69c6af0ecd28'] = 'Retargeting'; $_MODULE['<{retailcrm}prestashop>index_9d4f613c288a9cf21d59cc45f1d3dc2c'] = '¿Hay un trial del módulo?'; -$_MODULE['<{retailcrm}prestashop>index_27c375da85e47075069701476a531ed3'] = 'El módulo cuenta con una versión trial de 14 días en los cuales podrás trabajar con ayuda del módulo de RetailCRM.'; +$_MODULE['<{retailcrm}prestashop>index_cb3df13bcaec7d592664184af4e7ced0'] = 'El módulo cuenta con una versión trial de 14 días en los cuales podrás trabajar con ayuda del módulo de Simla.com.'; $_MODULE['<{retailcrm}prestashop>index_3b15dabe24b3ea13a55b08ca7abf1a94'] = '¿Qué es un usuario?'; -$_MODULE['<{retailcrm}prestashop>index_d6d69c8dc51f6034b3dd5e7c8fc8a8dd'] = 'Un usuario es la persona que trabajará con el módulo de RetailCRM es como el representante de tu negocio o tu web. Cada usuario puede crear un perfil personal y tener su propio acceso al panel de la herramienta.'; +$_MODULE['<{retailcrm}prestashop>index_374f84fbbde8e4a44f7e14ec12674ca7'] = 'Un usuario es la persona que trabajará con el módulo de Simla.com es como el representante de tu negocio o tu web. Cada usuario puede crear un perfil personal y tener su propio acceso al panel de la herramienta.'; $_MODULE['<{retailcrm}prestashop>index_65991f2dd292e02d64d248906dfe0f40'] = '¿En qué idiomas está disponible el módulo?'; -$_MODULE['<{retailcrm}prestashop>index_c4c2a259bf36c4d7e35ed76e17b1767e'] = 'El módulo de RetailCRM está disponible en los siguientes idiomas:'; +$_MODULE['<{retailcrm}prestashop>index_541564ed7677523fa5c81aa6fdcc02b8'] = 'El módulo de Simla.com está disponible en los siguientes idiomas:'; $_MODULE['<{retailcrm}prestashop>index_cb5480c32e71778852b08ae1e8712775'] = 'Español'; $_MODULE['<{retailcrm}prestashop>index_78463a384a5aa4fad5fa73e2f506ecfc'] = 'Inglés'; $_MODULE['<{retailcrm}prestashop>index_deba6920e70615401385fe1fb5a379ec'] = 'Ruso'; $_MODULE['<{retailcrm}prestashop>index_59064b34ae482528c8dbeb1b0214ee12'] = '¿Cuánto tiempo dura el trial?'; -$_MODULE['<{retailcrm}prestashop>index_442f474e43c70852c7373e629a110e80'] = 'El tiempo de duración de la versión trial del módulo de RetailCRM es de 14 días.'; +$_MODULE['<{retailcrm}prestashop>index_bcb8d16b6e37b22faead6f49af88f26c'] = 'El tiempo de duración de la versión trial del módulo de Simla.com es de 14 días.'; $_MODULE['<{retailcrm}prestashop>index_d8ff508a2fce371d8c36bd2bedbaecf6'] = '¿Se paga por usuario o se paga por cuenta?'; -$_MODULE['<{retailcrm}prestashop>index_150423abe7fe51d3cb228ce08dc8d578'] = 'El pago se realiza por usuario, si se agrega a otro usuario dentro del sistema de RetailCRM se realizaría el pago por dos usuarios. Cada usuario tiene derecho a una cuenta (web-chat y redes sociales). En caso de que un usuario necesite trabajar con más de una cuenta, es necesario ponerse en contacto con el equipo de RetailCRM.'; +$_MODULE['<{retailcrm}prestashop>index_83289ea1e091eba31c6b9d152381b285'] = 'El pago se realiza por usuario, si se agrega a otro usuario dentro del sistema de Simla.com se realizaría el pago por dos usuarios. Cada usuario tiene derecho a una cuenta (web-chat y redes sociales). En caso de que un usuario necesite trabajar con más de una cuenta, es necesario ponerse en contacto con el equipo de Simla.com.'; $_MODULE['<{retailcrm}prestashop>index_a833bd40df33cff491112eb9316fb050'] = '¿Cómo puedo realizar el pago?'; $_MODULE['<{retailcrm}prestashop>index_4889fefd090fe608a9b5403d02e2e97f'] = 'Los métodos para realizar el pago son:'; $_MODULE['<{retailcrm}prestashop>index_95428f32e5c696cf71baccb776bc5c15'] = 'Transferencia bancaria'; @@ -90,12 +90,12 @@ $_MODULE['<{retailcrm}prestashop>settings_71098155ccc0a0d6e0b501fbee37e7a9'] = 'LiveChat'; $_MODULE['<{retailcrm}prestashop>settings_9b6545e4cea9b4ad4979d41bb9170e2b'] = 'Avanzado'; $_MODULE['<{retailcrm}prestashop>settings_061b368c43f85d3fe2c7ccc842883a40'] = 'La configuración de la conexión'; -$_MODULE['<{retailcrm}prestashop>settings_dc1128d67edd31d3b84e8f7fca5a99d5'] = 'RetailCRM URL'; +$_MODULE['<{retailcrm}prestashop>settings_22a65bd0ef1919aa4e6dee849a7a2925'] = 'Simla.com URL'; $_MODULE['<{retailcrm}prestashop>settings_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API key'; $_MODULE['<{retailcrm}prestashop>settings_8ffa3281a35a0d80fef2cac0fa680523'] = 'Habilitar la carga del historial'; -$_MODULE['<{retailcrm}prestashop>settings_45a8dc9a5723d09c5ca9e8c0099953f7'] = 'Recibir las existencias del RetailCRM'; +$_MODULE['<{retailcrm}prestashop>settings_65dd9f6e8bf4eaf54c3dc96f011dade1'] = 'Recibir las existencias del Simla.com'; $_MODULE['<{retailcrm}prestashop>settings_f8d7c52aa84f358caedb96fda86809da'] = 'Permitir el soporte a clientes corporativos'; -$_MODULE['<{retailcrm}prestashop>settings_fc99a2d0d9dfa2b30ff86860d930d4ab'] = 'Activar solo si está habilitada la opción \"Clientes corporativos\" en RetailCRM'; +$_MODULE['<{retailcrm}prestashop>settings_6c3c1845e109a9ef67378effea0c0503'] = 'Activar solo si está habilitada la opción \"Clientes corporativos\" en Simla.com'; $_MODULE['<{retailcrm}prestashop>settings_917afe348e09163269225a89a825e634'] = 'Sincronización de carritos de compradores'; $_MODULE['<{retailcrm}prestashop>settings_d8e002d770b6f98af7b7ae9a0e5acfe9'] = 'Crear pedidos para carritos abandonados de compradores'; $_MODULE['<{retailcrm}prestashop>settings_35b5a9139a54caeb925556ceb2c38086'] = 'Estado del pedido para carritos abandonados de compradores'; @@ -107,11 +107,11 @@ $_MODULE['<{retailcrm}prestashop>settings_c0fd6d31d096a5845f1d1abb4c132b7d'] = 'Administrar estados de pedidos'; $_MODULE['<{retailcrm}prestashop>settings_dd53d9b3603b3279b25c74f6f3f189a4'] = 'Administrar tipos de pago'; $_MODULE['<{retailcrm}prestashop>settings_7dcc1208fa03381346955c6732d9ea85'] = 'Elige el tipo'; -$_MODULE['<{retailcrm}prestashop>settings_30a8be02b0e6e45988617eca94301966'] = 'Ingrese los ID de los pedidos para cargar en RetailCRM, divididos por una coma. También puede especificar rangos, como \"1-10\". Se permite subir hasta 10 pedidos a la vez.'; +$_MODULE['<{retailcrm}prestashop>settings_6f1f9a3e435963417d08849fbef139c1'] = 'Ingrese los ID de los pedidos para cargar en Simla.com, divididos por una coma. También puede especificar rangos, como \"1-10\". Se permite subir hasta 10 pedidos a la vez.'; $_MODULE['<{retailcrm}prestashop>settings_acfa058ec9e6e4745eddc0cae3f0f881'] = 'Identificador del pedido'; $_MODULE['<{retailcrm}prestashop>settings_91412465ea9169dfd901dd5e7c96dd99'] = 'Subir'; $_MODULE['<{retailcrm}prestashop>settings_f4af7f6987dfee28741ce77ff2d09d46'] = 'Exportar pedidos y clientes'; -$_MODULE['<{retailcrm}prestashop>settings_06d94a1c5dfe9d54ef201d2217ca477c'] = 'Puede exportar todos los pedidos y clientes de CMS a RetailCRM presionando el botón \"Exportar\". Este proceso puede llevar mucho tiempo y es necesario que mantenga la pestaña abierta hasta que termine.'; +$_MODULE['<{retailcrm}prestashop>settings_418faff1c9df0d297ff586ac3230be97'] = 'Puede exportar todos los pedidos y clientes de CMS a Simla.com presionando el botón \"Exportar\". Este proceso puede llevar mucho tiempo y es necesario que mantenga la pestaña abierta hasta que termine.'; $_MODULE['<{retailcrm}prestashop>settings_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Pedidos'; $_MODULE['<{retailcrm}prestashop>settings_e6d0e1c8fc6a4fcf47869df87e04cd88'] = 'Clientes'; $_MODULE['<{retailcrm}prestashop>settings_f8f36c02fa6f370808135c66cfc788aa'] = 'Clientes sin pedidos'; diff --git a/retailcrm/translations/ru.php b/retailcrm/translations/ru.php index 848e6edb..3e167f53 100644 --- a/retailcrm/translations/ru.php +++ b/retailcrm/translations/ru.php @@ -2,8 +2,8 @@ global $_MODULE; $_MODULE = array(); -$_MODULE['<{retailcrm}prestashop>retailcrm_b0edd77b179acca4cb3572c4393db254'] = 'RetailCRM'; -$_MODULE['<{retailcrm}prestashop>retailcrm_4aa0e53499eeb8383a6330c96b9ed7c3'] = 'Интеграционный модуль для RetailCRM'; +$_MODULE['<{retailcrm}prestashop>retailcrm_9b1e2d4b35252401dbdab3cbad2735c4'] = 'Simla.com'; +$_MODULE['<{retailcrm}prestashop>retailcrm_5e36a81536959d8cde52246dd15a6fca'] = 'Интеграционный модуль для Simla.com'; $_MODULE['<{retailcrm}prestashop>retailcrm_876f23178c29dc2552c0b48bf23cd9bd'] = 'Вы уверены, что хотите удалить модуль?'; $_MODULE['<{retailcrm}prestashop>retailcrm_6bd461d1fc51b3294c6513cecc24758d'] = 'Все заказы успешно загружены'; $_MODULE['<{retailcrm}prestashop>retailcrm_9a7fc06b4b2359f1f26f75fbbe27a3e8'] = 'Не все заказы загружены успешно'; @@ -23,13 +23,13 @@ $_MODULE['<{retailcrm}prestashop>retailcrm_9d3095e54f694bb41ef4a3e62ed90e7a'] = 'Через 30 минут'; $_MODULE['<{retailcrm}prestashop>retailcrm_dfb403fd86851c7d9f97706dff5a2327'] = 'Через 45 минут'; $_MODULE['<{retailcrm}prestashop>retailcrm_4b5e6470d5d85448fcd89c828352d25e'] = 'Через 1 час'; -$_MODULE['<{retailcrm}prestashop>index_f545947db05aa489f59babf06c319d06'] = 'RetailCRM — сервис для интернет магазинов, который поможет перестать терять заказы и увеличить доход на всех этапах воронки.'; -$_MODULE['<{retailcrm}prestashop>index_96f5fae5347f2f1cf560e71a30420fec'] = 'У меня уже есть аккаунт RetailCRM'; +$_MODULE['<{retailcrm}prestashop>index_dd259436b3f29f0ba1778d220b343ec9'] = 'Simla.com — сервис для интернет магазинов, который поможет перестать терять заказы и увеличить доход на всех этапах воронки.'; +$_MODULE['<{retailcrm}prestashop>index_c7476a92e20715b855d72b1786a71017'] = 'У меня уже есть аккаунт Simla.com'; $_MODULE['<{retailcrm}prestashop>index_e81c4e4f2b7b93b481e13a8553c2ae1b'] = 'или'; -$_MODULE['<{retailcrm}prestashop>index_20e2fe2cec9a2b77838b6a9f1c33f9a8'] = 'Получить RetailCRM бесплатно'; +$_MODULE['<{retailcrm}prestashop>index_560cb0d630a0067860713ce68126e777'] = 'Получить Simla.com бесплатно'; $_MODULE['<{retailcrm}prestashop>index_061b368c43f85d3fe2c7ccc842883a40'] = 'Настройка соединения'; -$_MODULE['<{retailcrm}prestashop>index_dc1128d67edd31d3b84e8f7fca5a99d5'] = 'URL адрес RetailCRM'; -$_MODULE['<{retailcrm}prestashop>index_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API ключ RetailCRM'; +$_MODULE['<{retailcrm}prestashop>index_22a65bd0ef1919aa4e6dee849a7a2925'] = 'URL адрес Simla.com'; +$_MODULE['<{retailcrm}prestashop>index_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API ключ Simla.com'; $_MODULE['<{retailcrm}prestashop>index_c9cc8cce247e49bae79f15173ce97354'] = 'Сохранить'; $_MODULE['<{retailcrm}prestashop>index_b5a7adde1af5c87d7fd797b6245c2a39'] = 'Описание'; $_MODULE['<{retailcrm}prestashop>index_9aa698f602b1e5694855cee73a683488'] = 'Контакты'; @@ -51,28 +51,28 @@ $_MODULE['<{retailcrm}prestashop>index_d2d8dd2103f64290845f5635ce185270'] = 'Рассылки в Email, SMS, WhatsApp и Facebook Messenger увеличат частоту покупок вашей клиентской базы'; $_MODULE['<{retailcrm}prestashop>index_b0e12648f812bedb79fe86c8f66cec8a'] = 'Сценарий \"Товары расходники\" поможет автоматически напоминать о необходимости пополнить запасы'; $_MODULE['<{retailcrm}prestashop>index_02f67e7fb237e6fa9eb746fa0f721e96'] = 'Возвращайте ушедших клиентов:'; -$_MODULE['<{retailcrm}prestashop>index_d4e7ddb6e3a173af215897454957bcf4'] = 'CRM-ремаркетинг поможет запускать рекламу, используя сегменты из RetailCRM'; +$_MODULE['<{retailcrm}prestashop>index_68cd6fde983ce8c8eb0966bed76e7062'] = 'CRM-ремаркетинг поможет запускать рекламу, используя сегменты из Simla.com'; $_MODULE['<{retailcrm}prestashop>index_9f8f75ffd4d9e4f326576dfdc5570739'] = 'Брошенный просмотр сохранит товары, которые клиент смотрел на сайте и предложит оплатить их'; $_MODULE['<{retailcrm}prestashop>index_f78799eda5746aebce16dfbc6c824b71'] = 'Реактивационные кампании будут возвращать потерянных клиентов обратно в ваш магазин'; -$_MODULE['<{retailcrm}prestashop>index_fac198dfa48ac33fa2ef0f700704bd07'] = 'RetailCRM повысит эффективность всех ваших маркетинговых каналов:'; +$_MODULE['<{retailcrm}prestashop>index_7ac9b002ef2ce5608af086be3ad5f64f'] = 'Simla.com повысит эффективность всех ваших маркетинговых каналов:'; $_MODULE['<{retailcrm}prestashop>index_17b39a0118f63cf041abfb9d92d12414'] = 'LiveChat'; $_MODULE['<{retailcrm}prestashop>index_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email'; $_MODULE['<{retailcrm}prestashop>index_31f803c0e3b881bf2fc62b248c8aaace'] = 'Facebook Messenger'; $_MODULE['<{retailcrm}prestashop>index_4cecb21b44628b17c436739bf6301af2'] = 'SMS'; $_MODULE['<{retailcrm}prestashop>index_2ca3885b024c5983c60a69c6af0ecd28'] = 'Ретаргетинг'; $_MODULE['<{retailcrm}prestashop>index_9d4f613c288a9cf21d59cc45f1d3dc2c'] = 'Существует ли ознакомительный период?'; -$_MODULE['<{retailcrm}prestashop>index_27c375da85e47075069701476a531ed3'] = 'Да. Существует 14-дневный ознакомительный период в рамках которого Вы можете ознакомиться с возможностями RetailCRM.'; +$_MODULE['<{retailcrm}prestashop>index_cb3df13bcaec7d592664184af4e7ced0'] = 'Да. Существует 14-дневный ознакомительный период в рамках которого Вы можете ознакомиться с возможностями Simla.com.'; $_MODULE['<{retailcrm}prestashop>index_3b15dabe24b3ea13a55b08ca7abf1a94'] = 'Кто такой пользователь?'; -$_MODULE['<{retailcrm}prestashop>index_d6d69c8dc51f6034b3dd5e7c8fc8a8dd'] = 'Пользователь - это сотрудник, который имеет доступ к RetailCRM в качестве представителя Вашего бизнеса или в качестве пользователя Вашего веб-сайта. Каждый пользователь имеет свой доступ к аккаунту RetailCRM.'; +$_MODULE['<{retailcrm}prestashop>index_374f84fbbde8e4a44f7e14ec12674ca7'] = 'Пользователь - это сотрудник, который имеет доступ к Simla.com в качестве представителя Вашего бизнеса или в качестве пользователя Вашего веб-сайта. Каждый пользователь имеет свой доступ к аккаунту Simla.com.'; $_MODULE['<{retailcrm}prestashop>index_65991f2dd292e02d64d248906dfe0f40'] = 'Какие языки доступны в модуле?'; -$_MODULE['<{retailcrm}prestashop>index_c4c2a259bf36c4d7e35ed76e17b1767e'] = 'Модуль RetailCRM переведён на следующие языки:'; +$_MODULE['<{retailcrm}prestashop>index_541564ed7677523fa5c81aa6fdcc02b8'] = 'Модуль Simla.com переведён на следующие языки:'; $_MODULE['<{retailcrm}prestashop>index_cb5480c32e71778852b08ae1e8712775'] = 'Испанский'; $_MODULE['<{retailcrm}prestashop>index_78463a384a5aa4fad5fa73e2f506ecfc'] = 'Английский'; $_MODULE['<{retailcrm}prestashop>index_deba6920e70615401385fe1fb5a379ec'] = 'Русский'; $_MODULE['<{retailcrm}prestashop>index_59064b34ae482528c8dbeb1b0214ee12'] = 'Как долго длится ознакомительный режим?'; -$_MODULE['<{retailcrm}prestashop>index_442f474e43c70852c7373e629a110e80'] = 'Длительность пробного режима составляет 14 дней'; +$_MODULE['<{retailcrm}prestashop>index_bcb8d16b6e37b22faead6f49af88f26c'] = 'Длительность пробного режима составляет 14 дней.'; $_MODULE['<{retailcrm}prestashop>index_d8ff508a2fce371d8c36bd2bedbaecf6'] = 'Оплата производится за пользователя или за аккаунт?'; -$_MODULE['<{retailcrm}prestashop>index_150423abe7fe51d3cb228ce08dc8d578'] = 'Оплата осуществляется за каждого пользователя. Если в систему будет добавлен новый пользователь за него так же будет взыматься оплата. Каждый пользователь имеет доступ к функциям онлайн-чата и социальных сетей. Если Вам нужен дополнительный аккаунт обратитесь к команде RetailCRM.'; +$_MODULE['<{retailcrm}prestashop>index_83289ea1e091eba31c6b9d152381b285'] = 'Оплата осуществляется за каждого пользователя. Если в систему будет добавлен новый пользователь за него так же будет взыматься оплата. Каждый пользователь имеет доступ к функциям онлайн-чата и социальных сетей. Если Вам нужен дополнительный аккаунт обратитесь к команде Simla.com.'; $_MODULE['<{retailcrm}prestashop>index_a833bd40df33cff491112eb9316fb050'] = 'Как я могу оплатить?'; $_MODULE['<{retailcrm}prestashop>index_4889fefd090fe608a9b5403d02e2e97f'] = 'Оплатить можно следующими способами:'; $_MODULE['<{retailcrm}prestashop>index_95428f32e5c696cf71baccb776bc5c15'] = 'Банковским переводом'; @@ -90,12 +90,12 @@ $_MODULE['<{retailcrm}prestashop>settings_71098155ccc0a0d6e0b501fbee37e7a9'] = 'Онлайн-консультант'; $_MODULE['<{retailcrm}prestashop>settings_9b6545e4cea9b4ad4979d41bb9170e2b'] = 'Дополнительно'; $_MODULE['<{retailcrm}prestashop>settings_061b368c43f85d3fe2c7ccc842883a40'] = 'Настройка соединения'; -$_MODULE['<{retailcrm}prestashop>settings_dc1128d67edd31d3b84e8f7fca5a99d5'] = 'URL адрес RetailCRM'; +$_MODULE['<{retailcrm}prestashop>settings_22a65bd0ef1919aa4e6dee849a7a2925'] = 'URL адрес Simla.com'; $_MODULE['<{retailcrm}prestashop>settings_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API-ключ'; $_MODULE['<{retailcrm}prestashop>settings_8ffa3281a35a0d80fef2cac0fa680523'] = 'Включить выгрузку истории'; -$_MODULE['<{retailcrm}prestashop>settings_45a8dc9a5723d09c5ca9e8c0099953f7'] = 'Получать остатки из RetailCRM'; +$_MODULE['<{retailcrm}prestashop>settings_65dd9f6e8bf4eaf54c3dc96f011dade1'] = 'Получать остатки из Simla.com'; $_MODULE['<{retailcrm}prestashop>settings_f8d7c52aa84f358caedb96fda86809da'] = 'Включить поддержку корпоративных клиентов'; -$_MODULE['<{retailcrm}prestashop>settings_fc99a2d0d9dfa2b30ff86860d930d4ab'] = 'Активировать только при включенной опции \"Корпоративные клиенты\" в RetailCRM'; +$_MODULE['<{retailcrm}prestashop>settings_6c3c1845e109a9ef67378effea0c0503'] = 'Активировать только при включенной опции \"Корпоративные клиенты\" в Simla.com'; $_MODULE['<{retailcrm}prestashop>settings_917afe348e09163269225a89a825e634'] = 'Синхронизация корзин покупателей'; $_MODULE['<{retailcrm}prestashop>settings_d8e002d770b6f98af7b7ae9a0e5acfe9'] = 'Создавать заказы для брошенных корзин покупателей'; $_MODULE['<{retailcrm}prestashop>settings_35b5a9139a54caeb925556ceb2c38086'] = 'Статус заказа для брошенных корзин покупателей'; @@ -107,11 +107,11 @@ $_MODULE['<{retailcrm}prestashop>settings_c0fd6d31d096a5845f1d1abb4c132b7d'] = 'Управление статусами заказов'; $_MODULE['<{retailcrm}prestashop>settings_dd53d9b3603b3279b25c74f6f3f189a4'] = 'Управление типами оплаты'; $_MODULE['<{retailcrm}prestashop>settings_7dcc1208fa03381346955c6732d9ea85'] = 'Выберите тип'; -$_MODULE['<{retailcrm}prestashop>settings_30a8be02b0e6e45988617eca94301966'] = 'Введите идентификаторы заказов для загрузки в RetailCRM, разделив их запятыми. Вы также можете указать диапазоны, например \"1-10\". Одновременно можно загружать до 10 заказов.'; +$_MODULE['<{retailcrm}prestashop>settings_6f1f9a3e435963417d08849fbef139c1'] = 'Введите идентификаторы заказов для загрузки в Simla.com, разделив их запятыми. Вы также можете указать диапазоны, например \"1-10\". Одновременно можно загружать до 10 заказов.'; $_MODULE['<{retailcrm}prestashop>settings_acfa058ec9e6e4745eddc0cae3f0f881'] = 'ID заказов'; $_MODULE['<{retailcrm}prestashop>settings_91412465ea9169dfd901dd5e7c96dd99'] = 'Выгрузить'; $_MODULE['<{retailcrm}prestashop>settings_f4af7f6987dfee28741ce77ff2d09d46'] = 'Экспортировать заказы и клиентов'; -$_MODULE['<{retailcrm}prestashop>settings_06d94a1c5dfe9d54ef201d2217ca477c'] = 'Вы можете экспортировать все заказы и клиентов из CMS в RetailCRM, нажав кнопку «Экспорт». Этот процесс может занять много времени, и до его завершения необходимо держать вкладку открытой.'; +$_MODULE['<{retailcrm}prestashop>settings_418faff1c9df0d297ff586ac3230be97'] = 'Вы можете экспортировать все заказы и клиентов из CMS в Simla.com, нажав кнопку «Экспорт». Этот процесс может занять много времени, и до его завершения необходимо держать вкладку открытой.'; $_MODULE['<{retailcrm}prestashop>settings_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Заказы'; $_MODULE['<{retailcrm}prestashop>settings_e6d0e1c8fc6a4fcf47869df87e04cd88'] = 'Клиенты'; $_MODULE['<{retailcrm}prestashop>settings_f8f36c02fa6f370808135c66cfc788aa'] = 'Клиенты без заказов'; diff --git a/retailcrm/upgrade/upgrade-3.3.2.php b/retailcrm/upgrade/upgrade-3.3.2.php new file mode 100644 index 00000000..fb66fd41 --- /dev/null +++ b/retailcrm/upgrade/upgrade-3.3.2.php @@ -0,0 +1,169 @@ + + * @copyright 2020 DIGITAL RETAIL TECHNOLOGIES SL + * @license https://opensource.org/licenses/MIT The MIT License + * + * Don't forget to prefix your containers with your own identifier + * to avoid any conflicts with others containers. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +/** + * Upgrade module to version 3.3.2 + * + * @param \RetailCRM $module + * + * @return bool + */ +function upgrade_module_3_3_2($module) +{ + if ('retailcrm' != $module->name) { + return false; + } + + $isMultiStoreActive = Shop::isFeatureActive(); + + if ($isMultiStoreActive) { + $shops = Shop::getShops(); + } else { + $shops[] = Shop::getContext(); + } + + foreach ($shops as $shop) { + RetailcrmTools::setShopContext(intval($shop['id_shop'])); + $api = RetailcrmTools::getApiClient(); + + if (empty($api)) { + RetailcrmLogger::writeCaller(__METHOD__, 'Set api key & url first'); + continue; + } + + if ($isMultiStoreActive) { + $oldFile = _PS_ROOT_DIR_ . '/' . 'retailcrm_' . $shop['id_shop'] . '.xml'; + $newFile = _PS_ROOT_DIR_ . '/' . 'simla_' . $shop['id_shop'] . '.xml'; + } else { + $oldFile = _PS_ROOT_DIR_ . '/' . 'retailcrm.xml'; + $newFile = _PS_ROOT_DIR_ . '/' . 'simla.xml'; + } + + if (file_exists($oldFile) && !file_exists($newFile)) { + rename($oldFile, $newFile); + } else { + if (!file_exists($oldFile)) { + RetailcrmLogger::writeDebug( + __METHOD__, + sprintf( + 'Old ICML file [%s] not exist', + $oldFile + ) + ); + } + + if (file_exists($newFile)) { + RetailcrmLogger::writeDebug( + __METHOD__, + sprintf( + 'New ICML file [%s] already exists', + $newFile + ) + ); + } + } + + try { + $response = $api->credentials(); + } catch (\RetailCrm\Exception\CurlException $e) { + RetailcrmLogger::writeCaller( + __METHOD__, + sprintf( + 'Connection error: %s', + $e->getMessage() + ) + ); + } + + if (!$response->isSuccessful() + || $response['siteAccess'] !== 'access_selective' + || count($response['sitesAvailable']) !== 1 + || !in_array('/api/reference/sites', $response['credentials']) + || !in_array('/api/reference/sites/{code}/edit', $response['credentials']) + ) { + RetailcrmLogger::writeCaller( + __METHOD__, + sprintf( + 'ShopID=%s: Error with CRM credentials: need an valid apiKey assigned to one certain site', + $shop['id_shop'] + ) + ); + continue; + } + + try { + $response = $api->sitesList(); + } catch (\RetailCrm\Exception\CurlException $e) { + RetailcrmLogger::writeCaller( + __METHOD__, + sprintf( + 'Connection error: %s', + $e->getMessage() + ) + ); + } + + if ($response->isSuccessful() && $response['sites']) { + $crmSite = current($response['sites']); + $site = $crmSite['code']; + $oldYmlUrl = $crmSite['ymlUrl']; + $newYmlUrl = str_replace('/retailcrm', '/simla', $oldYmlUrl); + + try { + $response = $api->sitesEdit([ + 'code' => $site, + 'ymlUrl' => $newYmlUrl, + ]); + } catch (\RetailCrm\Exception\CurlException $e) { + RetailcrmLogger::writeCaller( + __METHOD__, + sprintf( + 'Connection error: %s', + $e->getMessage() + ) + ); + } + } + } + + return true; +} diff --git a/retailcrm/views/templates/admin/index.tpl b/retailcrm/views/templates/admin/index.tpl index 3c62558e..4a09a316 100644 --- a/retailcrm/views/templates/admin/index.tpl +++ b/retailcrm/views/templates/admin/index.tpl @@ -38,33 +38,25 @@ -RetailCRM +Simla.com
{include file='./module_messages.tpl'}
-

RetailCRM

+

Simla.com

- {l s='RetailCRM is a service for online stores that can prevent you from losing orders and increase the income at all stages of the funnel.' mod='retailcrm'} -
-
- -
- - - -
+ {l s='Simla.com is a service for online stores that can prevent you from losing orders and increase the income at all stages of the funnel.' mod='retailcrm'}
{l s='Connection Settings' mod='retailcrm'}
- +
@@ -83,7 +75,7 @@

- {l s='RetailCRM is a service for online stores that can prevent you from losing orders and increase the income at all stages of the funnel.' mod='retailcrm'} + {l s='Simla.com is a service for online stores that can prevent you from losing orders and increase the income at all stages of the funnel.' mod='retailcrm'}

{l s='Stop losing leads:' mod='retailcrm'} @@ -122,12 +114,12 @@ {l s='Make your customers come back:' mod='retailcrm'}

    -
  • {l s='CRM-remarketing helps to launch ads using RetailCRM segments' mod='retailcrm'}
  • +
  • {l s='CRM-remarketing helps to launch ads using Simla.com segments' mod='retailcrm'}
  • {l s='Abandoned viewing saves the goods that the client looked at the website and offers to pay for them' mod='retailcrm'}
  • {l s='Reactivation campaigns make lost customers come back to your store' mod='retailcrm'}

- {l s='RetailCRM increases the effectiveness of all your marketing channels:' mod='retailcrm'} + {l s='Simla.com increases the effectiveness of all your marketing channels:' mod='retailcrm'}

  • {l s='LiveChat' mod='retailcrm'}
  • @@ -142,15 +134,15 @@
    {l s='Is there a trial of the module?' mod='retailcrm'}
    -
    {l s='The module has a 14-day trial version in which you can work with the help of the RetailCRM module.' mod='retailcrm'}
    +
    {l s='The module has a 14-day trial version in which you can work with the help of the Simla.com module.' mod='retailcrm'}
    {l s='What is a user?' mod='retailcrm'}
    -
    {l s='A user is the person who will work with the RetailCRM module as the representative of your business or your website. Each user can create a personal profile and have their own access to the tool panel.' mod='retailcrm'}
    +
    {l s='A user is the person who will work with the Simla.com module as the representative of your business or your website. Each user can create a personal profile and have their own access to the tool panel.' mod='retailcrm'}
    {l s='In what languages is the module available?' mod='retailcrm'}
    -
    {l s='The RetailCRM module is available in the following languages:' mod='retailcrm'} +
    {l s='The Simla.com module is available in the following languages:' mod='retailcrm'}
    • {l s='Spanish' mod='retailcrm'}
    • {l s='English' mod='retailcrm'}
    • @@ -162,11 +154,11 @@
      {l s='How long is the trial?' mod='retailcrm'}
      -
      {l s='The duration of the trial version of the RetailCRM module is 14 days.' mod='retailcrm'}
      +
      {l s='The duration of the trial version of the Simla.com module is 14 days.' mod='retailcrm'}
      {l s='Is it paid per user or is it paid per account?' mod='retailcrm'}
      -
      {l s='Payment is made per user, if another user is added to the RetailCRM system, payment by two users would be made. Each user has the right to an account (web-chat and social networks). In case a user needs to work with more than one account, it is necessary to contact the RetailCRM team.' mod='retailcrm'}
      +
      {l s='Payment is made per user, if another user is added to the Simla.com system, payment by two users would be made. Each user has the right to an account (web-chat and social networks). In case a user needs to work with more than one account, it is necessary to contact the Simla.com team.' mod='retailcrm'}
      {l s='How I can pay?' mod='retailcrm'}
      diff --git a/retailcrm/views/templates/admin/settings.tpl b/retailcrm/views/templates/admin/settings.tpl index f2ecf2e1..cacfccc7 100644 --- a/retailcrm/views/templates/admin/settings.tpl +++ b/retailcrm/views/templates/admin/settings.tpl @@ -42,7 +42,7 @@ -RetailCRM +Simla.com