Compare commits
9 commits
Author | SHA1 | Date | |
---|---|---|---|
|
e61259ded9 | ||
|
0359315c79 | ||
|
08ff21ce04 | ||
|
de7ecd4100 | ||
|
54692c50d4 | ||
|
61044988d5 | ||
|
7a36fa5de7 | ||
|
8cf4420592 | ||
|
84c7d10146 |
15 changed files with 138 additions and 1200 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -49,7 +49,7 @@ jobs:
|
|||
run: composer validate
|
||||
- name: Cache Composer packages
|
||||
id: composer-cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
|
|
28
CHANGELOG.md
28
CHANGELOG.md
|
@ -1,3 +1,31 @@
|
|||
|
||||
## 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.2
|
||||
- Исправлена выгрузка архива заказов при установке модуля
|
||||
|
||||
|
|
|
@ -1226,7 +1226,6 @@ class RetailCrmHistory
|
|||
}
|
||||
|
||||
if (array_key_exists('discountTotal_sum', $collectItems[$product['offer']['externalId']])) {
|
||||
$item->setField('CUSTOM_PRICE', 'Y');
|
||||
$item->setField('DISCOUNT_NAME', '');
|
||||
$item->setField('DISCOUNT_VALUE', '');
|
||||
|
||||
|
@ -1240,6 +1239,7 @@ class RetailCrmHistory
|
|||
$price = self::truncate($price, 2);
|
||||
}
|
||||
|
||||
$item->markFieldCustom('PRICE');
|
||||
$item->setField('PRICE', $price);
|
||||
}
|
||||
|
||||
|
@ -2062,7 +2062,7 @@ class RetailCrmHistory
|
|||
$payment->delete();
|
||||
}
|
||||
|
||||
if ($paymentsCrm['totalSumm'] == $paySumm) {
|
||||
if ($paymentsCrm['totalSumm'] == $paySumm && $order->getField('CANCELED') !== 'Y') {
|
||||
$order->setFieldNoDemand('PAYED', 'Y');
|
||||
} else {
|
||||
$order->setFieldNoDemand('PAYED', 'N');
|
||||
|
|
|
@ -358,7 +358,7 @@ class RetailCrmOrder
|
|||
|
||||
$order['items'][] = $item;
|
||||
|
||||
if ($send && $dimensionsSetting === 'Y') {
|
||||
if ($dimensionsSetting === 'Y') {
|
||||
$dimensions = RCrmActions::unserializeArrayRecursive($product['DIMENSIONS']);
|
||||
|
||||
if ($dimensions !== false) {
|
||||
|
@ -370,7 +370,7 @@ class RetailCrmOrder
|
|||
}
|
||||
}
|
||||
|
||||
if ($send && $dimensionsSetting === 'Y') {
|
||||
if ($dimensionsSetting === 'Y') {
|
||||
$order['width'] = $width;
|
||||
$order['height'] = $height;
|
||||
$order['length'] = $length;
|
||||
|
|
|
@ -1 +1 @@
|
|||
- Исправлена выгрузка архива заказов при установке модуля
|
||||
- Исправлена передача габаритов при выгрузке заказов по агенту
|
|
@ -39,7 +39,7 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/retailcrm/exp
|
|||
}
|
||||
|
||||
global $PROFILE_ID;
|
||||
$settingService = SettingsService::getInstance([], '', $PROFILE_ID);
|
||||
$settingService = SettingsService::getInstance([], '', $PROFILE_ID ?? $profile_id);
|
||||
$iblockPropertySku = [];
|
||||
$iblockPropertySkuHl = [];
|
||||
$iblockPropertyUnitSku = [];
|
||||
|
|
|
@ -57,7 +57,7 @@ class intaro_retailcrm extends CModule
|
|||
$path = substr($path, 0, strlen($path) - strlen('/index.php'));
|
||||
$this->INSTALL_PATH = $path;
|
||||
|
||||
require_once($path . '/version.php');
|
||||
include($path . '/version.php');
|
||||
|
||||
$this->MODULE_VERSION = $arModuleVersion['VERSION'];
|
||||
$this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE'];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
$arModuleVersion = [
|
||||
'VERSION' => '6.6.2',
|
||||
'VERSION_DATE' => '2025-01-14 13:00:00'
|
||||
'VERSION' => '6.6.11',
|
||||
'VERSION_DATE' => '2025-03-26 16: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 ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Error in comparing integration payments';
|
||||
$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.';
|
||||
$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 ['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';
|
||||
|
|
|
@ -213,7 +213,7 @@ $MESS ['NO_INTEGRATION_PAYMENT'] = '(Не интеграционная)';
|
|||
$MESS ['ERR_CHECK_JOURNAL'] = 'Ошибка при сохранении. Подробности в журнале событий';
|
||||
$MESS ['ERROR_LINK_INTEGRATION_PAYMENT'] = 'Ошибка при сопоставлении интеграционных оплат';
|
||||
$MESS ['ERROR_UPDATE_PAYMENT_TYPES_DELIVERY'] = 'Ошибка при обновлении способов оплаты для доставок';
|
||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы.';
|
||||
$MESS ['INTEGRATION_PAYMENT_LABEL'] = 'При сопоставлении интеграционных оплат CRM, на стороне системы создаётся обычная оплата, к которой будут привязываться заказы. <br> Если в вашей CRM используются интеграционные доставки, новый способ оплаты необходимо вручную активировать в настройках интеграций.';
|
||||
$MESS ['NEED_PERMISSIONS_REFERENCE_LABEL'] = 'Для корректной работы опции апи-ключу необходимы доступы на получение и редактирование справочников';
|
||||
|
||||
$MESS ['FIX_UPLOAD_CUSTOMER_HEADER'] = 'Исправление даты регистрации клиентов в CRM';
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace Intaro\RetailCrm\Component;
|
|||
*/
|
||||
class Constants
|
||||
{
|
||||
public const MODULE_VERSION = '6.6.2';
|
||||
public const MODULE_VERSION = '6.6.11';
|
||||
public const CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null';
|
||||
public const BITRIX_USER_ID_PREFIX = 'bitrixUserId-';
|
||||
public const CRM_USERS_MAP = 'crm_users_map';
|
||||
|
|
|
@ -163,7 +163,7 @@ class IcmlWriter
|
|||
$this->writeOptionalSimpleElement('vatRate', $offer->vatRate);
|
||||
$this->writeOptionalSimpleElement('weight', $offer->weight);
|
||||
$this->writeOptionalSimpleElement('dimensions', $offer->dimensions);
|
||||
$this->writeOptionalSimpleElement('purchasePrice', $offer->purchasePrice);
|
||||
$this->writeOptionalPurchasePrice($offer->purchasePrice);
|
||||
$this->writer->endElement();
|
||||
}
|
||||
|
||||
|
@ -180,6 +180,16 @@ class IcmlWriter
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Запись закупочной стоимости
|
||||
*
|
||||
* @param $value
|
||||
*/
|
||||
private function writeOptionalPurchasePrice($value): void
|
||||
{
|
||||
$this->writeSimpleElement('purchasePrice', !empty($value) ? $value : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param $value
|
||||
|
|
|
@ -178,13 +178,12 @@ class SettingsService
|
|||
$customProps = [];
|
||||
|
||||
foreach ($this->customPropList as $propsByCatalog) {
|
||||
$customProps = array_merge($customProps, $propsByCatalog);
|
||||
foreach ($propsByCatalog as $code => $value) {
|
||||
$customProps[$code] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
...$this->defaultPropList,
|
||||
...$customProps
|
||||
];
|
||||
return array_merge($this->defaultPropList, $customProps);
|
||||
}
|
||||
|
||||
private function getPriceTypes()
|
||||
|
|
|
@ -877,7 +877,9 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) {
|
|||
$substitutionPaymentList[$integrationPayment] = $codePayment;
|
||||
|
||||
foreach ($originalPayment['deliveryTypes'] as $codeDelivery) {
|
||||
if (!isset($arResult['deliveryTypesList'][$codeDelivery])) {
|
||||
if (!isset($arResult['deliveryTypesList'][$codeDelivery]) ||
|
||||
isset($arResult['deliveryTypesList'][$codeDelivery]['integrationCode'])
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
1259
intaro.retailcrm/updater.php
Normal file → Executable file
1259
intaro.retailcrm/updater.php
Normal file → Executable file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue