Готовые тиражные решения на 1С-Битрикс
Техническая поддержка:
+7-908-208-1965
Отдел продаж, с 7:00 до 18:00 (по Москве)
Звонок по России бесплатный
Вы также можете заказать звонок

FAQ Выгрузка в торговые площадки (компонент 2.0)

11:01:43 - 16.10.2017

1. Как показать/скрыть свойства СКУ в умной фильтре?
Перейдите в параметры необходимого раздела:
2017-09-01_12-39-39.png
Во вкладке "Свойства элементов" в списке "Свойства торговых предложений" напротив нужных свойств поставьте галочки:
2017-09-01_12-41-22.png
1. Как включить пошаговую выгрузку и настроить агента?
включаем режим правки:


Заходим в настройка компонента:


Нас интересуют 3 параметра:


"Количество товаров обрабатываемых за один шаг" —положительное число от 0, если выбран 0 то выгрузка будет проходить за 1 шаг. Внимание! в этом числе НЕ учитываются торговые предложения.
То есть если у вас 1 товар у которого 100 торговых предложений то при обработке шага будут обработаны ВСЕ торговые предложения этого товара. Например если вы выбрали обрабатывать 100 товаров за один шаг и у каждого товара есть по 5 торговых предложений то суммарно за шаг будут обработано не 100, а 500 товаров.
Учитывайте это при выборе нужного числа.
о том как оптимально подобрать оптимальное число читайте ниже

"Обновлять автоматически на Агенте" — если включен этот параметр, то создается агент (подробнее про агентов) который будет обновлять выгрузку через заданный промежуток времени который указывается в соответствующем параметре — "Время в секундах через которое необходимо обновлять выгрузку"

Рекомендуем переводить выполнение агентов на CRON (Документация, Статья)
2. Как определить оптимальное количество обрабатываемых товаров для 1 шага
Для этого необходимо включить скрытый параметр "DEBUG_LOG" => true, 
для этого включаем режим правки:


Жмем "Изменить страницу" -> "В режиме PHP-кода"


Добавляем запись "DEBUG_LOG" => true и сохраняем


после генерации рядом с генерируемым файлом будет лежать лог у него такое-же имя с добавленным расширением .log, например ys_ym_1fae10b.xml.log


Открываем или скачиваем файл и изучаем содержимое:


тут 
[STEP 2] — номер шага (если все делается за один шаг то будет всегда 1)
IsAgent: — запуск генерации был на агенте или нет (1 или 0)
StartDate — дата старта генерации шага
Memory — потребляемая память на текущий момент (в скобках с параметром real подробнее про это)
MemoryPeak —  Максимальное количество потребляемой памяти на текущий момент
-- EXECUTE COMPONENT-- — момент выполнения основной части компонента
FinishDate — дата завершения текущего момента 
StepTime — выполнение текущего момента в секундах
-- EXECUTE PARAMS -- — момент получения выбранных свойств для товара
TotalTime — суммарное время выполнения на текущий момент
-- EXECUTE TEMPLATE-- — момент выполнения шаблона

Важно учитывать количество потребляемой скриптом памяти. В пиках она должна быть меньше максимально доступной PHP памяти хотя бы на 10%.
На данном примере выгружается 50 товаров с обработкой ~100 свойств и среднее итоговое время выполнения (последний TotalTime в шаге) по всем шагам примерно 3-4 сек.
Если у вас на сайте Агенты не переведены на CRON (Документация, Статья) то это много, для комфортной работы пользователей, нужно чтобы среднее время обработки шага было в районе 1 секунды (чем меньше тем — лучше).
Рекомендуем переводить выполнение Агентов на CRON.



3. Как сделать фильтрацию по конкретному значению Highload-блока?
Для фильтрации по выбранному значению необходимо задать фильтр перед вызовом компонента

На примере фильтр по определенному бренду

<?global $arrFilter;
$arrFilter = array("!PROPERTY_BRANDS_REF" => "XML_ID элемента");
?>

Где BRENDS_REF название свойства связанного с Highload-блоком.
4. Что делать, если возникает ошибка "XML declaration allowed only at the start of the document"?
Такая ошибка возникает, если в начале документа выгрузки обнаружены лишние символы: http://screencast.com/t/MtOgPZrakg (чтобы вызвать такое окно, нужно открыть исходный код страницы CTRL + U).

Перед проверкой, нужно убедиться что все файлы в кодировке UTF-8 без BOM.

Здесь необходимо проверить в первую очередь сам сайт на наличие этих пробелов: заходим на главную и нажимаем сочетание CTRL + U (откроется исходный код страницы). Если пробелы находятся на сайте, то нужно проверить следующие файлы на наличие лишних символов в начале файла перед тегом
  1. проверить файл bitrix/php_interface/init.php (и файл bitrix/php_interface/SITE_ID/init.php)
  2. проверить файл header.php вашего шаблона
  3. проверить файл  \bitrix\modules\fileman\fileman.php   http://screencast.com/t/xT0NIGQdeeSO
Если не поможет, то необходимо в файле вызова компонента выгрузки
Вставить вместо require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
Вот такую конструкцию:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
global $USER;
if($USER->IsAdmin())
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

И протестировать выгрузку.
1. Как выгружать товары с разных складов\городов на Яндекс.Маркет и другие торговые площадки?
Сначала включаем режим правки:


Затем в настройках компонента выбираем нужные нам цены для нужного нам региона
Настройка цен


Жмем "Изменить страницу" -> "В режиме PHP-кода"



Нам надо определить 2 фильтра (один для SKU\Торговых предложений) второй для самих товаров (если у вас не используется торговые предложения то можно только 1 фильтр задействовать:



$arrFilter = &$GLOBALS['arrFilter'];
$arSKUrFilter = &$GLOBALS['arrSKUFilter'];
$arFilter = array(
        ">CATALOG_STORE_AMOUNT_23" => 0,
);
$arrFilter = $arFilter;
$arSKUrFilter = $arFilter;

где определяем что должны выбраться товары и их торговые предложения у которых остаток на складе с ID 23 больше (символ > в начале CATALOG_STORE..) нуля.

Если нужно чтобы в одну выгрузку попали товары которые есть хотя бы на двух складах.
Например для Битроник2 ПРО -- нужно перечислить все склады которые относятся к 1 городу.
То нам нужно определить переменную $arFilter следующим образом:

$arFilter = array(
         array(
                   "LOGIC" => "OR",
                    array(">CATALOG_STORE_AMOUNT_23" => 0,),
                    array(">CATALOG_STORE_AMOUNT_25" => 0,),
                    // перечисляем таким способом все нужные склады
          ),
);

и так далее, а затем обновить файл выгрузки.

Готовые примеры для решения Bitonic2 PRO
Пример для МосквыПример для Красноярска

Выгрузка для Москвы
Выгрузка для Красноярска
Выгрузка для Екатеринбурга
Выгрузка для Новосибирска 
1. Как настроить выгрузку в яндекс маркет?
Сразу после установки компонента, на сайте появляется папка ys-ym, в индексной странице которого находится вызов компонента:
2017-05-01_1032.png
В режиме правки необходимо зайти в параметры компонента и выбрать инфоблок для создания файла:
2017-05-01_1034.png
Вы можете выбрать либо весь инфоблок, либо отдельные разделы для выгрузки.

Все обязательные теги поддерживаются шаблоном vendor.model_new

2017-05-18_0904.png


2. Как добавить теги CPA к товарам в выгрузке?
Для этого необходимо создать свойство в инфоблоке товаров типа список с 2мя значениями:
2017-05-01_1037.png
После этого, в параметрах компонента достаточно указать свойство, откуда брать значения CPA:
2017-05-01_1039.png
И обновить файл выгрузки.
3. Как выгружать дополнительные параметры товара на Яндекс Маркет?
Для этого необходимо указать, какие параметры необходимо выгружать.
Для этого, в параметрах компонента выгрузки на странице ys-ym необходимо их выбрать:
2017-05-01_1043.png
И обновить файл выгрузки.
На примере артикула:
2017-05-01_1044.png
4. Как одновременно выгружаться на Яндекс Маркет и в Google Merchant?
Для этого необходимо использовать разные файлы прайс листов с разными шаблонами.
Предположим, что выгрузку для Яндекс маркета вы уже настроили.
Чтобы настроить выгрузку в Google-вам необходимо:
1) С главной страницы сайта создать новый раздел ( назовем его gm ):
2017-05-01_1049.png
Пункт меню создавать не будем, и сразу перейдем к редактированию индексной страницы.
2) Разместим компонент на странице:
2017-05-01_1051.png
3) И выберем шаблон для Google:
2017-05-01_1052.png

Готово!
Сохраняем результат, и теперь-на странице адрес_вашего_сайта/gm/ мы разместили вызов компонента-теперь в режиме правки вам остается настроить компонент и обновить файл.

5. Не обновляется файл выгрузки-белый экран.
Такое может случиться, если за 1 шаг компонент пытается обработать большое количество товаров-и упирается в лимит по времени или по памяти на вашем веб сервере.
Чтобы этого не происходило, в компонент специально добавлен функционал пошагового создания файла выгрузки.

В параметрах компонента укажите-какое количество товаров обрабатывать за 1 шаг:
2017-05-01_1118.png
Для большинства наших клиентов-оптимальное количество-это 100 товаров за 1 шаг.