commit
c330a7fbd2
@ -1,3 +1,7 @@
|
||||
## 2016-11-15 v.2.1.1
|
||||
* Исправлена проблема с отсутствием в настройках доставок
|
||||
* Небольшие исправления
|
||||
|
||||
## 2016-10-31 v.2.1.0
|
||||
* Добавлена передача адреса из карточки клиента в retailCRM
|
||||
* Добавлено больше информации в журнале битрикса и дополнительное логирование
|
||||
|
@ -42,7 +42,7 @@ class RCrmActions
|
||||
$arDeliveryServiceAll = \Bitrix\Sale\Delivery\Services\Manager::getActiveList();
|
||||
$noOrderId = \Bitrix\Sale\Delivery\Services\EmptyDeliveryService::getEmptyDeliveryServiceId();
|
||||
foreach ($arDeliveryServiceAll as $arDeliveryService) {
|
||||
if ($arDeliveryService['PARENT_ID'] == '0' && $arDeliveryService['ID'] != $noOrderId) {
|
||||
if (($arDeliveryService['PARENT_ID'] == '0' || $arDeliveryService['PARENT_ID'] == null) && $arDeliveryService['ID'] != $noOrderId) {
|
||||
$bitrixDeliveryTypesList[] = $arDeliveryService;
|
||||
}
|
||||
}
|
||||
|
2774
intaro.retailcrm/classes/general/config/country.xml
Normal file
2774
intaro.retailcrm/classes/general/config/country.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -189,6 +189,9 @@
|
||||
"site": {
|
||||
"type": "string"
|
||||
},
|
||||
"countryIso": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"type": "bool",
|
||||
"default": false
|
||||
|
@ -497,7 +497,7 @@ class RetailCrmHistory
|
||||
}
|
||||
|
||||
try {
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id');
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id', $order['site']);
|
||||
} catch (\RetailCrm\Exception\CurlException $e) {
|
||||
RCrmActions::eventLog(
|
||||
'RetailCrmHistory::orderHistory', 'RetailCrm\RestApi::ordersGet0::CurlException',
|
||||
@ -552,18 +552,20 @@ class RetailCrmHistory
|
||||
}
|
||||
} elseif (array_key_exists($key, $order['delivery']['address'])) {
|
||||
if ($propsKey[$orderProp]['TYPE'] == 'LOCATION') {
|
||||
$parameters = array();
|
||||
$loc = explode('.', $order['delivery']['address'][$key]);
|
||||
if (count($loc) == 1) {
|
||||
$parameters['filter']['NAME'] = RCrmActions::fromJSON(trim($loc[0]));
|
||||
} elseif (count($loc) == 2) {
|
||||
$parameters['filter']['NAME'] = RCrmActions::fromJSON(trim($loc[1]));
|
||||
} else{
|
||||
RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'RetailCrmHistory::setProp', 'Error location ' . $order['delivery']['address'][$key] . ' not found add in order id=' . $order['externalId']);
|
||||
continue;
|
||||
if(!empty($order['delivery']['address'][$key])){
|
||||
$parameters = array();
|
||||
$loc = explode('.', $order['delivery']['address'][$key]);
|
||||
if (count($loc) == 1) {
|
||||
$parameters['filter']['NAME'] = RCrmActions::fromJSON(trim($loc[0]));
|
||||
} elseif (count($loc) == 2) {
|
||||
$parameters['filter']['NAME'] = RCrmActions::fromJSON(trim($loc[1]));
|
||||
} else{
|
||||
RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'RetailCrmHistory::setProp', 'Error location ' . $order['delivery']['address'][$key] . ' not found add in order id=' . $order['externalId']);
|
||||
continue;
|
||||
}
|
||||
$parameters['filter']['LANGUAGE_ID'] = 'ru';
|
||||
$location = \Bitrix\Sale\Location\LocationTable::getListFast($parameters)->fetch();
|
||||
}
|
||||
$parameters['filter']['LANGUAGE_ID'] = 'ru';
|
||||
$location = \Bitrix\Sale\Location\LocationTable::getListFast($parameters)->fetch();
|
||||
$somePropValue = $propertyCollection->getItemByOrderPropertyId($propsKey[$orderProp]['ID']);
|
||||
self::setProp($somePropValue, $location['CODE']);
|
||||
} else {
|
||||
@ -635,22 +637,22 @@ class RetailCrmHistory
|
||||
if (array_key_exists('discount', $product) || array_key_exists('discountPercent', $product)) {
|
||||
if (!isset($orderCrm)) {
|
||||
try {
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id');
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id', $order['site']);
|
||||
} catch (\RetailCrm\Exception\CurlException $e) {
|
||||
RCrmActions::eventLog(
|
||||
'RetailCrmHistory::orderHistory', 'RetailCrm\RestApi::ordersGet::CurlException',
|
||||
'RetailCrmHistory::orderHistory', 'RetailCrm\RestApi::ordersGet1::CurlException',
|
||||
$e->getCode() . ': ' . $e->getMessage()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($orderCrm['order']['items'] as $itemCrm) {
|
||||
if ($itemCrm['offer']['externalId'] == $product['offer']['externalId']) {
|
||||
$itemCost = $itemCrm['initialPrice'] - $itemCrm['discount'] - round(($itemCrm['initialPrice'] / 100 * $itemCrm['discountPercent']), 2);
|
||||
break;
|
||||
if (isset($orderCrm['order']['items'])) {
|
||||
foreach ($orderCrm['order']['items'] as $itemCrm) {
|
||||
if ($itemCrm['offer']['externalId'] == $product['offer']['externalId']) {
|
||||
$itemCost = $itemCrm['initialPrice'] - $itemCrm['discount'] - round(($itemCrm['initialPrice'] / 100 * $itemCrm['discountPercent']), 2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($itemCost) && $itemCost > 0) {
|
||||
$item->setField('CUSTOM_PRICE', 'Y');
|
||||
$item->setField('PRICE', $itemCost);
|
||||
@ -691,7 +693,7 @@ class RetailCrmHistory
|
||||
//если пусто, удаляем, если нет, update или add
|
||||
if (!isset($orderCrm)) {
|
||||
try {
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id');
|
||||
$orderCrm = $api->ordersGet($order['id'], 'id', $order['site']);
|
||||
} catch (\RetailCrm\Exception\CurlException $e) {
|
||||
RCrmActions::eventLog(
|
||||
'RetailCrmHistory::orderHistory', 'RetailCrm\RestApi::ordersGet2::CurlException',
|
||||
|
@ -57,7 +57,7 @@ class RetailCrmOrder
|
||||
$arParams['optionsOrderTypes'][$arFields['PERSON_TYPE_ID']] : '',
|
||||
'status' => isset($arParams['optionsPayStatuses'][$arFields['STATUS_ID']]) ?
|
||||
$arParams['optionsPayStatuses'][$arFields['STATUS_ID']] : '',
|
||||
//'statusComment' => $arFields['REASON_CANCELED'],
|
||||
'statusComment' => $arFields['REASON_CANCELED'],
|
||||
'customerComment' => $arFields['USER_DESCRIPTION'],
|
||||
'managerComment' => $arFields['COMMENTS'],
|
||||
'delivery' => array(
|
||||
@ -86,9 +86,26 @@ class RetailCrmOrder
|
||||
if ($prop['TYPE'] == 'LOCATION' && isset($prop['VALUE'][0]) && $prop['VALUE'][0] != '') {
|
||||
$arLoc = \Bitrix\Sale\Location\LocationTable::getByCode($prop['VALUE'][0])->fetch();
|
||||
if ($arLoc) {
|
||||
$server = \Bitrix\Main\Context::getCurrent()->getServer()->getDocumentRoot();
|
||||
$countrys = array();
|
||||
if (file_exists($server . '/bitrix/modules/intaro.retailcrm/classes/general/config/objects.xml')) {
|
||||
$countrysFile = simplexml_load_file($server . '/bitrix/modules/intaro.retailcrm/classes/general/config/country.xml');
|
||||
foreach ($countrysFile->country as $country) {
|
||||
$countrys[RCrmActions::fromJSON((string) $country->name)] = (string) $country->alpha;
|
||||
}
|
||||
}
|
||||
$location = \Bitrix\Sale\Location\Name\LocationTable::getList(array(
|
||||
'filter' => array('=LOCATION_ID' => $arLoc['CITY_ID'], 'LANGUAGE_ID' => 'ru')
|
||||
))->fetch();
|
||||
if (count($countrys) > 0) {
|
||||
$countryOrder = \Bitrix\Sale\Location\Name\LocationTable::getList(array(
|
||||
'filter' => array('=LOCATION_ID' => $arLoc['COUNTRY_ID'], 'LANGUAGE_ID' => 'ru')
|
||||
))->fetch();
|
||||
if(isset($countrys[$countryOrder['NAME']])){
|
||||
$order['countryIso'] = $countrys[$countryOrder['NAME']];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$prop['VALUE'][0] = $location['NAME'];
|
||||
}
|
||||
@ -305,6 +322,7 @@ class RetailCrmOrder
|
||||
'BASKET' => array(),
|
||||
'USER_DESCRIPTION' => $obOrder->getField('USER_DESCRIPTION'),
|
||||
'COMMENTS' => $obOrder->getField('COMMENTS'),
|
||||
'REASON_CANCELED' => $obOrder->getField('REASON_CANCELED'),
|
||||
);
|
||||
|
||||
$shipmentList = $obOrder->getShipmentCollection();
|
||||
|
@ -1,3 +1,2 @@
|
||||
- Добавлена передача адреса из карточки клиента в retailCRM
|
||||
- Добавлено больше информации в журнале битрикса и дополнительное логирование
|
||||
- Исправлена проблема с отсутствием в настройках доставок
|
||||
- Небольшие исправления
|
@ -333,7 +333,7 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor
|
||||
class="property-export"
|
||||
onchange="propertyChange(this);">
|
||||
<option value=""></option>
|
||||
<?if (version_compare(SM_VERSION, '14.0.0', '>=') && array_key_exists($key, $iblockFieldsName) && $arIBlock['PROPERTIES_SKU'] == null) :?>
|
||||
<?if (version_compare(SM_VERSION, '14.0.0', '>=') && array_key_exists($key, $iblockFieldsName)) :?>
|
||||
<optgroup label="<?=GetMessage("SELECT_FIELD_NAME");?>">
|
||||
<? foreach ($iblockFieldsName as $keyField => $field): ?>
|
||||
|
||||
@ -554,7 +554,7 @@ if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/retailcrm/expor
|
||||
'catalog',
|
||||
'export_default_path',
|
||||
'/bitrix/catalog_export/'))
|
||||
.'retailcrm'/* .mt_rand(0, 999999) */.'.xml'
|
||||
.'retailcrm'.'.xml'
|
||||
); ?>" size="50">
|
||||
<br>
|
||||
<br>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?
|
||||
$arModuleVersion = array(
|
||||
"VERSION" => "2.1.0",
|
||||
"VERSION_DATE" => "2016-10-31 17:00:00"
|
||||
"VERSION" => "2.1.1",
|
||||
"VERSION_DATE" => "2016-11-15 17:00:00"
|
||||
);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user