Compare commits
No commits in common. "master" and "v6.6.3" have entirely different histories.
14 changed files with 1199 additions and 134 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -49,7 +49,7 @@ jobs:
|
||||||
run: composer validate
|
run: composer validate
|
||||||
- name: Cache Composer packages
|
- name: Cache Composer packages
|
||||||
id: composer-cache
|
id: composer-cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: vendor
|
path: vendor
|
||||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||||
|
|
25
CHANGELOG.md
25
CHANGELOG.md
|
@ -1,28 +1,3 @@
|
||||||
|
|
||||||
## 2025-03-26 v6.6.11
|
|
||||||
- Исправлена передача габаритов при выгрузке заказов по агенту
|
|
||||||
|
|
||||||
## 2025-03-25 v6.6.10
|
|
||||||
- Исправлено некорректное изменение статуса оплаты отмененных заказов
|
|
||||||
|
|
||||||
## 2025-03-04 v6.6.9
|
|
||||||
- Исправлено обновление модуля
|
|
||||||
|
|
||||||
## 2025-03-03 v6.6.8
|
|
||||||
- Исправлена ошибка экспорта дополнительных свойств товаров
|
|
||||||
|
|
||||||
## 2025-02-04 v6.6.7
|
|
||||||
- Исправлена ошибка установки модуля на PHP 8.0
|
|
||||||
|
|
||||||
## 2025-01-29 v6.6.6
|
|
||||||
- Поддержка нулевой закупочной стоимости при генерации каталога
|
|
||||||
|
|
||||||
## 2025-01-28 v6.6.5
|
|
||||||
- Исправлена ошибка редактирования интеграционных доставок при активации опции передачи статусов интеграционных оплат
|
|
||||||
|
|
||||||
## 2025-01-27 v6.6.4
|
|
||||||
- Исправлено некорректное удаление признака применения промокода при изменении состава заказа в CRM
|
|
||||||
|
|
||||||
## 2025-01-14 v6.6.3
|
## 2025-01-14 v6.6.3
|
||||||
- Исправлены ошибки при обновлении модуля
|
- Исправлены ошибки при обновлении модуля
|
||||||
|
|
||||||
|
|
|
@ -1226,6 +1226,7 @@ class RetailCrmHistory
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists('discountTotal_sum', $collectItems[$product['offer']['externalId']])) {
|
if (array_key_exists('discountTotal_sum', $collectItems[$product['offer']['externalId']])) {
|
||||||
|
$item->setField('CUSTOM_PRICE', 'Y');
|
||||||
$item->setField('DISCOUNT_NAME', '');
|
$item->setField('DISCOUNT_NAME', '');
|
||||||
$item->setField('DISCOUNT_VALUE', '');
|
$item->setField('DISCOUNT_VALUE', '');
|
||||||
|
|
||||||
|
@ -1239,7 +1240,6 @@ class RetailCrmHistory
|
||||||
$price = self::truncate($price, 2);
|
$price = self::truncate($price, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
$item->markFieldCustom('PRICE');
|
|
||||||
$item->setField('PRICE', $price);
|
$item->setField('PRICE', $price);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2062,7 +2062,7 @@ class RetailCrmHistory
|
||||||
$payment->delete();
|
$payment->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($paymentsCrm['totalSumm'] == $paySumm && $order->getField('CANCELED') !== 'Y') {
|
if ($paymentsCrm['totalSumm'] == $paySumm) {
|
||||||
$order->setFieldNoDemand('PAYED', 'Y');
|
$order->setFieldNoDemand('PAYED', 'Y');
|
||||||
} else {
|
} else {
|
||||||
$order->setFieldNoDemand('PAYED', 'N');
|
$order->setFieldNoDemand('PAYED', 'N');
|
||||||
|
|
|
@ -358,7 +358,7 @@ class RetailCrmOrder
|
||||||
|
|
||||||
$order['items'][] = $item;
|
$order['items'][] = $item;
|
||||||
|
|
||||||
if ($dimensionsSetting === 'Y') {
|
if ($send && $dimensionsSetting === 'Y') {
|
||||||
$dimensions = RCrmActions::unserializeArrayRecursive($product['DIMENSIONS']);
|
$dimensions = RCrmActions::unserializeArrayRecursive($product['DIMENSIONS']);
|
||||||
|
|
||||||
if ($dimensions !== false) {
|
if ($dimensions !== false) {
|
||||||
|
@ -370,7 +370,7 @@ class RetailCrmOrder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($dimensionsSetting === 'Y') {
|
if ($send && $dimensionsSetting === 'Y') {
|
||||||
$order['width'] = $width;
|
$order['width'] = $width;
|
||||||
$order['height'] = $height;
|
$order['height'] = $height;
|
||||||
$order['length'] = $length;
|
$order['length'] = $length;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
- Исправлена передача габаритов при выгрузке заказов по агенту
|
- Исправлены ошибки при обновлении модуля
|
||||||
|
|
|
@ -39,7 +39,7 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/retailcrm/exp
|
||||||
}
|
}
|
||||||
|
|
||||||
global $PROFILE_ID;
|
global $PROFILE_ID;
|
||||||
$settingService = SettingsService::getInstance([], '', $PROFILE_ID ?? $profile_id);
|
$settingService = SettingsService::getInstance([], '', $PROFILE_ID);
|
||||||
$iblockPropertySku = [];
|
$iblockPropertySku = [];
|
||||||
$iblockPropertySkuHl = [];
|
$iblockPropertySkuHl = [];
|
||||||
$iblockPropertyUnitSku = [];
|
$iblockPropertyUnitSku = [];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$arModuleVersion = [
|
$arModuleVersion = [
|
||||||
'VERSION' => '6.6.11',
|
'VERSION' => '6.6.3',
|
||||||
'VERSION_DATE' => '2025-03-26 16:00:00'
|
'VERSION_DATE' => '2025-01-14 18:00:00'
|
||||||
];
|
];
|
||||||
|
|
|
@ -148,7 +148,7 @@ $MESS ['NO_INTEGRATION_PAYMENT'] = '(Non-integrated)';
|
||||||
$MESS ['ERR_CHECK_JOURNAL'] = 'Error while saving. Details in the event log';
|
$MESS ['ERR_CHECK_JOURNAL'] = 'Error while saving. Details in the event log';
|
||||||
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Error in comparing integration payments';
|
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Error in comparing integration payments';
|
||||||
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Error when updating payment methods for deliveries';
|
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Error when updating payment methods for deliveries';
|
||||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'When correlating CMS and CRM integration payments, a regular payment is created on the system side to which orders will be linked. <br> If you have integration deliveries in your CRM, then you need to enable the new payment method in the integration settings';
|
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'When correlating CMS and CRM integration payments, a regular payment is created on the system side to which orders will be linked.';
|
||||||
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'For this option to work correctly, the api key needs access to receive and edit reference book';
|
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'For this option to work correctly, the api key needs access to receive and edit reference book';
|
||||||
|
|
||||||
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Fix customer registration date in CRM';
|
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Fix customer registration date in CRM';
|
||||||
|
|
|
@ -213,7 +213,7 @@ $MESS ['NO_INTEGRATION_PAYMENT'] = '(Не интеграционная)';
|
||||||
$MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий';
|
$MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий';
|
||||||
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка при сопоставлении интеграционных оплат';
|
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка при сопоставлении интеграционных оплат';
|
||||||
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Ошибка при обновлении способов оплаты для доставок';
|
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Ошибка при обновлении способов оплаты для доставок';
|
||||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы. <br> Если в вашей CRM используются интеграционные доставки, новый способ оплаты необходимо вручную активировать в настройках интеграций.';
|
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы.';
|
||||||
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции апи-ключу необходимы доступы на получение и редактирование справочников';
|
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции апи-ключу необходимы доступы на получение и редактирование справочников';
|
||||||
|
|
||||||
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Исправление даты регистрации клиентов в CRM';
|
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Исправление даты регистрации клиентов в CRM';
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace Intaro\RetailCrm\Component;
|
||||||
*/
|
*/
|
||||||
class Constants
|
class Constants
|
||||||
{
|
{
|
||||||
public const MODULE_VERSION = '6.6.11';
|
public const MODULE_VERSION = '6.6.3';
|
||||||
public const CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null';
|
public const CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null';
|
||||||
public const BITRIX_USER_ID_PREFIX = 'bitrixUserId-';
|
public const BITRIX_USER_ID_PREFIX = 'bitrixUserId-';
|
||||||
public const CRM_USERS_MAP = 'crm_users_map';
|
public const CRM_USERS_MAP = 'crm_users_map';
|
||||||
|
|
|
@ -163,7 +163,7 @@ class IcmlWriter
|
||||||
$this->writeOptionalSimpleElement('vatRate', $offer->vatRate);
|
$this->writeOptionalSimpleElement('vatRate', $offer->vatRate);
|
||||||
$this->writeOptionalSimpleElement('weight', $offer->weight);
|
$this->writeOptionalSimpleElement('weight', $offer->weight);
|
||||||
$this->writeOptionalSimpleElement('dimensions', $offer->dimensions);
|
$this->writeOptionalSimpleElement('dimensions', $offer->dimensions);
|
||||||
$this->writeOptionalPurchasePrice($offer->purchasePrice);
|
$this->writeOptionalSimpleElement('purchasePrice', $offer->purchasePrice);
|
||||||
$this->writer->endElement();
|
$this->writer->endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,16 +180,6 @@ class IcmlWriter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Запись закупочной стоимости
|
|
||||||
*
|
|
||||||
* @param $value
|
|
||||||
*/
|
|
||||||
private function writeOptionalPurchasePrice($value): void
|
|
||||||
{
|
|
||||||
$this->writeSimpleElement('purchasePrice', !empty($value) ? $value : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param $value
|
* @param $value
|
||||||
|
|
|
@ -178,12 +178,13 @@ class SettingsService
|
||||||
$customProps = [];
|
$customProps = [];
|
||||||
|
|
||||||
foreach ($this->customPropList as $propsByCatalog) {
|
foreach ($this->customPropList as $propsByCatalog) {
|
||||||
foreach ($propsByCatalog as $code => $value) {
|
$customProps = array_merge($customProps, $propsByCatalog);
|
||||||
$customProps[$code] = $value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_merge($this->defaultPropList, $customProps);
|
return [
|
||||||
|
...$this->defaultPropList,
|
||||||
|
...$customProps
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getPriceTypes()
|
private function getPriceTypes()
|
||||||
|
|
|
@ -877,9 +877,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
||||||
$substitutionPaymentList[$integrationPayment] = $codePayment;
|
$substitutionPaymentList[$integrationPayment] = $codePayment;
|
||||||
|
|
||||||
foreach ($originalPayment['deliveryTypes'] as $codeDelivery) {
|
foreach ($originalPayment['deliveryTypes'] as $codeDelivery) {
|
||||||
if (!isset($arResult['deliveryTypesList'][$codeDelivery]) ||
|
if (!isset($arResult['deliveryTypesList'][$codeDelivery])) {
|
||||||
isset($arResult['deliveryTypesList'][$codeDelivery]['integrationCode'])
|
|
||||||
) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1259
intaro.retailcrm/updater.php
Executable file → Normal file
1259
intaro.retailcrm/updater.php
Executable file → Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue