Вход Регистрация
*— обязательные для заполнения поля
Войти через социальные сети
УСТАНОВКА И НАСТРОЙКА
- Установка модуля обычная по кнопке "Попробовать".
- После установки перейдите в раздел Сервисы->TS Умный экспорт товаров в торговые порталы->Профили
- Нажмите зеленую кнопку "Добавить", профиль должен заполниться минимальными настройками по умолчанию, для тестирования вам достаточно будет задать: Активность, Цену, Валюту, Инфоблок.
Тип описания предложения (фида) и Поля также заполняются автоматически на минимальные, по умолчанию "Упрощенный тип описания (simple)"
- Далее нажимайте "Сохранить" и в списке профилей должен появиться новый, созданный вами профиль выгрузки.
- Далее остается настроить планировщик задач Cron на выполнение файла:
/bitrix/modules/api.export/tools/cron.php
Настраивается задача на сервере или хостинге, время запуска вам нужно подбирать свое, например, каждый час, каждый день, в определенное время и т.д.


Это все настройки, после запуска файла экспорта cron.php в папке
/bitrix/catalog_export
будут создаваться файлы экспорта
api_export_X.xml
где X - это айди (идентификатор) профиля.

Узнать http-путь до файла экспорта можно в настройках профиля на первой вкладке 1) Профиль
https://monosnap.com/file/Jxd3Tf0FryD2bsmpo0eiOpeykkTOZw.png

Там же будет записываться лог экспорта по каждому профилю, последние 30 файлов
/bitrix/catalog_export/api_export_log

НАСТРОЙКА ВКРАТЦЕ
1) Создать профиль выгрузки
На каждый портал нужно создавать отдельный профиль и у каждого портала будут разные типы описаний предложений, это тоже всё разные профили.
2) Только один раз нужно настроить планировщик задач Cron на выполнение файла, который в цикле поочередно запускает профили с учетом сортировки и активности, и только активные, далее вы будете работать только с профилями, все остальное будет делать сервер или хостинг запуская этот файл.


Примеры настроек планировщика задач Cron каждый час


Open Server
https://monosnap.com/file/SgME0GHwGhq1YjgZ7leemAkf0EaC3D.png

Время: 0 * * * *
Выполнить:
%progdir%\modules\php\%phpdriver%\php-win.exe -c %progdir%\modules\php\%phpdriver%\php.ini -q -f %sitedir%\tuning-soft.os\bitrix\modules\api.export\tools\cron.php


ПУ VESTA
https://monosnap.com/file/LsMYjygacqCrVNyTKVfxcxfATjohTZ.png

Время: 0 * * * * 
Команда
/usr/bin/php -f ~/web/tuning-soft.os/public_html/bitrix/modules/api.export/tools/cron.php

ПУ ISP Manager на хостинге REG.RU
https://monosnap.com/file/lFRD0xieTbKg7lxFDqk3qJATbaP5WL.png

Период: Каждый час
Команда
/opt/php/5.6-bx-optimized/bin/php -c /var/www/u0999099/data/php-bin/php.ini -f /var/www/u0999099/data/www/tuning-soft.os/bitrix/modules/api.export/tools/cron.php
5.6-bx-optimized - это версия php на хостинге, если у вас другая версия, например 7.1, то везде вместо 5.6-bx-optimized пишите 7.1
u0999099  - Логин к панели управления хостингом

Чтобы не приходили всякие системные сообщения или ошибки после выполнения команд, можно:
а) либо поставить вот такую галку, как в панели ISP
не посылать отчёт по e-mail
б) либо дописать в конце команды через пробел вот это
 > /dev/null 2>&1

ISP 5
https://s.mail.ru/12pq/d8nZbuPGj

ИНФОРМАЦИЯ
Пока профиль выполняется, повторно он не запустится
Например, вы настроили экспорт на каждый час, через час крон заново запускает экспорт, а один какой-то профиль еще не закончил свою работу, тогда скрипт пропустит это профиль и пойдет выполнять другие.

В конструкторе полей <offer> можно использовать любые функции обработчики
Встроенные в модуль, ваши собственные классы и функции в init.php, встроенные в Битрикс и встроенные в php функции для работы со строками.

Доступные в модуле функции с префиксом fn_functionName:
fn_htmlspecialchars - используйте вместо штатной в php "htmlspecialchars"
fn_htmlToText - Конвертирует html в текст обрезая описание до 3000 символов, подойдет для форматирования описаний товаров.
fn_htmlToCDATA - Обернет html в тег CDATA обрезая описание до 3000 символов, это используется на Яндекс.Маркете, подойдет для форматирования описаний товаров.
fn_sourceToCDATA - обернет исходный html/текст между тегами CDATA без какой-либо обработки

Задаются в полях функции таким образом, пишется название функции без скобок
https://monosnap.com/file/InsucgmBuOPb5gxWTsutGp05oejc3D.png

Далее модуль ищет функцию сначала в своем классе, если ее там нет, проверяет ее существование вне модуля, если нашел, то запускает таким образом:
$value = call_user_func_array($userFunc, array($value,$arField));
$userFunc - это сама функция, например: htmlspecialcharsbx
$value - значение поля (строка)
$arField - параметры поля (массив)

Если не задана функция обработчик, то модуль по умолчанию обработает значение Битрикс функцией htmlspecialcharsbx()

Функции для обработки строк и текста в Битрикс
https://dev.1c-bitrix.ru/api_help/main/functions/string/index.php

Функции для обработки строк и текста в PHP
http://php.net/manual/ru/ref.strings.php


В версии 1.1.7 появилась возможность сделать обработчиком любой произвольный Класс и Статический метод, пример:



Класс необходимо где-то определить, например в файле:
/bitrix/php_interface/init.php
Пример данного класса
<?php
class ApiExportHandler{
public static function formatField($value,$arField){
$value = htmlspecialcharsbx($value);

/*
$var = array(
'$value' => $value,
'$arField' => $arField,
);
$ttfile=dirname(__FILE__).'/1_txt.php';
file_put_contents($ttfile, print_r($var,1)."\n");
*/

return $value;
}
}
?>
Так можно использовать множество методов для различной обработки любого поля в профиле, не изменяя код модуля.
Когда вы задаете свой обработчик поля, встроенный обработчик не используется, значение будет прилетать в исходном виде.
Т.к. значение передается не по ссылке, в данном методе его необходимо вернуть, иначе в xml-файле его не будет.

Торговые предложения (характеристики) товара выгружаются как отдельные товары с уникальным айди.
Сам товар из экспорта удаляется, но объединяются свойства товара и ТП.
Например, у товара есть свойство "Производитель" с кодом "VENDOR", а у торговых предложений этого свойства нет, модуль объединит свойства товара со свойствами ТП таким образом
$arOffer['PROPERTIES'] = array_merge($arIitem['PROPERTIES'], $arOffer['PROPERTIES']);
В этом случае значение свойства товара VENDOR заданное в настройках полей профиля, также будет выгружаться с торговым предложением, значение будет браться у товара общее для всех ТП.
А вот если у ТП будет такое свойство, то оно заменит свойство родительского товара, т.е. в этом случае уже будет выгружаться свойство ТП.


В логах много полезной информации по экспорту
Пример: /bitrix/catalog_export/api_export_log
Профиль:    2
Процесс: 17964
Выделено памяти: 512M
Начало выгрузки: 25.06.2017 13:51:02
Шаг: 1 Элементов: 500 Память: 24 МБ Время, сек: 8.91
Шаг: 2 Элементов: 500 Память: 33 МБ Время, сек: 16.15
Шаг: 3 Элементов: 500 Память: 40 МБ Время, сек: 22.62
Шаг: 4 Элементов: 500 Память: 47 МБ Время, сек: 30.44
Шаг: 5 Элементов: 500 Память: 53 МБ Время, сек: 37.05
Шаг: 6 Элементов: 500 Память: 57 МБ Время, сек: 44.05
Шаг: 7 Элементов: 500 Память: 61 МБ Время, сек: 51.16
Шаг: 8 Элементов: 500 Память: 64 МБ Время, сек: 57.65
Шаг: 9 Элементов: 500 Память: 68 МБ Время, сек: 64.37
Шаг: 10 Элементов: 500 Память: 72 МБ Время, сек: 70.76
Шаг: 11 Элементов: 500 Память: 76 МБ Время, сек: 77.18
Шаг: 12 Элементов: 500 Память: 81 МБ Время, сек: 83.92
Шаг: 13 Элементов: 500 Память: 85 МБ Время, сек: 90.87
Шаг: 14 Элементов: 500 Память: 89 МБ Время, сек: 97.54
Шаг: 15 Элементов: 500 Память: 94 МБ Время, сек: 104.40
Шаг: 16 Элементов: 500 Память: 98 МБ Время, сек: 111.11
Шаг: 17 Элементов: 500 Память: 102 МБ Время, сек: 118.33
Шаг: 18 Элементов: 500 Память: 106 МБ Время, сек: 124.94
Шаг: 19 Элементов: 500 Память: 110 МБ Время, сек: 131.82
Шаг: 20 Элементов: 500 Память: 115 МБ Время, сек: 138.53
Шаг: 21 Элементов: 500 Память: 118 МБ Время, сек: 145.29
Шаг: 22 Элементов: 500 Память: 122 МБ Время, сек: 152.05
Шаг: 23 Элементов: 500 Память: 125 МБ Время, сек: 158.17
Шаг: 24 Элементов: 500 Память: 129 МБ Время, сек: 164.45
Шаг: 25 Элементов: 500 Память: 133 МБ Время, сек: 170.83
Шаг: 26 Элементов: 500 Память: 137 МБ Время, сек: 177.13
Шаг: 27 Элементов: 500 Память: 142 МБ Время, сек: 182.91
Шаг: 28 Элементов: 500 Память: 146 МБ Время, сек: 189.20
Шаг: 29 Элементов: 500 Память: 150 МБ Время, сек: 195.26
Шаг: 30 Элементов: 500 Память: 154 МБ Время, сек: 201.47
Шаг: 31 Элементов: 500 Память: 157 МБ Время, сек: 207.11
Шаг: 32 Элементов: 500 Память: 161 МБ Время, сек: 213.41
Шаг: 33 Элементов: 500 Память: 165 МБ Время, сек: 219.47
Шаг: 34 Элементов: 500 Память: 168 МБ Время, сек: 225.18
Шаг: 35 Элементов: 500 Память: 171 МБ Время, сек: 231.22
Шаг: 36 Элементов: 500 Память: 173 МБ Время, сек: 237.40
Шаг: 37 Элементов: 16 Память: 173 МБ Время, сек: 237.66
Конец выгрузки: 25.06.2017 13:54:59
Обновлено всего: 18016
Время выполнения, сек: 237.68
Использовано памяти: 168 МБ