diff --git a/CHANGELOG.md b/CHANGELOG.md index ae57e377..f732a6d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2020-01-09 v.5.2.5 +* Добавлена передача "externalIds" у позиций товаров в заказе +* Добавлено разделение поля строение/корпус на два отдельных + +## 2019-12-20 v.5.2.4 +* Добавлена обработка изменения номера заказа по истории + ## 2019-11-1 v.2.5.3 * Исправление при обработке полученных изменений о контрагенте * При обработки истории по клиентам добавлены кастомные поля diff --git a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php index 6a09b5d5..7dba46e4 100644 --- a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php +++ b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php @@ -139,10 +139,44 @@ class RetailCrmOrder $height = 0; $length = 0; + if ('ordersEdit' == $methodApi) { + $response = RCrmActions::apiMethod($api, 'ordersGet', __METHOD__, $order['externalId']); + if (isset($response['order'])) { + foreach ($response['order']['items'] as $k => $item) { + $externalId = $k ."_". $item['offer']['externalId']; + $orderItems[$externalId] = $item; + } + } + } + //basket - foreach ($arFields['BASKET'] as $product) { + foreach ($arFields['BASKET'] as $position => $product) { + $externalId = $position ."_". $product['PRODUCT_ID']; + if (isset($orderItems[$externalId])) { //update + $externalIds = $orderItems[$externalId]['externalIds']; + $key = array_search("bitrix", array_column($externalIds, 'code')); + if ($externalIds[$key]['code'] == "bitrix") { + $externalIds[$key] = array( + 'code' => 'bitrix', + 'value' => $externalId, + ); + } else { + $externalIds[] = array( + 'code' => 'bitrix', + 'value' => $externalId, + ); + } + } else { //create + $externalIds = array( + array( + 'code' => 'bitrix', + 'value' => $externalId, + ) + ); + } + $item = array( - 'externalId' => $product['PRODUCT_ID'], + 'externalIds' => $externalIds, 'quantity' => $product['QUANTITY'], 'offer' => array('externalId' => $product['PRODUCT_ID'], 'xmlId' => $product['PRODUCT_XML_ID'] diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index 0f4f17aa..06fa1c8e 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1 +1,2 @@ -- Добавлена обработка изменения номера заказа по истории +- Добавлена передача "externalIds" у позиций товаров в заказе +- Добавлено разделение поля строение/корпус на два отдельных diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index 0ad6624e..257b4039 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,5 +1,5 @@ "5.2.4", - "VERSION_DATE" => "2019-12-10 15:03:00" + "VERSION" => "5.2.5", + "VERSION_DATE" => "2020-01-09 12:02:00" );