diff --git a/CHANGELOG.md b/CHANGELOG.md index a6cd26f7..ab336f8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ -## 2018-10-25 v.2.4.0 +## 2018-11-02 v.2.4.0 * Изменена привязка на событие сохранения заказа. Используется привязка к событию "OnSaleOrderSaved" * Исправлено удаление событий модуля при удалении модуля интеграции из CMS -* Исправлен баг с некорректным удалением модуля из CMS +* Добавлено подключение файла Logger.php при удалении модуля +* Изменен механизм определения протокола, с которым работает сайт. Используется метод isHttps() 1С-Bitrix +* Исправлена передача веса товара при отправке габбаритов заказа ## 2018-10-29 v.2.3.14 * Добавлено подключение файла RCrmActions.php при удалении модуля diff --git a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php index a46be235..745aa23c 100644 --- a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php +++ b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php @@ -36,6 +36,7 @@ class RetailCrmICML protected $MODULE_ID = 'intaro.retailcrm'; protected $CRM_CATALOG_BASE_PRICE = 'catalog_base_price'; + protected $PROTOCOL = 'protocol'; protected $measurement = array ( 'mm' => 1, // 1 mm = 1 mm @@ -74,17 +75,8 @@ class RetailCrmICML $defaultSite = CSite::GetList($by = "def", $order = "desc", array('DEF' => 'Y'))->Fetch(); $this->encodingDefault = $defaultSite["CHARSET"]; - $url = 'https://' . $this->defaultServerName; - $curlHandler = curl_init(); - curl_setopt($curlHandler, CURLOPT_URL, $url); - $responseBody = curl_exec($curlHandler); - $statusCode = curl_getinfo($curlHandler, CURLINFO_HTTP_CODE); - curl_close($curlHandler); - if ($statusCode == 200) { - $this->protocol = 'https://'; - } else { - $this->protocol = 'http://'; - } + $this->protocol = COption::GetOptionString($this->MODULE_ID, $this->PROTOCOL); + $url = $this->protocol . $this->defaultServerName; $this->PrepareSettings(); diff --git a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php index b4109a7c..55e432b6 100644 --- a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php +++ b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php @@ -171,7 +171,7 @@ class RetailCrmOrder $width += $dimensions['WIDTH']; $height += $dimensions['HEIGHT']; $length += $dimensions['LENGTH']; - $weight += $product['WEIGHT']; + $weight += $product['WEIGHT'] * $product['QUANTITY']; } } } diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index e016563b..78f986d2 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1 +1,2 @@ - Изменена привязка на событие сохранения заказа. Теперь модуль привязан к событию, которое вызывается после сохранения всех сущностей. +- Изменена механика получения протокола, с которым работает сайт клиента. ТЕперь используется внутренний метод 1C-Bitrix \ No newline at end of file diff --git a/intaro.retailcrm/install/index.php b/intaro.retailcrm/install/index.php index 947b9039..929a7712 100644 --- a/intaro.retailcrm/install/index.php +++ b/intaro.retailcrm/install/index.php @@ -70,6 +70,7 @@ class intaro_retailcrm extends CModule var $HISTORY_TIME = 'history_time'; var $CLIENT_ID = 'client_id'; + var $PROTOCOL = 'protocol'; var $INSTALL_PATH; @@ -512,6 +513,14 @@ class intaro_retailcrm extends CModule //form orderProps $arResult['arProp'] = RCrmActions::OrderPropsList(); + $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); + + if ($request->isHttps() === true) { + COption::SetOptionString($this->MODULE_ID, $this->PROTOCOL, 'https://'); + } else { + COption::SetOptionString($this->MODULE_ID, $this->PROTOCOL, 'http://'); + } + COption::SetOptionString($this->MODULE_ID, $this->CRM_ORDER_TYPES_ARR, serialize(RCrmActions::clearArr($orderTypesArr))); COption::SetOptionString($this->MODULE_ID, $this->CRM_DELIVERY_TYPES_ARR, serialize(RCrmActions::clearArr($deliveryTypesArr))); COption::SetOptionString($this->MODULE_ID, $this->CRM_PAYMENT_TYPES, serialize(RCrmActions::clearArr($paymentTypesArr))); @@ -1130,6 +1139,7 @@ class intaro_retailcrm extends CModule COption::RemoveOption($this->MODULE_ID, $this->CRM_API_VERSION); COption::RemoveOption($this->MODULE_ID, $this->HISTORY_TIME); COption::RemoveOption($this->MODULE_ID, $this->CLIENT_ID); + COption::RemoveOption($this->MODULE_ID, $this->PROTOCOL); if (CModule::IncludeModule('sale')) { UnRegisterModuleDependences( diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index 4f4e5aff..b2fec9d4 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,5 +1,5 @@ "2.3.14", - "VERSION_DATE" => "2018-10-29 11:40:00" + "VERSION" => "2.4.0", + "VERSION_DATE" => "2018-11-02 14:20:00" ); diff --git a/intaro.retailcrm/options.php b/intaro.retailcrm/options.php index df485965..1e308344 100644 --- a/intaro.retailcrm/options.php +++ b/intaro.retailcrm/options.php @@ -43,6 +43,7 @@ $CRM_API_VERSION = 'api_version'; $CRM_CURRENCY = 'currency'; $CRM_ADDRESS_OPTIONS = 'address_options'; $CRM_DIMENSIONS = 'order_dimensions'; +$PROTOCOL = 'protocol'; if(!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog')) return; @@ -513,6 +514,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] == 'Y')) { COption::SetOptionString($mid, $CRM_UA_KEYS, serialize(RCrmActions::clearArr($uaKeys))); COption::SetOptionString($mid, $CRM_DIMENSIONS, $orderDimensions); + if ($request->isHttps() === true) { + COption::SetOptionString($mid, $PROTOCOL, 'https://'); + } else { + COption::SetOptionString($mid, $PROTOCOL, 'http://'); + } + $uri .= '&ok=Y'; LocalRedirect($uri); } else {