Кастомизация импорта заказов из 1С

4k
Алексей,
Кастомизация импорта заказов из 1С
Кастомизация импорта заказов из 1С

Если в заказах из 1С есть что-то, чего нет в битриксе, то добавить это можно во время импорта, расширив класс CSaleOrderLoader.

Если в заказах из 1С есть что-то, чего нет в битриксе, то добавить это можно во время импорта, расширив класс CSaleOrderLoader.

Я столкнулся с версией обмена 2.05, поэтому в примере будут устаревшие методы.

Для начала нужно скопировать компонент bitrix:sale.export.1c в папку local, что бы можно было изменить код component.php. В этом компоненте находится отправная точка импорта: $loader = new CSaleOrderLoader;

$loader = new CSaleOrderLoader; // меняем на свой класс, например $loader = new CSaleOrderLoaderCustom;

Всё, с этого момента xml данные будут попадать не в стандартный класс/метод, а в кастомный.

Где-нибудь в init.php добавим свой класс импорта заказов, который будет расширять стандартный.

class CSaleOrderLoaderCustom extends CSaleOrderLoader // /bitrix/modules/sale/general/order_loader.php
{
	function oldSaveOrder ($arOrder, $option=array())
	{
		// В этом методе можно менять алгоритм импорта заказа, скопировав код метода из ядра
		// Всё необходимые поля есть в массиве $arOrder
	}
}

oldSaveOrder используется если версия протокола обмена меньше 2.1. Так же новый класс будет использовать только когда начнется новый импорт. Если поменять во время импорта, изменений не будет.

Посмотреть какие данные приходят из 1С можно в xml, обычно она находится в папке /upload/1c_exchange/. Там же есть логи обмена.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 14 июля 2020 | Обновлено 2 июня 2021
импорт, , разработчику
Поделиться
Похожие статьи
Обмен с 1С, часть 2. Структура файлов обмена
Это продолжение статьи о обмене 1С-Битрикс с 1С, на этот раз речь пойдет о файлах обмена, их видах и...
Читать дальше » 0
Алексей,
Как работает обмен Битрикс с 1С. Часть 1
Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего пл...
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Если в заказах из 1С есть что-то, чего нет в битриксе, то добавить это можно во время импорта, расширив класс CSaleOrderLoader.