From 1ad5ecf6a223a27469a666642d36c970fef9c640 Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Tue, 18 Dec 2018 12:23:38 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B8=D0=B7=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=B2=20ICML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classes/general/icml/RetailCrmICML.php | 54 +++++++++++++------ 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php index 98425ac4..5c04cc3d 100644 --- a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php +++ b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php @@ -111,6 +111,17 @@ class RetailCrmICML } + private function setSiteAddress($block_id) + { + $site = CAllIBlock::GetSite($block_id)->Fetch(); + + if ($site['SERVER_NAME']) { + $this->serverName = $site['SERVER_NAME']; + } else { + $this->serverName = $this->defaultServerName; + } + } + protected function PrepareSettings() { foreach ($this->propertiesSKU as $iblock => $arr) { @@ -118,6 +129,7 @@ class RetailCrmICML $this->propertiesSKU[$iblock][$id] = strtoupper($sku); } } + foreach ($this->propertiesProduct as $iblock => $arr) { foreach ($arr as $id => $prod) { $this->propertiesProduct[$iblock][$id] = strtoupper($prod); @@ -202,22 +214,27 @@ class RetailCrmICML { $categories = array(); foreach ($this->iblocks as $id) { + $this->setSiteAddress($id); $filter = array("IBLOCK_ID" => $id); $dbRes = CIBlockSection::GetList(array("left_margin" => "asc"), $filter); $hasCategories = false; + while ($arRes = $dbRes->Fetch()) { $categories[$arRes['ID']] = $arRes; + $categories[$arRes['ID']]['SITE'] = $this->protocol . $this->serverName; $hasCategories = true; } + if (!$hasCategories) { $iblock = CIBlock::GetByID($id)->Fetch(); - $arRes = Array(); + $arRes = array(); $arRes['ID'] = $this->mainSection + $id; $arRes['IBLOCK_SECTION_ID'] = 0; $arRes['NAME'] = sprintf(GetMessage('ROOT_CATEGORY_FOR_CATALOG'), $iblock['NAME']); $categories[$arRes['ID']] = $arRes; + $categories[$arRes['ID']]['SITE'] = $this->protocol . $this->serverName; } } @@ -226,15 +243,25 @@ class RetailCrmICML protected function BuildCategory($arCategory) { - return " - PrepareValue($arCategory["ID"]) . "\"" - . ( intval($arCategory["IBLOCK_SECTION_ID"] ) > 0 ? - " parentId=\"" . $this->PrepareValue($arCategory["IBLOCK_SECTION_ID"]) . "\"" - :"") - . ">" - . $this->PrepareValue($arCategory["NAME"]) - . "\n"; + $category = + "PrepareValue($arCategory["ID"]) . "\"" + . (intval($arCategory["IBLOCK_SECTION_ID"]) > 0 ? + " parentId=\"" . $this->PrepareValue($arCategory["IBLOCK_SECTION_ID"]) . "\"" + :"") + . ">\n\t" + . "" . $this->PrepareValue($arCategory["NAME"]) . "\n"; + if (CFile::GetPath($arCategory["DETAIL_PICTURE"])) { + $category .= "\t" . $arCategory['SITE'] . CFile::GetPath($arCategory["DETAIL_PICTURE"]) . "\n"; + } + + if (CFile::GetPath($arCategory["PICTURE"])) { + $category .= "\t" . $arCategory['SITE'] . CFile::GetPath($arCategory["PICTURE"]) . "\n"; + } + + $category .= "\n"; + + return $category; } protected function BuildOffers(&$allCategories) @@ -246,14 +273,7 @@ class RetailCrmICML ); foreach ($this->iblocks as $key => $id) { - $site = CAllIBlock::GetSite($id)->Fetch(); - - if ($site['SERVER_NAME']) { - $this->serverName = $site['SERVER_NAME']; - } else { - $this->serverName = $this->defaultServerName; - } - + $this->setSiteAddress($id); $barcodes = array(); $dbBarCode = CCatalogStoreBarCode::getList( From eba735b7403701b9549295688b57cc8b2cc2753e Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Wed, 26 Dec 2018 11:41:06 +0300 Subject: [PATCH 2/2] v2.4.2 --- CHANGELOG.md | 8 +- .../classes/general/events/RetailCrmEvent.php | 63 ++++++++------- .../classes/general/icml/RetailCrmICML.php | 2 +- .../general/order/RetailCrmOrder_v4.php | 16 +++- .../general/order/RetailCrmOrder_v5.php | 15 +++- intaro.retailcrm/description.ru | 5 +- intaro.retailcrm/export/export_run.php | 4 + intaro.retailcrm/export/export_setup.php | 76 +++++++++++-------- intaro.retailcrm/install/index.php | 20 ++++- intaro.retailcrm/install/step5.php | 13 ++++ intaro.retailcrm/install/version.php | 4 +- .../{ICMLLoader.php => RetailCrmICML.php} | 0 .../lang/ru/icml_export_setup.php | 1 + 13 files changed, 151 insertions(+), 76 deletions(-) rename intaro.retailcrm/lang/ru/classes/general/icml/{ICMLLoader.php => RetailCrmICML.php} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index b79db623..3e9ebf64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ +## 2018-12-26 v.2.4.2 +* Добавлена конвертация закупочной цены при выгрузке заказа +* Исправлен файл переводов для выгрузки каталога +* В настройку экспорта каталога добавлена настройка максимального количества торговых предложений у товара +* Исправлен вызов обработчика сохранения оплаты при создании заказа + ## 2018-11-02 v.2.4.1 -* исправлены ошибки в файле optoins.php +* Исправлены ошибки в файле options.php ## 2018-11-02 v.2.4.0 * Изменена привязка на событие сохранения заказа. Используется привязка к событию "OnSaleOrderSaved" diff --git a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php index b89af713..32f8d6a6 100644 --- a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php +++ b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php @@ -3,8 +3,9 @@ * RCrmEvent */ use \Bitrix\Main\Event; + class RetailCrmEvent -{ +{ protected static $MODULE_ID = 'intaro.retailcrm'; protected static $CRM_API_HOST_OPTION = 'api_host'; protected static $CRM_API_KEY_OPTION = 'api_key'; @@ -20,28 +21,30 @@ class RetailCrmEvent protected static $CRM_CONTRAGENT_TYPE = 'contragent_type'; protected static $CRM_ORDER_FAILED_IDS = 'order_failed_ids'; protected static $CRM_SITES_LIST = 'sites_list'; - + /** * OnAfterUserUpdate * * @param mixed $arFields - User arFields + * + * @return mixed */ function OnAfterUserUpdate($arFields) { if (isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) { return; } - + if (!$arFields['RESULT']) { return; } - + $api_host = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_HOST_OPTION, 0); $api_key = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_KEY_OPTION, 0); $api = new RetailCrm\ApiClient($api_host, $api_key); - + $optionsSitesList = unserialize(COption::GetOptionString(self::$MODULE_ID, self::$CRM_SITES_LIST, 0)); - + $resultOrder = RetailCrmUser::customerEdit($arFields, $api, $optionsSitesList); if (!$resultOrder) { RCrmActions::eventLog('RetailCrmEvent::OnAfterUserUpdate', 'RetailCrmUser::customerEdit', 'error update customer'); @@ -62,12 +65,12 @@ class RetailCrmEvent $GLOBALS['RETAILCRM_ORDER_OLD_EVENT'] = false; return; } - + $GLOBALS['RETAILCRM_ORDER_OLD_EVENT'] = true; return; } - + /** * orderDelete * @@ -79,13 +82,14 @@ class RetailCrmEvent return; } - + /** * orderSave - * + * * @param object $event - Order object + * + * @return bool */ - function orderSave($event) { if ($GLOBALS['RETAILCRM_ORDER_OLD_EVENT'] !== false && $GLOBALS['RETAIL_CRM_HISTORY'] !== true && $GLOBALS['RETAILCRM_ORDER_DELETE'] !== true) { @@ -199,13 +203,19 @@ class RetailCrmEvent /** * paymentSave * - * @param object $event - Payment object + * @param \Bitrix\Sale\Payment $event - Payment object */ function paymentSave($event) { $apiVersion = COption::GetOptionString(self::$MODULE_ID, 'api_version', 0); - if ((isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) || $apiVersion != 'v5') { + /** @var \Bitrix\Sale\Order $order */ + $order = $event->getCollection()->getOrder(); + + if ((isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) + || $apiVersion != 'v5' + || $order->isNew() + ) { return; } @@ -219,18 +229,10 @@ class RetailCrmEvent 'PAID' => $event->getField('PAID'), 'PAY_SYSTEM_ID' => $event->getField('PAY_SYSTEM_ID'), 'SUM' => $event->getField('SUM'), - 'LID' => $event->getField('LID'), + 'LID' => $order->getSiteId(), 'DATE_PAID' => $event->getField('DATE_PAID'), ); - try { - $newOrder = Bitrix\Sale\Order::load($arPayment['ORDER_ID']); - $arPayment['LID'] = $newOrder->getField('LID'); - } catch (Bitrix\Main\ArgumentNullException $e) { - RCrmActions::eventLog('RetailCrmEvent::paymentSave', 'Bitrix\Sale\Order::load', $e->getMessage() . ': ' . $arPayment['ORDER_ID']); - return; - } - if ($optionsSitesList) { if (array_key_exists($arPayment['LID'], $optionsSitesList) && $optionsSitesList[$arPayment['LID']] !== null) { $site = $optionsSitesList[$arPayment['LID']]; @@ -304,12 +306,14 @@ class RetailCrmEvent * * @param object $event - Payment object */ - function paymentDelete($event) { $apiVersion = COption::GetOptionString(self::$MODULE_ID, 'api_version', 0); - if ((isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) || $apiVersion != 'v5' || !$event->getId()) { + if ((isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) + || $apiVersion != 'v5' + || !$event->getId() + ) { return; } @@ -317,17 +321,10 @@ class RetailCrmEvent $arPayment = array( 'ID' => $event->getId(), - 'ORDER_ID' => $event->getField('ORDER_ID') + 'ORDER_ID' => $event->getField('ORDER_ID'), + 'LID' => $event->getCollection()->getOrder()->getSiteId() ); - try { - $newOrder = Bitrix\Sale\Order::load($arPayment['ORDER_ID']); - $arPayment['LID'] = $newOrder->getField('LID'); - } catch (Bitrix\Main\ArgumentNullException $e) { - RCrmActions::eventLog('RetailCrmEvent::paymentDelete', 'Bitrix\Sale\Order::load', $e->getMessage() . ': ' . $arPayment['ORDER_ID']); - return; - } - if ($optionsSitesList) { if (array_key_exists($arPayment['LID'], $optionsSitesList) && $optionsSitesList[$arPayment['LID']] !== null) { $site = $optionsSitesList[$arPayment['LID']]; diff --git a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php index 5c04cc3d..cd726c87 100644 --- a/intaro.retailcrm/classes/general/icml/RetailCrmICML.php +++ b/intaro.retailcrm/classes/general/icml/RetailCrmICML.php @@ -23,11 +23,11 @@ class RetailCrmICML public $loadPurchasePrice = false; public $productPictures; public $skuPictures; + public $offerPageSize = 50; protected $fp; protected $mainSection = 1000000; protected $pageSize = 500; - protected $offerPageSize = 50; protected $protocol; protected $isLogged = false; diff --git a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v4.php b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v4.php index 3f14a7be..a3312917 100644 --- a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v4.php +++ b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v4.php @@ -20,6 +20,7 @@ class RetailCrmOrder public static $CRM_ORDER_HISTORY_DATE = 'order_history_date'; public static $CRM_CATALOG_BASE_PRICE = 'catalog_base_price'; public static $CRM_ORDER_NUMBERS = 'order_numbers'; + public static $CRM_CURRENCY = 'currency'; const CANCEL_PROPERTY_CODE = 'INTAROCRM_IS_CANCELED'; @@ -44,6 +45,9 @@ class RetailCrmOrder return false; } + $optionsCurrency = COption::GetOptionString(self::$MODULE_ID, self::$CRM_CURRENCY, 0); + $currency = $optionsCurrency ? $optionsCurrency : \Bitrix\Currency\CurrencyManager::getBaseCurrency(); + $order = array( 'number' => $arFields['NUMBER'], 'externalId' => $arFields['ID'], @@ -137,7 +141,17 @@ class RetailCrmOrder $pp = CCatalogProduct::GetByID($product['PRODUCT_ID']); if (is_null($pp['PURCHASING_PRICE']) == false) { - $item['purchasePrice'] = $pp['PURCHASING_PRICE']; + if ($pp['PURCHASING_CURRENCY'] && $currency != $pp['PURCHASING_CURRENCY']) { + $purchasePrice = CCurrencyRates::ConvertCurrency( + (double) $pp['PURCHASING_PRICE'], + $pp['PURCHASING_CURRENCY'], + $currency + ); + } else { + $purchasePrice = $pp['PURCHASING_PRICE']; + } + + $item['purchasePrice'] = $purchasePrice; } $item['discount'] = (double) $product['DISCOUNT_PRICE']; $item['discountPercent'] = 0; diff --git a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php index 55e432b6..1f7ce7ba 100644 --- a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php +++ b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php @@ -21,6 +21,7 @@ class RetailCrmOrder public static $CRM_CATALOG_BASE_PRICE = 'catalog_base_price'; public static $CRM_ORDER_NUMBERS = 'order_numbers'; public static $CRM_ORDER_DIMENSIONS = 'order_dimensions'; + public static $CRM_CURRENCY = 'currency'; const CANCEL_PROPERTY_CODE = 'INTAROCRM_IS_CANCELED'; @@ -46,6 +47,8 @@ class RetailCrmOrder } $dimensionsSetting = COption::GetOptionString(self::$MODULE_ID, self::$CRM_ORDER_DIMENSIONS, 'N'); + $optionsCurrency = COption::GetOptionString(self::$MODULE_ID, self::$CRM_CURRENCY, 0); + $currency = $optionsCurrency ? $optionsCurrency : \Bitrix\Currency\CurrencyManager::getBaseCurrency(); $order = array( 'number' => $arFields['NUMBER'], @@ -146,7 +149,17 @@ class RetailCrmOrder $pp = CCatalogProduct::GetByID($product['PRODUCT_ID']); if (is_null($pp['PURCHASING_PRICE']) == false) { - $item['purchasePrice'] = $pp['PURCHASING_PRICE']; + if ($pp['PURCHASING_CURRENCY'] && $currency != $pp['PURCHASING_CURRENCY']) { + $purchasePrice = CCurrencyRates::ConvertCurrency( + (double) $pp['PURCHASING_PRICE'], + $pp['PURCHASING_CURRENCY'], + $currency + ); + } else { + $purchasePrice = $pp['PURCHASING_PRICE']; + } + + $item['purchasePrice'] = $purchasePrice; } $discount = (double) $product['DISCOUNT_PRICE']; diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index 8d30d07b..fc95c52e 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1 +1,4 @@ -- исправлены ошибки \ No newline at end of file +- Добавлена конвертация закупочной цены при выгрузке заказа +- Исправлен файл переводов для выгрузки каталога +- В настройку экспорта каталога добавлена настройка максимального количества торговых предложений у товара +- Исправлен вызов обработчика сохранения оплаты при создании заказа \ No newline at end of file diff --git a/intaro.retailcrm/export/export_run.php b/intaro.retailcrm/export/export_run.php index a6f25e73..f69a5b9d 100644 --- a/intaro.retailcrm/export/export_run.php +++ b/intaro.retailcrm/export/export_run.php @@ -144,6 +144,10 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor $loader->highloadblockProductProperties = $IBLOCK_PROPERTY_PRODUCT_HIGHLOADBLOCK; } + if ($MAX_OFFERS_VALUE) { + $loader->offerPageSize = $MAX_OFFERS_VALUE; + } + $loader->filename = $SETUP_FILE_NAME; $loader->defaultServerName = $SERVER_NAME; $loader->application = $APPLICATION; diff --git a/intaro.retailcrm/export/export_setup.php b/intaro.retailcrm/export/export_setup.php index 67d73905..c7116602 100644 --- a/intaro.retailcrm/export/export_setup.php +++ b/intaro.retailcrm/export/export_setup.php @@ -32,7 +32,7 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor "picture" => "picture" ); - if(!check_bitrix_sessid()) { + if (!check_bitrix_sessid()) { return; } @@ -69,43 +69,41 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor } } - if (($ACTION == 'EXPORT' || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1) - { + if (($ACTION == 'EXPORT' || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1) { if (isset($arOldSetupVars['SETUP_FILE_NAME'])) - $SETUP_FILE_NAME = $arOldSetupVars['SETUP_FILE_NAME']; + $SETUP_FILE_NAME = $arOldSetupVars['SETUP_FILE_NAME']; if (isset($arOldSetupVars['LOAD_PURCHASE_PRICE'])) - $LOAD_PURCHASE_PRICE = $arOldSetupVars['LOAD_PURCHASE_PRICE']; + $LOAD_PURCHASE_PRICE = $arOldSetupVars['LOAD_PURCHASE_PRICE']; if (isset($arOldSetupVars['SETUP_PROFILE_NAME'])) - $SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME']; - if (isset($arOldSetupVars['IBLOCK_EXPORT'])) - $IBLOCK_EXPORT = $arOldSetupVars['IBLOCK_EXPORT']; - - $IBLOCK_PROPERTY_SKU = array(); - $IBLOCK_PROPERTY_UNIT_SKU = array(); - foreach ($iblockProperties as $prop) { - foreach ($arOldSetupVars['IBLOCK_PROPERTY_SKU'. '_' . $prop] as $iblock => $val) { - $IBLOCK_PROPERTY_SKU[$iblock][$prop] = $val; - } - foreach ($arOldSetupVars['IBLOCK_PROPERTY_UNIT_SKU'. '_' . $prop] as $iblock => $val) { - $IBLOCK_PROPERTY_UNIT_SKU[$iblock][$prop] = $val; - } + $SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME']; + if (isset($arOldSetupVars['IBLOCK_EXPORT'])) + $IBLOCK_EXPORT = $arOldSetupVars['IBLOCK_EXPORT']; + if (isset($arOldSetupVars['IBLOCK_EXPORT'])) + $MAX_OFFERS_VALUE = $arOldSetupVars['MAX_OFFERS_VALUE']; + $IBLOCK_PROPERTY_SKU = []; + $IBLOCK_PROPERTY_UNIT_SKU = []; + foreach ($iblockProperties as $prop) { + foreach ($arOldSetupVars['IBLOCK_PROPERTY_SKU' . '_' . $prop] as $iblock => $val) { + $IBLOCK_PROPERTY_SKU[$iblock][$prop] = $val; } - - $IBLOCK_PROPERTY_PRODUCT = array(); - $IBLOCK_PROPERTY_UNIT_PRODUCT = array(); - foreach ($iblockProperties as $prop) { - foreach ($arOldSetupVars['IBLOCK_PROPERTY_PRODUCT'. '_' . $prop] as $iblock => $val) { - $IBLOCK_PROPERTY_PRODUCT[$iblock][$prop] = $val; - } - foreach ($arOldSetupVars['IBLOCK_PROPERTY_UNIT_PRODUCT'. '_' . $prop] as $iblock => $val) { - $IBLOCK_PROPERTY_UNIT_PRODUCT[$iblock][$prop] = $val; - } + foreach ($arOldSetupVars['IBLOCK_PROPERTY_UNIT_SKU' . '_' . $prop] as $iblock => $val) { + $IBLOCK_PROPERTY_UNIT_SKU[$iblock][$prop] = $val; } + } + + $IBLOCK_PROPERTY_PRODUCT = []; + $IBLOCK_PROPERTY_UNIT_PRODUCT = []; + foreach ($iblockProperties as $prop) { + foreach ($arOldSetupVars['IBLOCK_PROPERTY_PRODUCT' . '_' . $prop] as $iblock => $val) { + $IBLOCK_PROPERTY_PRODUCT[$iblock][$prop] = $val; + } + foreach ($arOldSetupVars['IBLOCK_PROPERTY_UNIT_PRODUCT' . '_' . $prop] as $iblock => $val) { + $IBLOCK_PROPERTY_UNIT_PRODUCT[$iblock][$prop] = $val; + } + } } - - - if ($STEP>1) + if ($STEP > 1) { if (strlen($SETUP_FILE_NAME)<=0) @@ -647,6 +645,18 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor

+ +

+ +
+
+
+ +

$propertiesProduct, 'IBLOCK_PROPERTY_UNIT_PRODUCT' => $propertiesUnitProduct, 'SETUP_FILE_NAME' => $filename, - 'SETUP_PROFILE_NAME' => $profileName + 'SETUP_PROFILE_NAME' => $profileName, + 'MAX_OFFERS_VALUE' => $maxOffers ); global $oldValues; $oldValues = $arOldValues; @@ -938,6 +945,10 @@ class intaro_retailcrm extends CModule $loader->highloadblockProductProperties = $propertiesHbProduct; } + if ($maxOffers) { + $loader->offerPageSize = $maxOffers; + } + $loader->filename = $filename; $loader->serverName = \Bitrix\Main\Context::getCurrent()->getServer()->getHttpHost(); $loader->application = $APPLICATION; @@ -964,7 +975,8 @@ class intaro_retailcrm extends CModule $propertiesUnitSKU, $propertiesHbSKU, $propertiesHbProduct, - $filename + $filename, + $maxOffers ); $PROFILE_ID = CCatalogExport::Add(array( "LAST_USE" => false, @@ -1213,7 +1225,8 @@ class intaro_retailcrm extends CModule $propertiesUnitSKU, $propertiesHbSKU, $propertiesHbProduct, - $filename + $filename, + $maxOffers ) { $strVars = ""; foreach ($iblocks as $key => $val) @@ -1244,6 +1257,7 @@ class intaro_retailcrm extends CModule } $strVars .= 'SETUP_FILE_NAME=' . urlencode($filename); + $strVars .= '&MAX_OFFERS_VALUE=' . urlencode($maxOffers); return $strVars; } diff --git a/intaro.retailcrm/install/step5.php b/intaro.retailcrm/install/step5.php index 57894d48..6fa29689 100644 --- a/intaro.retailcrm/install/step5.php +++ b/intaro.retailcrm/install/step5.php @@ -17,6 +17,7 @@ if (!empty($oldValues)) { $IBLOCK_PROPERTY_UNIT_PRODUCT = $oldValues['IBLOCK_PROPERTY_UNIT_PRODUCT']; $SETUP_FILE_NAME = $oldValues['SETUP_FILE_NAME']; $SETUP_PROFILE_NAME = $oldValues['SETUP_PROFILE_NAME']; + $MAX_OFFERS_VALUE = $oldValues['MAX_OFFERS_VALUE']; } ?> @@ -475,6 +476,18 @@ if (!empty($oldValues)) {

+
+  

+ +
+
+
+
+



diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index def97453..ae5bd9a1 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,5 +1,5 @@ "2.4.1", - "VERSION_DATE" => "2018-11-14 16:22:12" + "VERSION" => "2.4.2", + "VERSION_DATE" => "2018-12-26 11:00:00" ); diff --git a/intaro.retailcrm/lang/ru/classes/general/icml/ICMLLoader.php b/intaro.retailcrm/lang/ru/classes/general/icml/RetailCrmICML.php similarity index 100% rename from intaro.retailcrm/lang/ru/classes/general/icml/ICMLLoader.php rename to intaro.retailcrm/lang/ru/classes/general/icml/RetailCrmICML.php diff --git a/intaro.retailcrm/lang/ru/icml_export_setup.php b/intaro.retailcrm/lang/ru/icml_export_setup.php index d31a9a52..f8c60762 100644 --- a/intaro.retailcrm/lang/ru/icml_export_setup.php +++ b/intaro.retailcrm/lang/ru/icml_export_setup.php @@ -44,3 +44,4 @@ $MESS["UNIT_MEASUREMENT_G"] = "г."; $MESS["UNIT_MEASUREMENT_KG"] = "кг."; $MESS['BASE_PRICE'] = 'Базовая цена'; $MESS['WAIT'] = 'Загрузка...'; +$MESS["OFFERS_VALUE"] = "Максимальное количество торговых предложений у товара";