1
0
mirror of synced 2024-11-24 06:16:29 +03:00

ref #93680 Рефакторинг настроек и установки модуля, добавление переводов в настройках модуля (#351)

This commit is contained in:
Kocmonavtik 2024-06-21 11:37:07 +03:00 committed by GitHub
parent 0550d8ffba
commit 1ab3dacaf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 252 additions and 336 deletions

View File

@ -1,3 +1,6 @@
## 2024-06-20 v.6.5.20
- Рефакторинг настроек модуля
## 2024-06-14 v.6.5.19 ## 2024-06-14 v.6.5.19
- Исправление работы программы лояльности при использовании подтверждения списание бонусов по SMS - Исправление работы программы лояльности при использовании подтверждения списание бонусов по SMS

View File

@ -1 +1 @@
- Исправление работы программы лояльности при использовании Подтверждения списание бонусов по SMS - Рефакторинг настроек модуля

View File

@ -47,48 +47,7 @@ class intaro_retailcrm extends CModule
public $PARTNER_URI; public $PARTNER_URI;
public $RETAIL_CRM_API; public $RETAIL_CRM_API;
public $RETAIL_CRM_EXPORT = 'retailcrm'; public $RETAIL_CRM_EXPORT = 'retailcrm';
public $CRM_API_HOST_OPTION = 'api_host';
public $CRM_API_KEY_OPTION = 'api_key';
public $CRM_SITES_LIST = 'sites_list';
public $CRM_ORDER_TYPES_ARR = 'order_types_arr';
public $CRM_DELIVERY_TYPES_ARR = 'deliv_types_arr';
public $CRM_DELIVERY_SERVICES_ARR = 'deliv_services_arr';
public $CRM_INTEGRATION_DELIVERY = 'integration_delivery';
public $CRM_PAYMENT_TYPES = 'pay_types_arr';
public $CRM_PAYMENT_STATUSES = 'pay_statuses_arr';
public $CRM_PAYMENT = 'payment_arr';
public $CRM_INTEGRATION_PAYMENT = 'integration_payment';
public $CRM_ORDER_LAST_ID = 'order_last_id';
public $CRM_ORDER_PROPS = 'order_props';
public $CRM_LEGAL_DETAILS = 'legal_details';
public $CRM_CONTRAGENT_TYPE = 'contragent_type';
public $CRM_ORDER_DISCHARGE = 'order_discharge';
public $CRM_ORDER_FAILED_IDS = 'order_failed_ids';
public $CRM_ORDER_HISTORY = 'order_history';
public $CRM_CUSTOMER_HISTORY = 'customer_history';
public $CRM_CATALOG_BASE_PRICE = 'catalog_base_price';
public $CRM_ORDER_NUMBERS = 'order_numbers';
public $CRM_CANSEL_ORDER = 'cansel_order';
public $CRM_CURRENCY = 'currency';
public $CRM_ADDRESS_OPTIONS = 'address_options';
public $CRM_INVENTORIES_UPLOAD = 'inventories_upload';
public $CRM_STORES = 'stores';
public $CRM_SHOPS = 'shops';
public $CRM_IBLOCKS_INVENTORIES = 'iblocks_inventories';
public $CRM_PRICES_UPLOAD = 'prices_upload';
public $CRM_PRICES = 'prices';
public $CRM_PRICE_SHOPS = 'price_shops';
public $CRM_IBLOCKS_PRICES = 'iblock_prices';
public $CRM_COLLECTOR = 'collector';
public $CRM_COLL_KEY = 'coll_key';
public $CRM_UA = 'ua';
public $CRM_UA_KEYS = 'ua_keys';
public $CRM_API_VERSION = 'api_version';
public $HISTORY_TIME = 'history_time';
public $CLIENT_ID = 'client_id';
public $PROTOCOL = 'protocol';
public $INSTALL_PATH; public $INSTALL_PATH;
public $SITES_AVAILABLE = 'sites_available';
public function __construct() public function __construct()
{ {
@ -195,7 +154,8 @@ class intaro_retailcrm extends CModule
include($this->INSTALL_PATH . '/../classes/general/RestNormalizer.php'); include($this->INSTALL_PATH . '/../classes/general/RestNormalizer.php');
include($this->INSTALL_PATH . '/../classes/general/Logger.php'); include($this->INSTALL_PATH . '/../classes/general/Logger.php');
include($this->INSTALL_PATH . '/../classes/general/services/RetailCrmService.php'); include($this->INSTALL_PATH . '/../classes/general/services/RetailCrmService.php');
$version = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_VERSION, 0); include($this->INSTALL_PATH . '/../lib/component/constants.php');
$version = COption::GetOptionString($this->MODULE_ID, Constants::CRM_API_VERSION, 0);
include($this->INSTALL_PATH . '/../classes/general/ApiClient_v5.php'); include($this->INSTALL_PATH . '/../classes/general/ApiClient_v5.php');
include($this->INSTALL_PATH . '/../classes/general/order/RetailCrmOrder_v5.php'); include($this->INSTALL_PATH . '/../classes/general/order/RetailCrmOrder_v5.php');
include($this->INSTALL_PATH . '/../classes/general/history/RetailCrmHistory_v5.php'); include($this->INSTALL_PATH . '/../classes/general/history/RetailCrmHistory_v5.php');
@ -238,7 +198,6 @@ class intaro_retailcrm extends CModule
include($this->INSTALL_PATH . '/../lib/repository/tomodulerepository.php'); include($this->INSTALL_PATH . '/../lib/repository/tomodulerepository.php');
include($this->INSTALL_PATH . '/../lib/model/bitrix/orm/tomodule.php'); include($this->INSTALL_PATH . '/../lib/model/bitrix/orm/tomodule.php');
include($this->INSTALL_PATH . '/../lib/model/bitrix/agreement.php'); include($this->INSTALL_PATH . '/../lib/model/bitrix/agreement.php');
include($this->INSTALL_PATH . '/../lib/component/constants.php');
include($this->INSTALL_PATH . '/../lib/repository/agreementrepository.php'); include($this->INSTALL_PATH . '/../lib/repository/agreementrepository.php');
include($this->INSTALL_PATH . '/../lib/service/orderloyaltydataservice.php'); include($this->INSTALL_PATH . '/../lib/service/orderloyaltydataservice.php');
include($this->INSTALL_PATH . '/../lib/service/currencyservice.php'); include($this->INSTALL_PATH . '/../lib/service/currencyservice.php');
@ -275,10 +234,10 @@ class intaro_retailcrm extends CModule
$arResult['errCode'] = 'ERR_CATALOG'; $arResult['errCode'] = 'ERR_CATALOG';
} }
if ($api_host = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_API_HOST_OPTION, 0)) { if ($api_host = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_API_HOST_OPTION , 0)) {
$arResult['API_HOST'] = $api_host; $arResult['API_HOST'] = $api_host;
} }
if ($api_key = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_API_KEY_OPTION, 0)) { if ($api_key = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_API_KEY_OPTION, 0)) {
$arResult['API_KEY'] = $api_key; $arResult['API_KEY'] = $api_key;
} }
@ -307,8 +266,8 @@ class intaro_retailcrm extends CModule
return false; return false;
} }
$api_host = htmlspecialchars(trim($_POST[$this->CRM_API_HOST_OPTION])); $api_host = htmlspecialchars(trim($_POST[Constants::CRM_API_HOST_OPTION]));
$api_key = htmlspecialchars(trim($_POST[$this->CRM_API_KEY_OPTION])); $api_key = htmlspecialchars(trim($_POST[Constants::CRM_API_KEY_OPTION]));
// form correct url // form correct url
$api_host = parse_url($api_host); $api_host = parse_url($api_host);
@ -341,10 +300,10 @@ class intaro_retailcrm extends CModule
return false; return false;
} }
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, $api_host); COption::SetOptionString($this->MODULE_ID, Constants::CRM_API_HOST_OPTION, $api_host);
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, $api_key); COption::SetOptionString($this->MODULE_ID, Constants::CRM_API_KEY_OPTION, $api_key);
if ($sites_list = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_SITES_LIST, 0)) { if ($sites_list = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_SITES_LIST, 0)) {
$arResult['SITES_LIST'] = unserialize($sites_list); $arResult['SITES_LIST'] = unserialize($sites_list);
} }
@ -373,8 +332,8 @@ class intaro_retailcrm extends CModule
$arResult['arSites'] = RCrmActions::getSitesList(); $arResult['arSites'] = RCrmActions::getSitesList();
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, Constants::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, Constants::CRM_API_KEY_OPTION, 0);
$isEmptySites = true; $isEmptySites = true;
foreach ($arResult['arSites'] as $site) { foreach ($arResult['arSites'] as $site) {
@ -422,10 +381,10 @@ class intaro_retailcrm extends CModule
} }
$this->RETAIL_CRM_API = new ApiClient($api_host, $api_key); $this->RETAIL_CRM_API = new ApiClient($api_host, $api_key);
COption::SetOptionString($this->MODULE_ID, $this->CRM_SITES_LIST, serialize($siteCode)); COption::SetOptionString($this->MODULE_ID, Constants::CRM_SITES_LIST, serialize($siteCode));
} else { } else {
$api_host = htmlspecialchars(trim($_POST[$this->CRM_API_HOST_OPTION])); $api_host = htmlspecialchars(trim($_POST[Constants::CRM_API_HOST_OPTION]));
$api_key = htmlspecialchars(trim($_POST[$this->CRM_API_KEY_OPTION])); $api_key = htmlspecialchars(trim($_POST[Constants::CRM_API_KEY_OPTION]));
// form correct url // form correct url
$api_host = parse_url($api_host); $api_host = parse_url($api_host);
@ -457,16 +416,16 @@ class intaro_retailcrm extends CModule
} }
$this->RETAIL_CRM_API = new ApiClient($api_host, $api_key); $this->RETAIL_CRM_API = new ApiClient($api_host, $api_key);
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, $api_host); COption::SetOptionString($this->MODULE_ID, Constants::CRM_API_HOST_OPTION, $api_host);
COption::SetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, $api_key); COption::SetOptionString($this->MODULE_ID, Constants::CRM_API_KEY_OPTION, $api_key);
COption::SetOptionString($this->MODULE_ID, $this->CRM_SITES_LIST, serialize([])); COption::SetOptionString($this->MODULE_ID, Constants::CRM_SITES_LIST, serialize([]));
try { try {
$credentials = $this->RETAIL_CRM_API->getCredentials(); $credentials = $this->RETAIL_CRM_API->getCredentials();
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->SITES_AVAILABLE, Constants::SITES_AVAILABLE,
$credentials->sitesAvailable[0] ?? '' $credentials->sitesAvailable[0] ?? ''
); );
} catch (ArgumentOutOfRangeException | CurlException $exception) { } catch (ArgumentOutOfRangeException | CurlException $exception) {
@ -552,19 +511,19 @@ class intaro_retailcrm extends CModule
//bitrix statusesList --statuses //bitrix statusesList --statuses
$arResult['bitrixStatusesList'] = RCrmActions::StatusesList(); $arResult['bitrixStatusesList'] = RCrmActions::StatusesList();
if ($order_types = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_ORDER_TYPES_ARR, 0)) { if ($order_types = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_ORDER_TYPES_ARR, 0)) {
$arResult['ORDER_TYPES'] = array_flip(unserialize($order_types)); $arResult['ORDER_TYPES'] = array_flip(unserialize($order_types));
} }
if ($delivery_types = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_DELIVERY_TYPES_ARR, 0)) { if ($delivery_types = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_DELIVERY_TYPES_ARR, 0)) {
$arResult['DELIVERY_TYPES'] = array_flip(unserialize($delivery_types)); $arResult['DELIVERY_TYPES'] = array_flip(unserialize($delivery_types));
} }
if ($payment_types = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_PAYMENT_TYPES, 0)) { if ($payment_types = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_PAYMENT_TYPES, 0)) {
$arResult['PAYMENT_TYPES'] = array_flip(unserialize($payment_types)); $arResult['PAYMENT_TYPES'] = array_flip(unserialize($payment_types));
} }
if ($payment_statuses = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_PAYMENT_STATUSES, 0)) { if ($payment_statuses = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_PAYMENT_STATUSES, 0)) {
$arResult['PAYMENT_STATUSES'] = array_flip(unserialize($payment_statuses)); $arResult['PAYMENT_STATUSES'] = array_flip(unserialize($payment_statuses));
} }
if ($payment = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_PAYMENT, 0)) { if ($payment = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_PAYMENT, 0)) {
$arResult['PAYMENT'] = array_flip(unserialize($payment)); $arResult['PAYMENT'] = array_flip(unserialize($payment));
} }
@ -583,8 +542,8 @@ class intaro_retailcrm extends CModule
} }
// api load // api load
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString($this->MODULE_ID, Constants::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, Constants::CRM_API_KEY_OPTION, 0);
$this->RETAIL_CRM_API = new ApiClient($api_host, $api_key); $this->RETAIL_CRM_API = new ApiClient($api_host, $api_key);
$useCrmOrderMethods = htmlspecialchars(trim($_POST['use_crm_order_methods'])) === 'Y' ? 'Y' : 'N'; $useCrmOrderMethods = htmlspecialchars(trim($_POST['use_crm_order_methods'])) === 'Y' ? 'Y' : 'N';
@ -698,16 +657,16 @@ class intaro_retailcrm extends CModule
$request = Application::getInstance()->getContext()->getRequest(); $request = Application::getInstance()->getContext()->getRequest();
if ($request->isHttps() === true) { if ($request->isHttps() === true) {
COption::SetOptionString($this->MODULE_ID, $this->PROTOCOL, 'https://'); COption::SetOptionString($this->MODULE_ID, Constants::PROTOCOL, 'https://');
} else { } else {
COption::SetOptionString($this->MODULE_ID, $this->PROTOCOL, 'http://'); COption::SetOptionString($this->MODULE_ID, Constants::PROTOCOL, 'http://');
} }
// Set order types // Set order types
if (!empty($orderTypesArr)) { if (!empty($orderTypesArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_ORDER_TYPES_ARR, Constants::CRM_ORDER_TYPES_ARR,
serialize(RCrmActions::clearArr($orderTypesArr) serialize(RCrmActions::clearArr($orderTypesArr)
) )
); );
@ -717,7 +676,7 @@ class intaro_retailcrm extends CModule
if (!empty($deliveryTypesArr)) { if (!empty($deliveryTypesArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_DELIVERY_TYPES_ARR, Constants::CRM_DELIVERY_TYPES_ARR,
serialize(RCrmActions::clearArr($deliveryTypesArr) serialize(RCrmActions::clearArr($deliveryTypesArr)
) )
); );
@ -727,7 +686,7 @@ class intaro_retailcrm extends CModule
if (!empty($paymentTypesArr)) { if (!empty($paymentTypesArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_PAYMENT_TYPES, Constants::CRM_PAYMENT_TYPES,
serialize(RCrmActions::clearArr($paymentTypesArr) serialize(RCrmActions::clearArr($paymentTypesArr)
) )
); );
@ -737,7 +696,7 @@ class intaro_retailcrm extends CModule
if (!empty($paymentStatusesArr)) { if (!empty($paymentStatusesArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_PAYMENT_STATUSES, Constants::CRM_PAYMENT_STATUSES,
serialize(RCrmActions::clearArr($paymentStatusesArr) serialize(RCrmActions::clearArr($paymentStatusesArr)
) )
); );
@ -747,33 +706,33 @@ class intaro_retailcrm extends CModule
if (!empty($paymentArr)) { if (!empty($paymentArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_PAYMENT, Constants::CRM_PAYMENT,
serialize(RCrmActions::clearArr($paymentArr) serialize(RCrmActions::clearArr($paymentArr)
) )
); );
} }
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, 0); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID, 0);
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_DISCHARGE, 1); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_DISCHARGE, 1);
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_FAILED_IDS, serialize([])); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_FAILED_IDS, serialize([]));
// Set cansel order // Set cansel order
if (!empty($canselOrderArr)) { if (!empty($canselOrderArr)) {
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_CANSEL_ORDER, Constants::CRM_CANCEL_ORDER,
serialize(RCrmActions::clearArr($canselOrderArr) serialize(RCrmActions::clearArr($canselOrderArr)
) )
); );
} }
if ($orderProps = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_ORDER_PROPS, 0)) { if ($orderProps = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_ORDER_PROPS, 0)) {
$arResult['ORDER_PROPS'] = unserialize($orderProps); $arResult['ORDER_PROPS'] = unserialize($orderProps);
} }
if ($legalDetails = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_LEGAL_DETAILS, 0)) { if ($legalDetails = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_LEGAL_DETAILS, 0)) {
$arResult['LEGAL_DETAILS'] = unserialize($legalDetails); $arResult['LEGAL_DETAILS'] = unserialize($legalDetails);
} }
if ($contragentType = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_CONTRAGENT_TYPE, 0)) { if ($contragentType = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_CONTRAGENT_TYPE, 0)) {
$arResult['CONTRAGENT_TYPES'] = unserialize($contragentType); $arResult['CONTRAGENT_TYPES'] = unserialize($contragentType);
} }
@ -801,7 +760,7 @@ class intaro_retailcrm extends CModule
$this->loadDeps(); $this->loadDeps();
RetailCrmOrder::uploadOrders(); // each 50 RetailCrmOrder::uploadOrders(); // each 50
$lastUpOrderId = COption::GetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, 0); $lastUpOrderId = COption::GetOptionString($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID, 0);
$countLeft = (int) OrderTable::getCount(['>ID' => $lastUpOrderId]); $countLeft = (int) OrderTable::getCount(['>ID' => $lastUpOrderId]);
$countAll = (int) OrderTable::getCount(); $countAll = (int) OrderTable::getCount();
@ -873,10 +832,10 @@ class intaro_retailcrm extends CModule
$contragentTypeArr[$orderType['ID']] = htmlspecialchars(trim($_POST['contragent-type-' . $orderType['ID']])); $contragentTypeArr[$orderType['ID']] = htmlspecialchars(trim($_POST['contragent-type-' . $orderType['ID']]));
} }
COption::SetOptionString($this->MODULE_ID, $this->CRM_ADDRESS_OPTIONS, serialize($addressDetailOptions)); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ADDRESS_OPTIONS, serialize($addressDetailOptions));
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_PROPS, serialize(RCrmActions::clearArr($orderPropsArr))); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_PROPS, serialize(RCrmActions::clearArr($orderPropsArr)));
COption::SetOptionString($this->MODULE_ID, $this->CRM_LEGAL_DETAILS, serialize(RCrmActions::clearArr($legalDetailsArr))); COption::SetOptionString($this->MODULE_ID, Constants::CRM_LEGAL_DETAILS, serialize(RCrmActions::clearArr($legalDetailsArr)));
COption::SetOptionString($this->MODULE_ID, $this->CRM_CONTRAGENT_TYPE, serialize(RCrmActions::clearArr($contragentTypeArr))); COption::SetOptionString($this->MODULE_ID, Constants::CRM_CONTRAGENT_TYPE, serialize(RCrmActions::clearArr($contragentTypeArr)));
$APPLICATION->IncludeAdminFile( $APPLICATION->IncludeAdminFile(
GetMessage('MODULE_INSTALL_TITLE'), $this->INSTALL_PATH . '/step4.php' GetMessage('MODULE_INSTALL_TITLE'), $this->INSTALL_PATH . '/step4.php'
@ -914,12 +873,12 @@ class intaro_retailcrm extends CModule
$arResult['errCode'] = 'ERR_SALE'; $arResult['errCode'] = 'ERR_SALE';
} }
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString($this->MODULE_ID, Constants::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, Constants::CRM_API_KEY_OPTION, 0);
$api = new ApiClient($api_host, $api_key); $api = new ApiClient($api_host, $api_key);
$customerH = $this->historyLoad($api, 'customersHistory'); $customerH = $this->historyLoad($api, 'customersHistory');
COption::SetOptionString($this->MODULE_ID, $this->CRM_CUSTOMER_HISTORY, $customerH); COption::SetOptionString($this->MODULE_ID, Constants::CRM_CUSTOMERS_HISTORY_SINCE_ID, $customerH);
//new data //new data
if ($historyDate = COption::GetOptionString($this->OLD_MODULE_ID, 'order_history_date', 0)) { if ($historyDate = COption::GetOptionString($this->OLD_MODULE_ID, 'order_history_date', 0)) {
@ -948,10 +907,10 @@ class intaro_retailcrm extends CModule
$orderH = $this->historyLoad($api, 'ordersHistory'); $orderH = $this->historyLoad($api, 'ordersHistory');
} }
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_HISTORY, $orderH); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_HISTORY, $orderH);
if ($orderLastId = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_ORDER_LAST_ID, 0)) { if ($orderLastId = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_ORDER_LAST_ID, 0)) {
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, $orderLastId); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID, $orderLastId);
} else { } else {
$dbOrder = OrderTable::GetList([ $dbOrder = OrderTable::GetList([
'order' => ['ID' => 'DESC'], 'order' => ['ID' => 'DESC'],
@ -960,14 +919,14 @@ class intaro_retailcrm extends CModule
]); ]);
$arOrder = $dbOrder->fetch(); $arOrder = $dbOrder->fetch();
if (!empty($arOrder['ID'])) { if (!empty($arOrder['ID'])) {
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, $arOrder['ID']); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID, $arOrder['ID']);
} else { } else {
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, 0); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID, 0);
} }
} }
if ($orderFailedIds = COption::GetOptionString($this->OLD_MODULE_ID, $this->CRM_ORDER_FAILED_IDS, 0)) { if ($orderFailedIds = COption::GetOptionString($this->OLD_MODULE_ID, Constants::CRM_ORDER_FAILED_IDS, 0)) {
COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_FAILED_IDS, $orderFailedIds); COption::SetOptionString($this->MODULE_ID, Constants::CRM_ORDER_FAILED_IDS, $orderFailedIds);
} }
$arResult['PRICE_TYPES'] = []; $arResult['PRICE_TYPES'] = [];
@ -1140,11 +1099,11 @@ class intaro_retailcrm extends CModule
RegisterModuleDependences('main', 'OnAfterUserAdd', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserAdd'); RegisterModuleDependences('main', 'OnAfterUserAdd', $this->MODULE_ID, 'RetailCrmEvent', 'OnAfterUserAdd');
COption::SetOptionString($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE, htmlspecialchars(trim($_POST['price-types']))); COption::SetOptionString($this->MODULE_ID, Constants::CRM_CATALOG_BASE_PRICE, htmlspecialchars(trim($_POST['price-types'])));
COption::SetOptionString($this->MODULE_ID, $this->CRM_INVENTORIES_UPLOAD, 'N'); COption::SetOptionString($this->MODULE_ID, Constants::CRM_INVENTORIES_UPLOAD, 'N');
COption::SetOptionString($this->MODULE_ID, $this->CRM_PRICES_UPLOAD, 'N'); COption::SetOptionString($this->MODULE_ID, Constants::CRM_PRICES_UPLOAD, 'N');
COption::SetOptionString($this->MODULE_ID, $this->CRM_COLLECTOR, 'N'); COption::SetOptionString($this->MODULE_ID, Constants::CRM_COLLECTOR, 'N');
COption::SetOptionString($this->MODULE_ID, $this->CRM_UA, 'N'); COption::SetOptionString($this->MODULE_ID, Constants::CRM_UA, 'N');
//agent //agent
$dateAgent = new DateTime(); $dateAgent = new DateTime();
@ -1164,7 +1123,7 @@ class intaro_retailcrm extends CModule
$this->CopyFiles(); $this->CopyFiles();
COption::RemoveOption($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CATALOG_BASE_PRICE);
if ( if (
file_exists($_SERVER['DOCUMENT_ROOT'] file_exists($_SERVER['DOCUMENT_ROOT']
@ -1217,7 +1176,7 @@ class intaro_retailcrm extends CModule
COption::SetOptionString( COption::SetOptionString(
$this->MODULE_ID, $this->MODULE_ID,
$this->CRM_CATALOG_BASE_PRICE . '_' . $profileId, Constants::CRM_CATALOG_BASE_PRICE . '_' . $profileId,
htmlspecialchars(trim($_POST['price-types'])) htmlspecialchars(trim($_POST['price-types']))
); );
@ -1239,8 +1198,8 @@ class intaro_retailcrm extends CModule
CCatalogExport::PreGenerateExport($profileId); CCatalogExport::PreGenerateExport($profileId);
} }
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString($this->MODULE_ID, Constants::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, Constants::CRM_API_KEY_OPTION, 0);
$this->RETAIL_CRM_API = new ApiClient($api_host, $api_key); $this->RETAIL_CRM_API = new ApiClient($api_host, $api_key);
RCrmActions::sendConfiguration($this->RETAIL_CRM_API); RCrmActions::sendConfiguration($this->RETAIL_CRM_API);
@ -1255,9 +1214,6 @@ class intaro_retailcrm extends CModule
{ {
global $APPLICATION; global $APPLICATION;
$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);
require_once($this->INSTALL_PATH . '/../classes/general/Http/Client.php'); require_once($this->INSTALL_PATH . '/../classes/general/Http/Client.php');
require_once($this->INSTALL_PATH . '/../classes/general/Response/ApiResponse.php'); require_once($this->INSTALL_PATH . '/../classes/general/Response/ApiResponse.php');
require_once($this->INSTALL_PATH . '/../classes/general/Exception/InvalidJsonException.php'); require_once($this->INSTALL_PATH . '/../classes/general/Exception/InvalidJsonException.php');
@ -1270,51 +1226,54 @@ class intaro_retailcrm extends CModule
require_once($this->INSTALL_PATH . '/../lib/component/constants.php'); require_once($this->INSTALL_PATH . '/../lib/component/constants.php');
require_once($this->INSTALL_PATH . '/../classes/general/cart/RetailCrmCart_v5.php'); require_once($this->INSTALL_PATH . '/../classes/general/cart/RetailCrmCart_v5.php');
$api_host = COption::GetOptionString($this->MODULE_ID, Constants::CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($this->MODULE_ID, Constants::CRM_API_KEY_OPTION, 0);
RCrmActions::sendConfiguration(new ApiClient($api_host, $api_key), false); RCrmActions::sendConfiguration(new ApiClient($api_host, $api_key), false);
CAgent::RemoveAgent('RCrmActions::orderAgent();', $this->MODULE_ID); CAgent::RemoveAgent('RCrmActions::orderAgent();', $this->MODULE_ID);
CAgent::RemoveAgent('RetailCrmInventories::inventoriesUpload();', $this->MODULE_ID); CAgent::RemoveAgent('RetailCrmInventories::inventoriesUpload();', $this->MODULE_ID);
CAgent::RemoveAgent('RetailCrmPrices::pricesUpload();', $this->MODULE_ID); CAgent::RemoveAgent('RetailCrmPrices::pricesUpload();', $this->MODULE_ID);
COption::RemoveOption($this->MODULE_ID, $this->CRM_API_HOST_OPTION); COption::RemoveOption($this->MODULE_ID, Constants::CRM_API_HOST_OPTION);
COption::RemoveOption($this->MODULE_ID, $this->CRM_API_KEY_OPTION); COption::RemoveOption($this->MODULE_ID, Constants::CRM_API_KEY_OPTION);
COption::RemoveOption($this->MODULE_ID, $this->CRM_DELIVERY_TYPES_ARR); COption::RemoveOption($this->MODULE_ID, Constants::CRM_DELIVERY_TYPES_ARR);
COption::RemoveOption($this->MODULE_ID, $this->CRM_INTEGRATION_DELIVERY); COption::RemoveOption($this->MODULE_ID, Constants::CRM_INTEGRATION_DELIVERY);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT_TYPES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PAYMENT_TYPES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT_STATUSES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PAYMENT_STATUSES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PAYMENT); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PAYMENT);
COption::RemoveOption($this->MODULE_ID, $this->CRM_INTEGRATION_PAYMENT); COption::RemoveOption($this->MODULE_ID, Constants::CRM_INTEGRATION_PAYMENT);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_LAST_ID); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_LAST_ID);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_PROPS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_PROPS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_TYPES_ARR); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_TYPES_ARR);
COption::RemoveOption($this->MODULE_ID, $this->CRM_LEGAL_DETAILS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_LEGAL_DETAILS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_CONTRAGENT_TYPE); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CONTRAGENT_TYPE);
COption::RemoveOption($this->MODULE_ID, $this->CRM_SITES_LIST); COption::RemoveOption($this->MODULE_ID, Constants::CRM_SITES_LIST);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_DISCHARGE); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_DISCHARGE);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_FAILED_IDS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_FAILED_IDS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_CUSTOMER_HISTORY); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CUSTOMERS_HISTORY_SINCE_ID);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_HISTORY); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_HISTORY);
COption::RemoveOption($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CATALOG_BASE_PRICE);
COption::RemoveOption($this->MODULE_ID, $this->CRM_CURRENCY); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CURRENCY);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ADDRESS_OPTIONS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ADDRESS_OPTIONS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_ORDER_NUMBERS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_NUMBERS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_CANSEL_ORDER); COption::RemoveOption($this->MODULE_ID, Constants::CRM_CANCEL_ORDER);
COption::RemoveOption($this->MODULE_ID, $this->CRM_INVENTORIES_UPLOAD); COption::RemoveOption($this->MODULE_ID, Constants::CRM_INVENTORIES_UPLOAD);
COption::RemoveOption($this->MODULE_ID, $this->CRM_STORES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_STORES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_SHOPS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_SHOPS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_IBLOCKS_INVENTORIES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_IBLOCKS_INVENTORIES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PRICES_UPLOAD); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PRICES_UPLOAD);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PRICES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PRICES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_PRICE_SHOPS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_PRICE_SHOPS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_IBLOCKS_PRICES); COption::RemoveOption($this->MODULE_ID, Constants::CRM_IBLOCKS_PRICES);
COption::RemoveOption($this->MODULE_ID, $this->CRM_COLLECTOR); COption::RemoveOption($this->MODULE_ID, Constants::CRM_COLLECTOR);
COption::RemoveOption($this->MODULE_ID, $this->CRM_COLL_KEY); COption::RemoveOption($this->MODULE_ID, Constants::CRM_COLL_KEY);
COption::RemoveOption($this->MODULE_ID, $this->CRM_UA); COption::RemoveOption($this->MODULE_ID, Constants::CRM_UA);
COption::RemoveOption($this->MODULE_ID, $this->CRM_UA_KEYS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_UA_KEYS);
COption::RemoveOption($this->MODULE_ID, $this->CRM_API_VERSION); COption::RemoveOption($this->MODULE_ID, Constants::CRM_API_VERSION);
COption::RemoveOption($this->MODULE_ID, $this->HISTORY_TIME); COption::RemoveOption($this->MODULE_ID, Constants::HISTORY_TIME);
COption::RemoveOption($this->MODULE_ID, $this->CLIENT_ID); COption::RemoveOption($this->MODULE_ID, Constants::CLIENT_ID);
COption::RemoveOption($this->MODULE_ID, $this->PROTOCOL); COption::RemoveOption($this->MODULE_ID, Constants::PROTOCOL);
COption::RemoveOption($this->MODULE_ID, Constants::MATCHED_CUSTOM_PROPS); COption::RemoveOption($this->MODULE_ID, Constants::MATCHED_CUSTOM_PROPS);
COption::RemoveOption($this->MODULE_ID, Constants::MATCHED_CUSTOM_USER_FIELDS); COption::RemoveOption($this->MODULE_ID, Constants::MATCHED_CUSTOM_USER_FIELDS);
COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_METHODS); COption::RemoveOption($this->MODULE_ID, Constants::CRM_ORDER_METHODS);

View File

@ -1,4 +1,7 @@
<?php <?php
use Intaro\RetailCrm\Component\Constants;
IncludeModuleLangFile(__FILE__); IncludeModuleLangFile(__FILE__);
if (isset($arResult['errCode']) && $arResult['errCode']) { if (isset($arResult['errCode']) && $arResult['errCode']) {
@ -11,12 +14,8 @@
} }
} }
$MODULE_ID = 'intaro.retailcrm'; $arResult['API_HOST'] = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_HOST_OPTION);
$CRM_API_HOST_OPTION = 'api_host'; $arResult['API_KEY'] = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_KEY_OPTION);
$CRM_API_KEY_OPTION = 'api_key';
$arResult['API_HOST'] = COption::GetOptionString($MODULE_ID, $CRM_API_HOST_OPTION);
$arResult['API_KEY'] = COption::GetOptionString($MODULE_ID, $CRM_API_KEY_OPTION);
?> ?>
<div class="adm-detail-content-item-block"> <div class="adm-detail-content-item-block">

View File

@ -1,29 +1,20 @@
<?php <?php
use Intaro\RetailCrm\Component\ConfigProvider; use Intaro\RetailCrm\Component\ConfigProvider;
use Intaro\RetailCrm\Component\Constants;
use RetailCrm\ApiClient; use RetailCrm\ApiClient;
/** @var $APPLICATION */ /** @var $APPLICATION */
IncludeModuleLangFile(__FILE__); IncludeModuleLangFile(__FILE__);
$MODULE_ID = 'intaro.retailcrm'; $api_host = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_HOST_OPTION, 0);
$CRM_API_HOST_OPTION = 'api_host'; $api_key = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_KEY_OPTION, 0);
$CRM_API_KEY_OPTION = 'api_key';
$CRM_SITES_LIST= 'sites_list';
$CRM_PAYMENT_TYPES = 'pay_types_arr';
$CRM_DELIVERY_TYPES_ARR = 'deliv_types_arr';
$CRM_PAYMENT_TYPES = 'pay_types_arr';
$CRM_PAYMENT_STATUSES = 'pay_statuses_arr';
$CRM_PAYMENT = 'payment_arr';
$CRM_ORDER_TYPES_ARR = 'order_types_arr';
$api_host = COption::GetOptionString($MODULE_ID, $CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($MODULE_ID, $CRM_API_KEY_OPTION, 0);
$arResult['arSites'] = RCrmActions::getSitesList(); $arResult['arSites'] = RCrmActions::getSitesList();
$RETAIL_CRM_API = new ApiClient($api_host, $api_key); $RETAIL_CRM_API = new ApiClient($api_host, $api_key);
COption::SetOptionString($MODULE_ID, $CRM_API_HOST_OPTION, $api_host); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_API_HOST_OPTION, $api_host);
COption::SetOptionString($MODULE_ID, $CRM_API_KEY_OPTION, $api_key); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_API_KEY_OPTION, $api_key);
$availableSites = RetailcrmConfigProvider::getSitesList(); $availableSites = RetailcrmConfigProvider::getSitesList();
@ -35,15 +26,15 @@ if (!empty($availableSites)) {
} }
if (count($arResult['arSites']) === 1) { if (count($arResult['arSites']) === 1) {
COption::SetOptionString($MODULE_ID, $CRM_SITES_LIST, serialize([])); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_SITES_LIST, serialize([]));
} }
if (!isset($arResult['PAYMENT'])) { if (!isset($arResult['PAYMENT'])) {
$arResult['PAYMENT'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_PAYMENT, 0)); $arResult['PAYMENT'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_PAYMENT, 0));
} }
if (!isset($arResult['ORDER_TYPES'])) { if (!isset($arResult['ORDER_TYPES'])) {
$arResult['ORDER_TYPES'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_ORDER_TYPES_ARR, 0)); $arResult['ORDER_TYPES'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_ORDER_TYPES_ARR, 0));
} }
if (!isset($arResult['paymentTypesList'])) { if (!isset($arResult['paymentTypesList'])) {
@ -52,7 +43,7 @@ if (!isset($arResult['paymentTypesList'])) {
$availableSites, $availableSites,
$RETAIL_CRM_API->paymentTypesList()->paymentTypes $RETAIL_CRM_API->paymentTypesList()->paymentTypes
); );
$arResult['PAYMENT_TYPES'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_PAYMENT_TYPES, 0)); $arResult['PAYMENT_TYPES'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_PAYMENT_TYPES, 0));
} }
if (!isset($arResult['bitrixStatusesList'])) { if (!isset($arResult['bitrixStatusesList'])) {
@ -68,7 +59,7 @@ if (!isset($arResult['orderTypesList'])) {
if (!isset($arResult['paymentStatusesList'])) { if (!isset($arResult['paymentStatusesList'])) {
$arResult['paymentStatusesList'] = $RETAIL_CRM_API->paymentStatusesList()->paymentStatuses; $arResult['paymentStatusesList'] = $RETAIL_CRM_API->paymentStatusesList()->paymentStatuses;
$arResult['PAYMENT_STATUSES'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_PAYMENT_STATUSES, 0)); $arResult['PAYMENT_STATUSES'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_PAYMENT_STATUSES, 0));
} }
if (!isset($arResult['bitrixDeliveryTypesList'])) { if (!isset($arResult['bitrixDeliveryTypesList'])) {
@ -77,7 +68,7 @@ if (!isset($arResult['bitrixDeliveryTypesList'])) {
$availableSites, $availableSites,
$RETAIL_CRM_API->deliveryTypesList()->deliveryTypes $RETAIL_CRM_API->deliveryTypesList()->deliveryTypes
); );
$arResult['DELIVERY_TYPES'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_DELIVERY_TYPES_ARR, 0)); $arResult['DELIVERY_TYPES'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_DELIVERY_TYPES_ARR, 0));
} }
//bitrix pyament Y/N //bitrix pyament Y/N

View File

@ -1,5 +1,6 @@
<?php <?php
use Intaro\RetailCrm\Component\Constants;
use RetailCrm\ApiClient; use RetailCrm\ApiClient;
/** @var $APPLICATION */ /** @var $APPLICATION */
@ -10,38 +11,31 @@ if (!check_bitrix_sessid()) {
IncludeModuleLangFile(__FILE__); IncludeModuleLangFile(__FILE__);
$MODULE_ID = 'intaro.retailcrm'; $api_host = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_HOST_OPTION, 0);
$CRM_API_HOST_OPTION = 'api_host'; $api_key = COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_API_KEY_OPTION, 0);
$CRM_API_KEY_OPTION = 'api_key';
$CRM_SITES_LIST= 'sites_list';
$CRM_ORDER_PROPS = 'order_props';
$CRM_CONTRAGENT_TYPE = 'contragent_type';
$CRM_LEGAL_DETAILS = 'legal_details';
$api_host = COption::GetOptionString($MODULE_ID, $CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($MODULE_ID, $CRM_API_KEY_OPTION, 0);
$arResult['arSites'] = RCrmActions::getSitesList(); $arResult['arSites'] = RCrmActions::getSitesList();
$RETAIL_CRM_API = new ApiClient($api_host, $api_key); $RETAIL_CRM_API = new ApiClient($api_host, $api_key);
COption::SetOptionString($MODULE_ID, $CRM_API_HOST_OPTION, $api_host); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_API_HOST_OPTION, $api_host);
COption::SetOptionString($MODULE_ID, $CRM_API_KEY_OPTION, $api_key); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_API_KEY_OPTION, $api_key);
if (count($arResult['arSites']) === 1) { if (count($arResult['arSites']) === 1) {
COption::SetOptionString($MODULE_ID, $CRM_SITES_LIST, serialize([])); COption::SetOptionString(Constants::MODULE_ID, Constants::CRM_SITES_LIST, serialize([]));
} }
if (!isset($arResult['bitrixOrderTypesList'])) { if (!isset($arResult['bitrixOrderTypesList'])) {
$arResult['bitrixOrderTypesList'] = RCrmActions::OrderTypesList($arResult['arSites']); $arResult['bitrixOrderTypesList'] = RCrmActions::OrderTypesList($arResult['arSites']);
$arResult['arProp'] = RCrmActions::OrderPropsList(); $arResult['arProp'] = RCrmActions::OrderPropsList();
$arResult['locationProp'] = RCrmActions::getLocationProps(); $arResult['locationProp'] = RCrmActions::getLocationProps();
$arResult['ORDER_PROPS'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_ORDER_PROPS, 0)); $arResult['ORDER_PROPS'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_ORDER_PROPS, 0));
} }
if (!isset($arResult['LEGAL_DETAILS'])) { if (!isset($arResult['LEGAL_DETAILS'])) {
$arResult['LEGAL_DETAILS'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_LEGAL_DETAILS, 0)); $arResult['LEGAL_DETAILS'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_LEGAL_DETAILS, 0));
} }
if (!isset($arResult['CONTRAGENT_TYPES'])) { if (!isset($arResult['CONTRAGENT_TYPES'])) {
$arResult['CONTRAGENT_TYPES'] = unserialize(COption::GetOptionString($MODULE_ID, $CRM_CONTRAGENT_TYPE, 0)); $arResult['CONTRAGENT_TYPES'] = unserialize(COption::GetOptionString(Constants::MODULE_ID, Constants::CRM_CONTRAGENT_TYPE, 0));
if ($arResult['CONTRAGENT_TYPES'] === false) { if ($arResult['CONTRAGENT_TYPES'] === false) {
foreach ($arResult['contragentType'] as $crmContrAgentType) { foreach ($arResult['contragentType'] as $crmContrAgentType) {

View File

@ -1,6 +1,6 @@
<?php <?php
$arModuleVersion = [ $arModuleVersion = [
'VERSION' => '6.5.19', 'VERSION' => '6.5.20',
'VERSION_DATE' => '2024-06-14 13:12:00' 'VERSION_DATE' => '2024-06-20 17:40:00'
]; ];

View File

@ -154,3 +154,9 @@ $MESS ['FIX_UPLOAD_CUSTOMER_BUTTON_LABEL'] = 'Correct customer registration date
$MESS ['FIX_UPLOAD_CUSTOMER_INFO'] = 'When you press this button, an agent will be created to launch the script. Please note that the script execution time may vary depending on the number of clients in the database. To minimize possible disruptions to the script operation, it is recommended to launch it at night time. This script can only be launched once'; $MESS ['FIX_UPLOAD_CUSTOMER_INFO'] = 'When you press this button, an agent will be created to launch the script. Please note that the script execution time may vary depending on the number of clients in the database. To minimize possible disruptions to the script operation, it is recommended to launch it at night time. This script can only be launched once';
$MESS ['FIX_UPLOAD_CUSTOMER_AFTER_SUBMIT'] = 'The agent has been created and will be launched soon'; $MESS ['FIX_UPLOAD_CUSTOMER_AFTER_SUBMIT'] = 'The agent has been created and will be launched soon';
$MESS ['FIX_UPLOAD_CUSTOMER_AFTER_SUBMIT_ERROR'] = 'An error occurred while adding an agent'; $MESS ['FIX_UPLOAD_CUSTOMER_AFTER_SUBMIT_ERROR'] = 'An error occurred while adding an agent';
$MESS ['ICRM_OPTIONS_GENERAL_CAPTION'] = 'Setting up connection to the RetailCRM system';
$MESS ['ICRM_OPTIONS_CATALOG_CAPTION'] = 'Comparison of RetailCRM and Bitrix system directories';
$MESS ['ICRM_OPTIONS_ORDER_PROPS_CAPTION'] = 'Comparison of order fields of RetailCRM and Bitrix systems';
$MESS ['ICRM_OPTIONS_LOYALTY_PROGRAM_CAPTION'] = 'Setting up work with the loyalty program';
$MESS ['ICRM_OPTIONS_OTHER_CAPTION'] = 'Setting up additional options for integration with the RetailCRM system';

View File

@ -8,6 +8,13 @@ $MESS ['ICRM_API_HOST'] = 'Адрес RetailCRM:';
$MESS ['ICRM_API_KEY'] = 'Ключ авторизации:'; $MESS ['ICRM_API_KEY'] = 'Ключ авторизации:';
$MESS ['ICRM_SITES'] = 'Активные сайты'; $MESS ['ICRM_SITES'] = 'Активные сайты';
$MESS ['ICRM_OPTIONS_GENERAL_CAPTION'] = 'Настройка подключения к системе RetailCRM';
$MESS ['ICRM_OPTIONS_CATALOG_CAPTION'] = 'Сопоставление справочников системы RetailCRM и Bitrix';
$MESS ['ICRM_OPTIONS_ORDER_PROPS_CAPTION'] = 'Сопоставление полей заказа системы RetailCRM и Bitrix';
$MESS ['ICRM_OPTIONS_LOYALTY_PROGRAM_CAPTION'] = 'Настройка работы с программой лояльности';
$MESS ['ICRM_OPTIONS_OTHER_CAPTION'] = 'Настройка дополнительных опций интеграции c системой RetailCRM';
$MESS ['ICRM_OPTIONS_CATALOG_TAB'] = 'Настройка справочников'; $MESS ['ICRM_OPTIONS_CATALOG_TAB'] = 'Настройка справочников';
$MESS ['DELIVERY_TYPES_LIST'] = 'Способы доставки'; $MESS ['DELIVERY_TYPES_LIST'] = 'Способы доставки';
$MESS ['PAYMENT_TYPES_LIST'] = 'Способы оплаты'; $MESS ['PAYMENT_TYPES_LIST'] = 'Способы оплаты';

View File

@ -69,6 +69,7 @@ class Constants
public const CRM_ORDER_FAILED_IDS = 'order_failed_ids'; public const CRM_ORDER_FAILED_IDS = 'order_failed_ids';
public const CRM_CUSTOMERS_HISTORY_SINCE_ID = 'customer_history'; public const CRM_CUSTOMERS_HISTORY_SINCE_ID = 'customer_history';
public const CRM_ORDER_HISTORY_DATE = 'order_history_date'; public const CRM_ORDER_HISTORY_DATE = 'order_history_date';
public const CRM_ORDER_HISTORY = 'order_history';
public const CRM_CATALOG_BASE_PRICE = 'catalog_base_price'; public const CRM_CATALOG_BASE_PRICE = 'catalog_base_price';
public const CRM_ORDER_DIMENSIONS = 'order_dimensions'; public const CRM_ORDER_DIMENSIONS = 'order_dimensions';
public const CRM_INTEGRATION_DELIVERY = 'integration_delivery'; public const CRM_INTEGRATION_DELIVERY = 'integration_delivery';
@ -128,4 +129,8 @@ class Constants
public const OPTION_FIX_DATE_CUSTOMER = 'once_upload_customer'; public const OPTION_FIX_DATE_CUSTOMER = 'once_upload_customer';
public const OPTION_FIX_DATE_CUSTOMER_LAST_ID = 'last_id_customer_fix'; public const OPTION_FIX_DATE_CUSTOMER_LAST_ID = 'last_id_customer_fix';
public const HISTORY_TIME = 'history_time';
public const MODULE_DEACTIVATE = 'module_deactivate';
public const AGENTS_DEACTIVATE = 'agents_deactivate';
public const EVENTS_DEACTIVATE = 'events_deactivate';
} }

View File

@ -21,54 +21,6 @@ IncludeModuleLangFile(__FILE__);
$mid = 'intaro.retailcrm'; $mid = 'intaro.retailcrm';
$uri = $APPLICATION->GetCurPage() . '?mid=' . htmlspecialchars($mid) . '&lang=' . LANGUAGE_ID; $uri = $APPLICATION->GetCurPage() . '?mid=' . htmlspecialchars($mid) . '&lang=' . LANGUAGE_ID;
$CRM_API_HOST_OPTION = 'api_host';
$CRM_API_KEY_OPTION = 'api_key';
$CRM_ORDER_TYPES_ARR = 'order_types_arr';
$CRM_DELIVERY_TYPES_ARR = 'deliv_types_arr';
$CRM_DELIVERY_SERVICES_ARR = 'deliv_services_arr';
$CRM_PAYMENT_TYPES = 'pay_types_arr';
$CRM_PAYMENT_STATUSES = 'pay_statuses_arr';
$CRM_PAYMENT = 'payment_arr';
$CRM_ORDER_LAST_ID = 'order_last_id';
$CRM_ORDER_SITES = 'sites_ids';
$CRM_ORDER_DISCHARGE = 'order_discharge';
$CRM_ORDER_PROPS = 'order_props';
$CRM_LEGAL_DETAILS = 'legal_details';
$CRM_CUSTOM_FIELDS = 'custom_fields';
$CRM_COUPON_FIELD = 'crm_coupon_field';
$CRM_CONTRAGENT_TYPE = 'contragent_type';
$CRM_SITES_LIST = 'sites_list';
$CRM_ORDER_NUMBERS = 'order_numbers';
$CRM_ORDER_VAT = 'order_vat';
$CRM_CANSEL_ORDER = 'cansel_order';
$CRM_INVENTORIES_UPLOAD = 'inventories_upload';
$CRM_STORES = 'stores';
$CRM_SHOPS = 'shops';
$CRM_IBLOCKS_INVENTORIES = 'iblocks_inventories';
$CRM_PRICES_UPLOAD = 'prices_upload';
$CRM_PRICES = 'prices';
$CRM_PRICE_SHOPS = 'price_shops';
$CRM_IBLOCKS_PRICES = 'iblock_prices';
$CRM_COLLECTOR = 'collector';
$CRM_COLL_KEY = 'coll_key';
$CRM_UA = 'ua';
$CRM_UA_KEYS = 'ua_keys';
$CRM_DISCOUNT_ROUND = 'discount_round';
$CRM_CC = 'cc';
$CRM_CORP_SHOPS = 'shops-corporate';
$CRM_CORP_NAME = 'nickName-corporate';
$CRM_CORP_ADRES = 'adres-corporate';
$CRM_API_VERSION = 'api_version';
$CRM_CURRENCY = 'currency';
$CRM_ADDRESS_OPTIONS = 'address_options';
$CRM_DIMENSIONS = 'order_dimensions';
$PROTOCOL = 'protocol';
$CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null';
$CRM_CART = 'cart';
$MODULE_DEACTIVATE = 'module_deactivate';
$AGENTS_DEACTIVATE = 'agents_deactivate';
$EVENTS_DEACTIVATE = 'events_deactivate';
if (!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog')) { if (!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog')) {
return; return;
} }
@ -130,8 +82,8 @@ if (method_exists(RCrmActions::class, 'customOrderPropList')
//ajax update deliveryServices //ajax update deliveryServices
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') && isset($_POST['ajax']) && ($_POST['ajax'] === 1)) { if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') && isset($_POST['ajax']) && ($_POST['ajax'] === 1)) {
$api_host = COption::GetOptionString($mid, $CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString($mid, Constants::CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($mid, $CRM_API_KEY_OPTION, 0); $api_key = COption::GetOptionString($mid, Constants::CRM_API_KEY_OPTION , 0);
$api = new RetailCrm\ApiClient($api_host, $api_key); $api = new RetailCrm\ApiClient($api_host, $api_key);
try { try {
@ -147,7 +99,7 @@ if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_RE
die(json_encode(['success' => false, 'errMsg' => $e->getCode()])); die(json_encode(['success' => false, 'errMsg' => $e->getCode()]));
} }
$optionsDelivTypes = unserialize(COption::GetOptionString($mid, $CRM_DELIVERY_TYPES_ARR, 0)); $optionsDelivTypes = unserialize(COption::GetOptionString($mid, Constants::CRM_DELIVERY_TYPES_ARR, 0));
$arDeliveryServiceAll = Manager::getActiveList(); $arDeliveryServiceAll = Manager::getActiveList();
foreach ($optionsDelivTypes as $key => $deliveryType) { foreach ($optionsDelivTypes as $key => $deliveryType) {
@ -354,7 +306,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
$paymentArr['Y'] = htmlspecialchars(trim($_POST['payment-Y'])); $paymentArr['Y'] = htmlspecialchars(trim($_POST['payment-Y']));
$paymentArr['N'] = htmlspecialchars(trim($_POST['payment-N'])); $paymentArr['N'] = htmlspecialchars(trim($_POST['payment-N']));
$previousDischarge = COption::GetOptionString($mid, $CRM_ORDER_DISCHARGE, 0); $previousDischarge = COption::GetOptionString($mid, Constants::CRM_ORDER_DISCHARGE, 0);
//order discharge mode //order discharge mode
// 0 - agent // 0 - agent
// 1 - event // 1 - event
@ -370,7 +322,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
RegisterModuleDependences('sale', 'OnSaleOrderDeleted', $mid, 'RetailCrmEvent', "orderDelete"); RegisterModuleDependences('sale', 'OnSaleOrderDeleted', $mid, 'RetailCrmEvent', "orderDelete");
} }
$optionCart = COption::GetOptionString($mid, $CRM_CART, 'N'); $optionCart = COption::GetOptionString($mid, Constants::CART, 'N');
$cart = htmlspecialchars(trim($_POST['cart'])); $cart = htmlspecialchars(trim($_POST['cart']));
@ -595,7 +547,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
//version //version
$version = COption::GetOptionString($mid, $CRM_API_VERSION); $version = COption::GetOptionString($mid, Constants::CRM_API_VERSION);
if (htmlspecialchars(trim($_POST['api_version'])) != $version) { if (htmlspecialchars(trim($_POST['api_version'])) != $version) {
if (htmlspecialchars(trim($_POST['api_version'])) === 'v5') { if (htmlspecialchars(trim($_POST['api_version'])) === 'v5') {
@ -621,15 +573,15 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
); );
if ($result->getStatusCode() === 200) { if ($result->getStatusCode() === 200) {
COption::SetOptionString($mid, $CRM_API_VERSION, $version); COption::SetOptionString($mid, Constants::CRM_API_VERSION, $version);
} else { } else {
LocalRedirect($uri); LocalRedirect($uri);
echo CAdminMessage::ShowMessage(GetMessage('API_NOT_WORK')); echo CAdminMessage::ShowMessage(GetMessage('API_NOT_WORK'));
} }
} }
if ($_POST[$CRM_CURRENCY]) { if ($_POST[Constants::CRM_CURRENCY]) {
COption::SetOptionString($mid, $CRM_CURRENCY, $_POST['currency']); COption::SetOptionString($mid, Constants::CRM_CURRENCY, $_POST['currency']);
} }
if (isset($_POST['loyalty_toggle']) && $_POST['loyalty_toggle'] === 'on') { if (isset($_POST['loyalty_toggle']) && $_POST['loyalty_toggle'] === 'on') {
@ -706,17 +658,17 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
} }
if ($deactivateAgents !== []) { if ($deactivateAgents !== []) {
COption::SetOptionString($mid, $AGENTS_DEACTIVATE, serialize($deactivateAgents)); COption::SetOptionString($mid, Constants::AGENTS_DEACTIVATE, serialize($deactivateAgents));
} }
if ($deactivateEvents !== []) { if ($deactivateEvents !== []) {
COption::SetOptionString($mid, $EVENTS_DEACTIVATE, serialize($deactivateEvents)); COption::SetOptionString($mid, Constants::EVENTS_DEACTIVATE, serialize($deactivateEvents));
} }
RCrmActions::sendConfiguration($api, false); RCrmActions::sendConfiguration($api, false);
} else { } else {
$deactivateAgents = unserialize(COption::GetOptionString($mid, $AGENTS_DEACTIVATE, '')); $deactivateAgents = unserialize(COption::GetOptionString($mid, Constants::AGENTS_DEACTIVATE, ''));
$deactivateEvents = unserialize(COption::GetOptionString($mid, $EVENTS_DEACTIVATE, '')); $deactivateEvents = unserialize(COption::GetOptionString($mid, Constants::EVENTS_DEACTIVATE, ''));
if (!empty($deactivateAgents)) { if (!empty($deactivateAgents)) {
$dateAgent = new DateTime(); $dateAgent = new DateTime();
@ -736,7 +688,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
); );
} }
COption::SetOptionString($mid, $AGENTS_DEACTIVATE, serialize([])); COption::SetOptionString($mid, Constants::AGENTS_DEACTIVATE, serialize([]));
} }
if (!empty($deactivateEvents)) { if (!empty($deactivateEvents)) {
@ -762,7 +714,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
} }
} }
COption::SetOptionString($mid, $EVENTS_DEACTIVATE, serialize([])); COption::SetOptionString($mid, Constants::EVENTS_DEACTIVATE, serialize([]));
} }
RCrmActions::sendConfiguration($api); RCrmActions::sendConfiguration($api);
@ -770,72 +722,72 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$MODULE_DEACTIVATE, Constants::MODULE_DEACTIVATE,
serialize($moduleDeactivateParam) serialize($moduleDeactivateParam)
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ADDRESS_OPTIONS, Constants::CRM_ADDRESS_OPTIONS,
serialize($addressDatailOptions) serialize($addressDatailOptions)
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_SITES_LIST, Constants::CRM_SITES_LIST,
serialize($siteListArr) serialize($siteListArr)
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ORDER_TYPES_ARR, Constants::CRM_ORDER_TYPES_ARR,
serialize(RCrmActions::clearArr(is_array($orderTypesArr) ? $orderTypesArr : [])) serialize(RCrmActions::clearArr(is_array($orderTypesArr) ? $orderTypesArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_DELIVERY_TYPES_ARR, Constants::CRM_DELIVERY_TYPES_ARR,
serialize(RCrmActions::clearArr(is_array($deliveryTypesArr) ? $deliveryTypesArr : [])) serialize(RCrmActions::clearArr(is_array($deliveryTypesArr) ? $deliveryTypesArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PAYMENT_TYPES, Constants::CRM_PAYMENT_TYPES,
serialize(RCrmActions::clearArr(is_array($paymentTypesArr) ? $paymentTypesArr : [])) serialize(RCrmActions::clearArr(is_array($paymentTypesArr) ? $paymentTypesArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PAYMENT_STATUSES, Constants::CRM_PAYMENT_STATUSES,
serialize(RCrmActions::clearArr(is_array($paymentStatusesArr) ? $paymentStatusesArr : [])) serialize(RCrmActions::clearArr(is_array($paymentStatusesArr) ? $paymentStatusesArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PAYMENT, Constants::CRM_PAYMENT,
serialize(RCrmActions::clearArr(is_array($paymentArr) ? $paymentArr : [])) serialize(RCrmActions::clearArr(is_array($paymentArr) ? $paymentArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ORDER_DISCHARGE, Constants::CRM_ORDER_DISCHARGE,
$orderDischarge $orderDischarge
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ORDER_PROPS, Constants::CRM_ORDER_PROPS,
serialize(RCrmActions::clearArr(is_array($orderPropsArr) ? $orderPropsArr : [])) serialize(RCrmActions::clearArr(is_array($orderPropsArr) ? $orderPropsArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CONTRAGENT_TYPE, Constants::CRM_CONTRAGENT_TYPE,
serialize(RCrmActions::clearArr(is_array($contragentTypeArr) ? $contragentTypeArr : [])) serialize(RCrmActions::clearArr(is_array($contragentTypeArr) ? $contragentTypeArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_LEGAL_DETAILS, Constants::CRM_LEGAL_DETAILS,
serialize(RCrmActions::clearArr(is_array($legalDetailsArr) ? $legalDetailsArr : [])) serialize(RCrmActions::clearArr(is_array($legalDetailsArr) ? $legalDetailsArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ORDER_NUMBERS, Constants::CRM_ORDER_NUMBERS,
htmlspecialchars(trim($_POST['order-numbers'])) ?: 'N' htmlspecialchars(trim($_POST['order-numbers'])) ?: 'N'
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_ORDER_VAT, Constants::CRM_ORDER_VAT,
htmlspecialchars(trim($_POST['order-vat'])) ?: 'N' htmlspecialchars(trim($_POST['order-vat'])) ?: 'N'
); );
@ -910,7 +862,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_COUPON_FIELD, Constants::CRM_COUPON_FIELD,
htmlspecialchars(trim($_POST['crm-coupon-field'])) ?: 'N' htmlspecialchars(trim($_POST['crm-coupon-field'])) ?: 'N'
); );
COption::SetOptionString( COption::SetOptionString(
@ -920,32 +872,32 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CANSEL_ORDER, Constants::CRM_CANCEL_ORDER,
serialize(RCrmActions::clearArr(is_array($canselOrderArr) ? $canselOrderArr : [])) serialize(RCrmActions::clearArr(is_array($canselOrderArr) ? $canselOrderArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_INVENTORIES_UPLOAD, Constants::CRM_INVENTORIES_UPLOAD,
$inventoriesUpload $inventoriesUpload
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_STORES, Constants::CRM_STORES,
serialize(RCrmActions::clearArr(is_array($bitrixStoresArr) ? $bitrixStoresArr : [])) serialize(RCrmActions::clearArr(is_array($bitrixStoresArr) ? $bitrixStoresArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_SHOPS, Constants::CRM_SHOPS,
serialize(RCrmActions::clearArr(is_array($bitrixShopsArr) ? $bitrixShopsArr : [])) serialize(RCrmActions::clearArr(is_array($bitrixShopsArr) ? $bitrixShopsArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_IBLOCKS_INVENTORIES, Constants::CRM_IBLOCKS_INVENTORIES,
serialize(RCrmActions::clearArr(is_array($bitrixIblocksInventories) ? $bitrixIblocksInventories : [])) serialize(RCrmActions::clearArr(is_array($bitrixIblocksInventories) ? $bitrixIblocksInventories : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PRICES_UPLOAD, Constants::CRM_PRICES_UPLOAD,
$pricesUpload $pricesUpload
); );
COption::SetOptionString( COption::SetOptionString(
@ -960,27 +912,27 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PRICES, Constants::CRM_PRICES,
serialize(RCrmActions::clearArr(is_array($bitrixPricesArr) ? $bitrixPricesArr : [])) serialize(RCrmActions::clearArr(is_array($bitrixPricesArr) ? $bitrixPricesArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PRICE_SHOPS, Constants::CRM_PRICE_SHOPS,
serialize(RCrmActions::clearArr(is_array($bitrixPriceShopsArr) ? $bitrixPriceShopsArr : [])) serialize(RCrmActions::clearArr(is_array($bitrixPriceShopsArr) ? $bitrixPriceShopsArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_IBLOCKS_PRICES, Constants::CRM_IBLOCKS_PRICES,
serialize(RCrmActions::clearArr(is_array($bitrixIblocksPrices) ? $bitrixIblocksPrices : [])) serialize(RCrmActions::clearArr(is_array($bitrixIblocksPrices) ? $bitrixIblocksPrices : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_COLLECTOR, Constants::CRM_COLLECTOR,
$collector $collector
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_COLL_KEY, Constants::CRM_COLL_KEY,
serialize(RCrmActions::clearArr(is_array($collectorKeys) ? $collectorKeys : [])) serialize(RCrmActions::clearArr(is_array($collectorKeys) ? $collectorKeys : []))
); );
@ -989,25 +941,25 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_UA, Constants::CRM_UA,
$ua $ua
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_UA_KEYS, Constants::CRM_UA_KEYS,
serialize(RCrmActions::clearArr(is_array($uaKeys) ? $uaKeys : [])) serialize(RCrmActions::clearArr(is_array($uaKeys) ? $uaKeys : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_DIMENSIONS, Constants::CRM_DIMENSIONS,
htmlspecialchars(trim($_POST[$CRM_DIMENSIONS])) ?: 'N' htmlspecialchars(trim($_POST[Constants::CRM_DIMENSIONS])) ?: 'N'
); );
RetailcrmConfigProvider::setSendPaymentAmount(htmlspecialchars(trim($_POST[Constants::SEND_PAYMENT_AMOUNT])) ?: 'N'); RetailcrmConfigProvider::setSendPaymentAmount(htmlspecialchars(trim($_POST[Constants::SEND_PAYMENT_AMOUNT])) ?: 'N');
RetailCrmConfigProvider::setDiscountRound($discount_round); RetailCrmConfigProvider::setDiscountRound($discount_round);
RetailcrmConfigProvider::setCart($optionCart); RetailcrmConfigProvider::setCart($optionCart);
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_PURCHASE_PRICE_NULL, Constants::CRM_PURCHASE_PRICE_NULL,
$purchasePrice_null $purchasePrice_null
); );
COption::SetOptionString( COption::SetOptionString(
@ -1015,22 +967,22 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
RetailcrmConstants::CRM_SHIPMENT_DEDUCTED, $shipment_deducted); RetailcrmConstants::CRM_SHIPMENT_DEDUCTED, $shipment_deducted);
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CC, Constants::CRM_CC,
$cc $cc
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CORP_SHOPS, Constants::CRM_CORP_SHOPS,
serialize(RCrmActions::clearArr(is_array($bitrixCorpShopsArr) ? $bitrixCorpShopsArr : [])) serialize(RCrmActions::clearArr(is_array($bitrixCorpShopsArr) ? $bitrixCorpShopsArr : []))
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CORP_NAME, Constants::CRM_CORP_NAME,
$bitrixCorpName $bitrixCorpName
); );
COption::SetOptionString( COption::SetOptionString(
$mid, $mid,
$CRM_CORP_ADRES, Constants::CRM_CORP_ADDRESS,
$bitrixCorpAdres $bitrixCorpAdres
); );
@ -1065,9 +1017,9 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
$request = Application::getInstance()->getContext()->getRequest(); $request = Application::getInstance()->getContext()->getRequest();
if ($request->isHttps() === true) { if ($request->isHttps() === true) {
COption::SetOptionString($mid, $PROTOCOL, 'https://'); COption::SetOptionString($mid, Constants::PROTOCOL, 'https://');
} else { } else {
COption::SetOptionString($mid, $PROTOCOL, 'http://'); COption::SetOptionString($mid, Constants::PROTOCOL, 'http://');
} }
if ($error !== null) { if ($error !== null) {
@ -1078,8 +1030,8 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
LocalRedirect($uri); LocalRedirect($uri);
} else { } else {
$api_host = COption::GetOptionString($mid, $CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString($mid, Constants::CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($mid, $CRM_API_KEY_OPTION, 0); $api_key = COption::GetOptionString($mid, Constants::CRM_API_KEY_OPTION , 0);
$api = new RetailCrm\ApiClient($api_host, $api_key); $api = new RetailCrm\ApiClient($api_host, $api_key);
// Prepare crm lists // Prepare crm lists
@ -1239,61 +1191,61 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
//saved params //saved params
$useCrmOrderMethods = ConfigProvider::useCrmOrderMethods(); $useCrmOrderMethods = ConfigProvider::useCrmOrderMethods();
$crmOrderMethods = unserialize(COption::GetOptionString($mid, Constants::CRM_ORDER_METHODS, 0)); $crmOrderMethods = unserialize(COption::GetOptionString($mid, Constants::CRM_ORDER_METHODS, 0));
$moduleDeactivate = unserialize(COption::GetOptionString($mid, $MODULE_DEACTIVATE, 'N')); $moduleDeactivate = unserialize(COption::GetOptionString($mid, Constants::MODULE_DEACTIVATE, 'N'));
$optionsOrderTypes = unserialize(COption::GetOptionString($mid, $CRM_ORDER_TYPES_ARR, 0)); $optionsOrderTypes = unserialize(COption::GetOptionString($mid, Constants::CRM_ORDER_TYPES_ARR, 0));
$optionsDelivTypes = unserialize(COption::GetOptionString($mid, $CRM_DELIVERY_TYPES_ARR, 0)); $optionsDelivTypes = unserialize(COption::GetOptionString($mid, Constants::CRM_DELIVERY_TYPES_ARR, 0));
$optionsPayTypes = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT_TYPES, 0)); $optionsPayTypes = unserialize(COption::GetOptionString($mid, Constants::CRM_PAYMENT_TYPES, 0));
$optionsPayStatuses = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT_STATUSES, 0)); $optionsPayStatuses = unserialize(COption::GetOptionString($mid, Constants::CRM_PAYMENT_STATUSES, 0));
$optionsPayment = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT, 0)); $optionsPayment = unserialize(COption::GetOptionString($mid, Constants::CRM_PAYMENT, 0));
$optionsSitesList = unserialize(COption::GetOptionString($mid, $CRM_SITES_LIST, 0)); $optionsSitesList = unserialize(COption::GetOptionString($mid, Constants::CRM_SITES_LIST, 0));
$optionsDischarge = (int) COption::GetOptionString($mid, $CRM_ORDER_DISCHARGE, 0); $optionsDischarge = (int) COption::GetOptionString($mid, Constants::CRM_ORDER_DISCHARGE, 0);
$optionsOrderProps = unserialize(COption::GetOptionString($mid, $CRM_ORDER_PROPS, 0)); $optionsOrderProps = unserialize(COption::GetOptionString($mid, Constants::CRM_ORDER_PROPS, 0));
$optionsContragentType = unserialize(COption::GetOptionString($mid, $CRM_CONTRAGENT_TYPE, 0)); $optionsContragentType = unserialize(COption::GetOptionString($mid, Constants::CRM_CONTRAGENT_TYPE, 0));
$optionsLegalDetails = unserialize(COption::GetOptionString($mid, $CRM_LEGAL_DETAILS, 0)); $optionsLegalDetails = unserialize(COption::GetOptionString($mid, Constants::CRM_LEGAL_DETAILS, 0));
$optionsCustomFields = unserialize(COption::GetOptionString($mid, $CRM_CUSTOM_FIELDS, 0)); $optionsCustomFields = unserialize(COption::GetOptionString($mid, Constants::CRM_CUSTOM_FIELDS, 0));
$optionsOrderNumbers = COption::GetOptionString($mid, $CRM_ORDER_NUMBERS, 0); $optionsOrderNumbers = COption::GetOptionString($mid, Constants::CRM_ORDER_NUMBERS, 0);
$optionsOrderVat = COption::GetOptionString($mid, $CRM_ORDER_VAT, 0); $optionsOrderVat = COption::GetOptionString($mid, Constants::CRM_ORDER_VAT, 0);
$optionsOrderTrackNumber = ConfigProvider::getTrackNumberStatus(); $optionsOrderTrackNumber = ConfigProvider::getTrackNumberStatus();
$optionsSyncIntegrationPayment = ConfigProvider::getSyncIntegrationPayment(); $optionsSyncIntegrationPayment = ConfigProvider::getSyncIntegrationPayment();
$canselOrderArr = unserialize(COption::GetOptionString($mid, $CRM_CANSEL_ORDER, 0)); $canselOrderArr = unserialize(COption::GetOptionString($mid, Constants::CRM_CANCEL_ORDER, 0));
$sendPickupPointAddress = COption::GetOptionString($mid, Constants::CRM_SEND_PICKUP_POINT_ADDRESS, 'N'); $sendPickupPointAddress = COption::GetOptionString($mid, Constants::CRM_SEND_PICKUP_POINT_ADDRESS, 'N');
$optionInventotiesUpload = COption::GetOptionString($mid, $CRM_INVENTORIES_UPLOAD, 0); $optionInventotiesUpload = COption::GetOptionString($mid, Constants::CRM_INVENTORIES_UPLOAD, 0);
$optionStores = unserialize(COption::GetOptionString($mid, $CRM_STORES, 0)); $optionStores = unserialize(COption::GetOptionString($mid, Constants::CRM_STORES, 0));
$optionShops = unserialize(COption::GetOptionString($mid, $CRM_SHOPS, 0)); $optionShops = unserialize(COption::GetOptionString($mid, Constants::CRM_SHOPS, 0));
$optionIblocksInventories = unserialize(COption::GetOptionString($mid, $CRM_IBLOCKS_INVENTORIES, 0)); $optionIblocksInventories = unserialize(COption::GetOptionString($mid, Constants::CRM_IBLOCKS_INVENTORIES, 0));
$optionShopsCorporate = unserialize(COption::GetOptionString($mid, $CRM_SHOPS, 0)); $optionShopsCorporate = unserialize(COption::GetOptionString($mid, Constants::CRM_SHOPS, 0));
$optionPricesUpload = COption::GetOptionString($mid, $CRM_PRICES_UPLOAD, 0); $optionPricesUpload = COption::GetOptionString($mid, Constants::CRM_PRICES_UPLOAD, 0);
$optionPrices = unserialize(COption::GetOptionString($mid, $CRM_PRICES, 0)); $optionPrices = unserialize(COption::GetOptionString($mid, Constants::CRM_PRICES, 0));
$optionPriceShops = unserialize(COption::GetOptionString($mid, $CRM_PRICE_SHOPS, 0)); $optionPriceShops = unserialize(COption::GetOptionString($mid, Constants::CRM_PRICE_SHOPS, 0));
$optionIblocksPrices = unserialize(COption::GetOptionString($mid, $CRM_IBLOCKS_PRICES, 0)); $optionIblocksPrices = unserialize(COption::GetOptionString($mid, Constants::CRM_IBLOCKS_PRICES, 0));
$optionCollector = COption::GetOptionString($mid, $CRM_COLLECTOR, 0); $optionCollector = COption::GetOptionString($mid, Constants::CRM_COLLECTOR, 0);
$optionCollectorKeys = unserialize(COption::GetOptionString($mid, $CRM_COLL_KEY)); $optionCollectorKeys = unserialize(COption::GetOptionString($mid, Constants::CRM_COLL_KEY));
$optionOnlineConsultant = RetailcrmConfigProvider::isOnlineConsultantEnabled(); $optionOnlineConsultant = RetailcrmConfigProvider::isOnlineConsultantEnabled();
$optionOnlineConsultantScript = RetailcrmConfigProvider::getOnlineConsultantScript(); $optionOnlineConsultantScript = RetailcrmConfigProvider::getOnlineConsultantScript();
$optionUa = COption::GetOptionString($mid, $CRM_UA, 0); $optionUa = COption::GetOptionString($mid, Constants::CRM_UA, 0);
$optionUaKeys = unserialize(COption::GetOptionString($mid, $CRM_UA_KEYS)); $optionUaKeys = unserialize(COption::GetOptionString($mid, Constants::CRM_UA_KEYS));
$optionDiscRound = COption::GetOptionString($mid, $CRM_DISCOUNT_ROUND, 0); $optionDiscRound = COption::GetOptionString($mid, Constants::CRM_DISCOUNT_ROUND, 0);
$optionPricePrchaseNull = COption::GetOptionString($mid, $CRM_PURCHASE_PRICE_NULL, 0); $optionPricePrchaseNull = COption::GetOptionString($mid, Constants::CRM_PURCHASE_PRICE_NULL, 0);
$optionShipmentDeducted = RetailcrmConfigProvider::getShipmentDeducted(); $optionShipmentDeducted = RetailcrmConfigProvider::getShipmentDeducted();
//corporate-cliente //corporate-cliente
$optionCorpClient = COption::GetOptionString($mid, $CRM_CC, 0); $optionCorpClient = COption::GetOptionString($mid, Constants::CRM_CC, 0);
$optionCorpShops = unserialize(COption::GetOptionString($mid, $CRM_CORP_SHOPS, 0)); $optionCorpShops = unserialize(COption::GetOptionString($mid, Constants::CRM_CORP_SHOPS, 0));
$optionsCorpComName = COption::GetOptionString($mid, $CRM_CORP_NAME, 0); $optionsCorpComName = COption::GetOptionString($mid, Constants::CRM_CORP_NAME, 0);
$optionsCorpAdres = COption::GetOptionString($mid, $CRM_CORP_ADRES, 0); $optionsCorpAdres = COption::GetOptionString($mid, Constants::CRM_CORP_ADDRESS, 0);
$version = COption::GetOptionString($mid, $CRM_API_VERSION, 0); $version = COption::GetOptionString($mid, Constants::CRM_API_VERSION, 0);
$optionsFixDateCustomer = COption::GetOptionString($mid, RetailcrmConstants::OPTION_FIX_DATE_CUSTOMER, 0); $optionsFixDateCustomer = COption::GetOptionString($mid, RetailcrmConstants::OPTION_FIX_DATE_CUSTOMER, 0);
// Old functional // Old functional
$currencyOption = COption::GetOptionString($mid, $CRM_CURRENCY, 0) ?: CCurrency::GetBaseCurrency(); $currencyOption = COption::GetOptionString($mid, Constants::CRM_CURRENCY, 0) ?: CCurrency::GetBaseCurrency();
//Validate currency //Validate currency
$currencyList = CurrencyManager::getCurrencyList(); $currencyList = CurrencyManager::getCurrencyList();
@ -1339,7 +1291,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
} }
$customFields = [['code' => '__default_empty_value__', 'name' => GetMessage('SELECT_VALUE')]]; $customFields = [['code' => '__default_empty_value__', 'name' => GetMessage('SELECT_VALUE')]];
$crmCouponFieldOption = COption::GetOptionString($mid, $CRM_COUPON_FIELD, 0) ?: null; $crmCouponFieldOption = COption::GetOptionString($mid, Constants::CRM_COUPON_FIELD, 0) ?: null;
$page = 1; $page = 1;
do { do {
@ -1356,10 +1308,10 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
$page++; $page++;
} while($getCustomFields['pagination']['currentPage'] < $getCustomFields['pagination']['totalPageCount']); } while($getCustomFields['pagination']['currentPage'] < $getCustomFields['pagination']['totalPageCount']);
$optionsOrderDimensions = COption::GetOptionString($mid, $CRM_DIMENSIONS, 'N'); $optionsOrderDimensions = COption::GetOptionString($mid, Constants::CRM_DIMENSIONS, 'N');
$addressOptions = unserialize(COption::GetOptionString($mid, $CRM_ADDRESS_OPTIONS, 0)); $addressOptions = unserialize(COption::GetOptionString($mid, Constants::CRM_ADDRESS_OPTIONS, 0));
$optionCart = COption::GetOptionString($mid, $CRM_CART, 'N'); $optionCart = COption::GetOptionString($mid, Constants::CART, 'N');
//loyalty program options //loyalty program options
$loyaltyProgramToggle = ConfigProvider::getLoyaltyProgramStatus(); $loyaltyProgramToggle = ConfigProvider::getLoyaltyProgramStatus();
@ -1387,7 +1339,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
"DIV" => "edit4", "DIV" => "edit4",
"TAB" => GetMessage('LOYALTY_PROGRAM_TITLE'), "TAB" => GetMessage('LOYALTY_PROGRAM_TITLE'),
"ICON" => '', "ICON" => '',
"TITLE" => GetMessage('ICRM_OPTIONS_ORDER_DISCHARGE_CAPTION'), "TITLE" => GetMessage('ICRM_OPTIONS_LOYALTY_PROGRAM_CAPTION'),
], ],
[ [
"DIV" => "edit5", "DIV" => "edit5",
@ -1405,7 +1357,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
"DIV" => "edit7", "DIV" => "edit7",
"TAB" => GetMessage('OTHER_OPTIONS'), "TAB" => GetMessage('OTHER_OPTIONS'),
"ICON" => '', "ICON" => '',
"TITLE" => GetMessage('ICRM_OPTIONS_ORDER_DISCHARGE_CAPTION'), "TITLE" => GetMessage('ICRM_OPTIONS_OTHER_CAPTION'),
] ]
]; ];
$tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl = new CAdminTabControl("tabControl", $aTabs);