parent
a66ec1d663
commit
d9cdfced49
@ -1,3 +1,6 @@
|
|||||||
|
## 2024-01-09 v.6.5.5
|
||||||
|
- Исправлен вывод справочников при установке модуля
|
||||||
|
|
||||||
## 2023-12-29 v.6.5.4
|
## 2023-12-29 v.6.5.4
|
||||||
- Исправлена передача адреса доставки
|
- Исправлена передача адреса доставки
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
- Исправлена передача адреса доставки
|
- Исправлен вывод справочников при установке модуля
|
||||||
|
@ -89,6 +89,7 @@ class intaro_retailcrm extends CModule
|
|||||||
public $CLIENT_ID = 'client_id';
|
public $CLIENT_ID = 'client_id';
|
||||||
public $PROTOCOL = 'protocol';
|
public $PROTOCOL = 'protocol';
|
||||||
public $INSTALL_PATH;
|
public $INSTALL_PATH;
|
||||||
|
public $SITES_AVAILABLE = 'sites_available';
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
@ -376,15 +377,21 @@ class intaro_retailcrm extends CModule
|
|||||||
if (count($arResult['arSites']) > 1) {
|
if (count($arResult['arSites']) > 1) {
|
||||||
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0);
|
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0);
|
||||||
$api_key = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, 0);
|
$api_key = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, 0);
|
||||||
|
$isEmptySites = true;
|
||||||
|
|
||||||
foreach ($arResult['arSites'] as $site) {
|
foreach ($arResult['arSites'] as $site) {
|
||||||
$siteCode[$site['LID']] = null;
|
$siteCode[$site['LID']] = null;
|
||||||
|
|
||||||
if ($_POST['sites-id-' . $site['LID']] && !empty($_POST['sites-id-' . $site['LID']])) {
|
if ($_POST['sites-id-' . $site['LID']] && !empty($_POST['sites-id-' . $site['LID']])) {
|
||||||
$siteCode[$site['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $site['LID']]));
|
$siteCode[$site['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $site['LID']]));
|
||||||
|
$isEmptySites = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($isEmptySites) {
|
||||||
|
$arResult['errCode'] = 'ERR_EMPTY_SITES_LIST';
|
||||||
|
}
|
||||||
|
|
||||||
$arResult['arCurrencySites'] = RCrmActions::getCurrencySites();
|
$arResult['arCurrencySites'] = RCrmActions::getCurrencySites();
|
||||||
$result = $this->getReferenceShops($api_host, $api_key);
|
$result = $this->getReferenceShops($api_host, $api_key);
|
||||||
|
|
||||||
@ -397,9 +404,11 @@ class intaro_retailcrm extends CModule
|
|||||||
foreach ($arResult['arSites'] as $bitrixSite) {
|
foreach ($arResult['arSites'] as $bitrixSite) {
|
||||||
$LID = $bitrixSite['LID'] ?? null;
|
$LID = $bitrixSite['LID'] ?? null;
|
||||||
$cmsCurrency = $arResult['arCurrencySites'][$LID] ?? null;
|
$cmsCurrency = $arResult['arCurrencySites'][$LID] ?? null;
|
||||||
$crmCurrency = $arResult['sitesList'][$siteCode[$LID]]['currency'] ?? null;
|
|
||||||
|
|
||||||
$arResult['errCode'] = CurrencyService::validateCurrency($cmsCurrency, $crmCurrency);
|
if (isset($arResult['sitesList'][$siteCode[$LID]])) {
|
||||||
|
$crmCurrency = $arResult['sitesList'][$siteCode[$LID]]['currency'] ?? null;
|
||||||
|
$arResult['errCode'] = CurrencyService::validateCurrency($cmsCurrency, $crmCurrency);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($arResult['arSites']) != count($siteCode)) {
|
if (count($arResult['arSites']) != count($siteCode)) {
|
||||||
@ -453,6 +462,25 @@ class intaro_retailcrm extends CModule
|
|||||||
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, $api_host);
|
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, $api_host);
|
||||||
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, $api_key);
|
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, $api_key);
|
||||||
COption::SetOptionString($this->MODULE_ID, $this->CRM_SITES_LIST, serialize([]));
|
COption::SetOptionString($this->MODULE_ID, $this->CRM_SITES_LIST, serialize([]));
|
||||||
|
|
||||||
|
try {
|
||||||
|
$credentials = $this->RETAIL_CRM_API->getCredentials();
|
||||||
|
|
||||||
|
COption::SetOptionString(
|
||||||
|
$this->MODULE_ID,
|
||||||
|
$this->SITES_AVAILABLE,
|
||||||
|
$credentials->sitesAvailable[0] ?? ''
|
||||||
|
);
|
||||||
|
} catch (ArgumentOutOfRangeException | CurlException $exception) {
|
||||||
|
$arResult['errCode'] = 'ERR_GET_SITE_CRM';
|
||||||
|
|
||||||
|
$APPLICATION->IncludeAdminFile(
|
||||||
|
GetMessage('MODULE_INSTALL_TITLE'), $this->INSTALL_PATH . '/step1.php'
|
||||||
|
);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$arModuleVersion = [
|
$arModuleVersion = [
|
||||||
'VERSION' => '6.5.4',
|
'VERSION' => '6.5.5',
|
||||||
'VERSION_DATE' => '2023-12-29 15:00:00'
|
'VERSION_DATE' => '2024-01-09 15:30:00'
|
||||||
];
|
];
|
||||||
|
@ -11,7 +11,8 @@ $MESS ['ERR_403'] = 'Wrong apiKey.';
|
|||||||
$MESS ['ERR_0'] = 'Server connection timeout error.';
|
$MESS ['ERR_0'] = 'Server connection timeout error.';
|
||||||
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
|
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
|
||||||
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Check availability of API methods for current key.';
|
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Check availability of API methods for current key.';
|
||||||
//$MESS ['URL_NOT_FOUND'] = 'One or more sites have empty "server URL" field.';
|
$MESS ['ERR_EMPTY_SITES_LIST'] = 'At least 1 store must be matched';
|
||||||
|
$MESS ['ERR_GET_SITE_CRM'] = 'Failed to retrieve CRM store';
|
||||||
$MESS ['INFO_1'] = 'Enter the address of RetailCRM instance (for example, https://demo.retailcrm.ru) and API key.';
|
$MESS ['INFO_1'] = 'Enter the address of RetailCRM instance (for example, https://demo.retailcrm.ru) and API key.';
|
||||||
$MESS ['INFO_2'] = 'API key can be generated when the store is registered in RetailCRM (Administration > Integration).';
|
$MESS ['INFO_2'] = 'API key can be generated when the store is registered in RetailCRM (Administration > Integration).';
|
||||||
$MESS ['INFO_3'] = 'Store code in 1C-Bitrix must correspond with the store code in RetailCRM (Administration > Stores).';
|
$MESS ['INFO_3'] = 'Store code in 1C-Bitrix must correspond with the store code in RetailCRM (Administration > Stores).';
|
||||||
|
@ -8,6 +8,7 @@ $MESS ['ERR_6'] = 'CRM address may be incorrect.';
|
|||||||
$MESS ['ERR_403'] = 'Wrong apiKey.';
|
$MESS ['ERR_403'] = 'Wrong apiKey.';
|
||||||
$MESS ['ERR_0'] = 'Server connection timeout error.';
|
$MESS ['ERR_0'] = 'Server connection timeout error.';
|
||||||
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
|
$MESS ['ERR_FIELDS_API_HOST'] = 'Fields are filled incorrectly.';
|
||||||
|
$MESS ['ERR_EMPTY_SITES_LIST'] = 'At least 1 store must be matched';
|
||||||
$MESS ['INFO_1'] = 'Set the correspondence between 1C-Bitrix and RetailCRM stores.';
|
$MESS ['INFO_1'] = 'Set the correspondence between 1C-Bitrix and RetailCRM stores.';
|
||||||
$MESS ['INFO_2'] = 'All your stores in RetailCRM must have a common API key!';
|
$MESS ['INFO_2'] = 'All your stores in RetailCRM must have a common API key!';
|
||||||
$MESS ['ERR_CURRENCY_SITES'] = 'The currency of the site differs from the currency of the store in CRM.
|
$MESS ['ERR_CURRENCY_SITES'] = 'The currency of the site differs from the currency of the store in CRM.
|
||||||
|
@ -11,12 +11,14 @@ $MESS ['ERR_403'] = 'Неверный apiKey.';
|
|||||||
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
|
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
|
||||||
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
|
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
|
||||||
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.';
|
$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.';
|
||||||
|
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Необходимо соотнести по крайней мере 1 магазин';
|
||||||
$MESS ['ERR_COUNT_SITES'] = 'Введенный вами API Ключ относится более чем к одному магазину.
|
$MESS ['ERR_COUNT_SITES'] = 'Введенный вами API Ключ относится более чем к одному магазину.
|
||||||
Измените настройки доступа для API ключа, он должен работать только с одним магазином в CRM';
|
Измените настройки доступа для API ключа, он должен работать только с одним магазином в CRM';
|
||||||
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.
|
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.
|
||||||
Для корректной работы интеграции, валюты в CRM и CMS должны совпадать';
|
Для корректной работы интеграции, валюты в CRM и CMS должны совпадать';
|
||||||
$MESS ['ERR_CMS_CURRENCY'] = 'Не удалось получить валюту сайта Bitrix';
|
$MESS ['ERR_CMS_CURRENCY'] = 'Не удалось получить валюту сайта Bitrix';
|
||||||
$MESS ['ERR_CRM_CURRENCY'] = 'Не удалось получить валюту магазина CRM';
|
$MESS ['ERR_CRM_CURRENCY'] = 'Не удалось получить валюту магазина CRM';
|
||||||
|
$MESS ['ERR_GET_SITE_CRM'] = 'Не удалось получить магазин CRM';
|
||||||
$MESS ['INFO_1'] = 'Введите адрес экземпляра RetailCRM (например, https://demo.retailcrm.ru) и API-ключ.';
|
$MESS ['INFO_1'] = 'Введите адрес экземпляра RetailCRM (например, https://demo.retailcrm.ru) и API-ключ.';
|
||||||
$MESS ['INFO_2'] = 'API-ключ можно сгенерировать при регистрации магазина в RetailCRM (Администрирование > Интеграция).';
|
$MESS ['INFO_2'] = 'API-ключ можно сгенерировать при регистрации магазина в RetailCRM (Администрирование > Интеграция).';
|
||||||
$MESS ['INFO_3'] = 'Код сайта в 1С-Битрикс должен совпадать с кодом сайта в RetailCRM (Администрирование > Магазины).';
|
$MESS ['INFO_3'] = 'Код сайта в 1С-Битрикс должен совпадать с кодом сайта в RetailCRM (Администрирование > Магазины).';
|
||||||
|
@ -8,6 +8,7 @@ $MESS ['ERR_6'] = 'Возможно неверно введен адрес Retai
|
|||||||
$MESS ['ERR_403'] = 'Неверный apiKey.';
|
$MESS ['ERR_403'] = 'Неверный apiKey.';
|
||||||
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
|
$MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.';
|
||||||
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
|
$MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.';
|
||||||
|
$MESS ['ERR_EMPTY_SITES_LIST'] = 'Необходимо соотнести по крайней мере 1 магазин';
|
||||||
$MESS ['INFO_1'] = 'Задайте соответствия между Вашими магазинами в 1С-Битрикс и RetailCRM.';
|
$MESS ['INFO_1'] = 'Задайте соответствия между Вашими магазинами в 1С-Битрикс и RetailCRM.';
|
||||||
$MESS ['INFO_2'] = 'У всех Ваших магазинов в RetailCRM должен быть общий API-ключ!';
|
$MESS ['INFO_2'] = 'У всех Ваших магазинов в RetailCRM должен быть общий API-ключ!';
|
||||||
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.
|
$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM.
|
||||||
|
Loading…
Reference in New Issue
Block a user