diff --git a/intaro.retailcrm/install/index.php b/intaro.retailcrm/install/index.php index efb794a6..240669b3 100644 --- a/intaro.retailcrm/install/index.php +++ b/intaro.retailcrm/install/index.php @@ -1488,7 +1488,7 @@ class intaro_retailcrm extends CModule $res['errCode'] = 'ERR_COUNT_SITES'; } - if (count($bitrixSites) === 1 ) { + if (!isset($res['errCode']) && count($bitrixSites) === 1 ) { $currentCurrency = $bitrixBaseCurrency; $LID = $bitrixSites[0]['LID']; diff --git a/intaro.retailcrm/lang/ru/install/step1.php b/intaro.retailcrm/lang/ru/install/step1.php index d115e151..8d0634e7 100644 --- a/intaro.retailcrm/lang/ru/install/step1.php +++ b/intaro.retailcrm/lang/ru/install/step1.php @@ -11,8 +11,10 @@ $MESS ['ERR_403'] = 'Неверный apiKey.'; $MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.'; $MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.'; $MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.'; -$MESS ['ERR_COUNT_SITES'] = 'По введенному ключу апи доступно больше одного магазина!'; -$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM!'; +$MESS ['ERR_COUNT_SITES'] = 'Введенный вами API Ключ относится более чем к одному магазину. +Измените настройки доступа для API ключа. Он должен работать только с одним магазином в CRM.'; +$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM. +Настройте валюты в CRM и CMS для корректной работы интеграции.'; //$MESS ['URL_NOT_FOUND'] = 'В настройках одного или нескольких сайтов не заполнено поле "URL сервера".'; $MESS ['INFO_1'] = 'Введите адрес экземпляра RetailCRM (например, https://demo.retailcrm.ru) и API-ключ.'; $MESS ['INFO_2'] = 'API-ключ можно сгенерировать при регистрации магазина в RetailCRM (Администрирование > Интеграция).'; diff --git a/intaro.retailcrm/lang/ru/options.php b/intaro.retailcrm/lang/ru/options.php index 81da3d5c..d6559ee3 100644 --- a/intaro.retailcrm/lang/ru/options.php +++ b/intaro.retailcrm/lang/ru/options.php @@ -27,8 +27,10 @@ $MESS ['ORDER_UPLOAD_INFO'] = 'Для загрузки всех заказов $MESS ['INTEGRATION_PAYMENT_LIST'] = 'Для интеграционных оплат статус не передаётся'; $MESS ['INTEGRATIONS'] = ' (интеграционная)'; -$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM!'; -$MESS ['ERR_COUNT_SITES'] = 'По введенному ключу апи доступно больше одного магазина!'; +$MESS ['ERR_COUNT_SITES'] = 'Введенный вами API Ключ относится более чем к одному магазину. +Измените настройки доступа для API ключа. Он должен работать только с одним магазином в CRM.'; +$MESS ['ERR_CURRENCY_SITES'] = 'Валюта сайта отличается от валюты магазина в CRM. +Настройте валюты в CRM и CMS для корректной работы интеграции.'; $MESS ['ICRM_OPTIONS_SUBMIT_TITLE'] = 'Сохранить настройки'; $MESS ['ICRM_OPTIONS_SUBMIT_VALUE'] = 'Сохранить'; diff --git a/intaro.retailcrm/options.php b/intaro.retailcrm/options.php index 50f4215b..c961c487 100644 --- a/intaro.retailcrm/options.php +++ b/intaro.retailcrm/options.php @@ -1068,8 +1068,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { $errorsText[] = GetMessage('ERR_COUNT_SITES'); } - if ($arResult['arSites'] > 1) { + if (count($arResult['arSites']) > 1) { foreach ($optionsSitesList as $LID => $crmCode) { + if (empty($crmCode)) { + continue; + } + $currentCurrency = $baseCurrency; if (isset($arResult['arCurrencySites'][$LID])) { @@ -1091,12 +1095,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { $crmSite = reset($arResult['sitesList']); if ($currentCurrency !== $crmSite['currency']) { - $errorsText[] = GetMessage('ERR_CURRENCY_SITES') . '(' . $crmSite['name'] . ')'; + $errorsText[] = GetMessage('ERR_CURRENCY_SITES') . ' (' . $crmSite['name'] . ')'; } } - if (preg_match('/&errc=ERR_(.*)/is', $uri, $matches)){ - $errorsText[] = $matches[1]; + if (preg_match('/&errc=ERR_(.*)/is', $APPLICATION->GetCurUri(), $matches)){ + $errorsText[] = urldecode($matches[1]); } $customFields = [['code' => '__default_empty_value__', 'name' => GetMessage('SELECT_VALUE')]]; @@ -1511,15 +1515,15 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { - - + + - - + + 1): ?>