Документация startmedia
  • Документация StartMedia
  • Регламент
  • 📜Регламент рабочего процесса
    • 1. Цикл работы над задачей
    • 2. Работа с ветками
    • 3. Оформление коммитов
    • 4. Merge Requests
    • Правила оформления отчёта к задаче
    • Стратегии слияния веток
  • 📋Planfix - работа с задачами
    • Жизненный цикл задач
    • Типы задач
    • Структура задачи
    • Коммуникации в задаче
  • Базовые статьи
    • 🔧Настройка рабочего окружения
      • Установка необходимых программ
      • Настройка GIT
      • Настрйка OpenServer
      • Настройка окружения ОС
      • Настройка синхронизации с OneDrive
    • 🎆Развертка локальной копии сайта
      • Клонируем репозиторий
      • Копируем ядро и базу
      • Разархивируем ядро
      • Заливаем базу данных
      • Читаем README
      • Правим файлы конфигурации
      • Правим параметры сайтов
      • Выполняем проверку системы
      • Ставим галочку "Установка для разработки"
      • Создаем папку upload
      • Что может пойти не так? (казалось бы)
    • Обучающие материалы
    • Как создать Merge Request
  • Начальный уровень
    • Многосайтовость битрикс и Open Server
    • Структура шаблона
      • Установка и настройка Gulp
      • Общие правила структуры
    • Верстка
      • Стиль кода SASS
    • Работа с Битриксом
      • Правила создания структуры проекта
      • Правила создания структуры инфоблоков
      • Стандартные и пользовательские свойства в Битриксе
      • Использование API Bitrix
      • Меню
      • Модули
    • Готовые решения
      • Экспорта каталогов в YML
      • Эмулятор обмена с 1С
      • Веб формы
    • Решения для поисковой оптимизации
    • Миграции - Перенос инфоблоков с локальной копии на боевой сайт
  • Продвинутый уровень
    • Системное администрирование
      • Работа с веб-сервером
      • Настройка редиректов
      • Работа с доменами
        • Настройка SPF-записи
        • Работа с DNS записями
        • Настройка файла robots.txt
      • Создание копии битрикс в хранилище
      • Разворачивание dev версии
      • Конвертация сайта на bitrix из win1251 в utf8
      • Лечим сайт от вирусов и закрываем дыры
    • Gitlab
    • Перенос сайта на 1C-Bitrix на наш хостинг
    • Интеграции Битрикс со сторонними сервисами
      • Интеграция 1С с 1С-Битиркс
    • Дебаггинг
    • React
      • Flux на пальцах
  • Справочники
    • Apache (htaccess)
      • Стандартный htaccess для 1с-битрикс
    • Работа с Базой Данных
  • Чек-лист Project менеджера
  • Добавление подарка в корзину при добавления каждого товара
  • PhpStorm
  • Готовые команды консоли
Powered by GitBook
On this page
  • Установка профиля экспорта
  • Структура файлов
  • Функционал
  • stmd_setup.php
  • stmd_detail.php
  • stmd_run.php
  • Программный код
  • Frontend
  • Backend
  • Комментарии

Was this helpful?

  1. Начальный уровень
  2. Готовые решения

Экспорта каталогов в YML

Готовое решение, экспорта каталога в YML с гибкими настройками и быстрым разворачиванием на любом проекте 1С-Битрикс

PreviousГотовые решенияNextЭмулятор обмена с 1С

Last updated 4 months ago

Was this helpful?

Установка профиля экспорта

Профиль запакован в модуль. Установка производится через Marketplace-Установленные решения. При установке необходимые файлы копируются в соответствующие места. При удалении модуля, все файлы профиля удаляются.

P.S. Если сайт работает на кодировке, отличной от UTF-8. Перед установкой нужно перекодировать все файлы модуля и профиля выгрузки в нужную кодировку, а также изменить шапку и функции скрипта обработки данных (stmd_run.php).

Структура файлов

Профиль представляет из себя 3 скрипта связанных между собой и соответствующие языковые файлы к ним. Файловая структура в рамках какого-либо сайта показана на рис. 1. Все строки используемые в скрипте вынесены в соответствующие языковые файлы и вызываются с помощью GetMessage();

Функционал

stmd_setup.php

Данный скрипт предназначен для вывода основных настроек профиля. Данный скрипт предназначен для вывода основных настроек профиля.

Особенности:

  • Пункт «Детальные настройки» открывает модальное окно, скрипт stmddetail.php. В этом окне есть обязательный пункт «Условие выбора торговых предложений».

  • Время выполнения шага: Обязательно ставить в районе 10-30 при большом объеме данных. Иначе скрипт может сработать не до конца из-за настроек сервера.

  • Чтобы сохранить файл в другом каталоге (не в /bitrix/catalog_export/) можно внести правки в код или же писать путь используя ..(две точки) например: ../yandex_40201.php. Если не вводить ничего, то профиль сам сгенерирует имя файла в формате yandex[0-9]{5,6}

stmd_detail.php

Следующий скрипт предназначен для отображения модального окна с детальными настройками. Настройки содержат две вкладки, настройки изображены на рисунках 3,4.

Особенности:

  • «Валюты и цены» взяты со стандартного профиля обмена

  • Было принято решение убрать настройку вывода НДС

  • Если выбрать «Выгружать идентификатор из XML_ID», он будет выгружаться только при наличии, иначе вместо него будут выгружаться обычный ID

  • Чтобы вывести основную картинку из свойства, нужно заполнить оба поля (Основная картинка и доп. картинки). Первая картинка из свойства станет основной, остальные дополнительными.

stmd_run.php

Данный скрипт заканчивает цикл выгрузки при нажатии на кнопку «Экспортировать». В соответствии с настройками будут выгружены товары в формате yml. Пример готовой выгрузки показан на рис. 5.

При успешном выполнении скрипта Bitrix выдаст сообщение о успехе и ссылку на файл.

Программный код

Frontend

  • Для сохранения настроек используется форма с соответствующими полями.

  • Форма представляет из себя таблицу с input’ами

  • Для вкладок используется класс Bitrix: CAdminTabControl

  • Также форма содержит скрытые input’ы с важными настройками

  • Ячейки таблиц сделаны с использованием css-классов bitrix’а:

    • adm-content-cell-l(r) (Для выравнивания ячеек)

    • heading (Для обозначения заголовков)

    • adm-info-message (Для вывода подсказок)

Backend

  • В скрипте с основными настройками (stmd_setup.php) есть скрытый input[name=SETUP_FIELDS_LIST]. При добавлении новых настроек, нужно добавить в этот input имя поля.

  • В скрипте с детальными настройками (stmd_detail.php) есть три основных массива (также три логических раздела) с настройками: commonFields, deliveryFields, vendorFields. При добавлении новых настроек или смысловых разделов можно делать наподобии них.

  • Все остальные настройки хранятся в отдельных переменных. (Стандартный функционал).

  • Все настройки из «Детальных настроек» хранятся массивом в input’е XML_DATA

Далее пойдут особенности работы со скриптом обработки данных (stmd_run.php)

  • При необходимости получения значения свойства пользоваться стандартной функцией yandex_get_value. Она довольно сложная, но многофункциональная.

  • Для редактирования основных полей товара (Описание, URL, Основная картинка) использовать стандартную функцию yandexPrepareItems

  • Приводить текст к единой кодировке и очищать от ненужных символов нужно с помощью стандартной функции yandex_text2xml

  • Для смены кодировки файла выгрузки нужно внести изменения в первоначальные записи в файл и в стандартные функции.

  • Настройки доставки и самовывоза можно указывать как для отдельных товаров внутри (в исходной версии профиля закомменчено), так и для всех товаров на уровне

Комментарии

Во всех трех скриптах имеются комментарии нескольких типов:

  • // Однострочный комментарий, указывающий, что делает (или хранит) текущая, либо следующая строчка

  • Комментарий в html-форме для более быстрого поиска нужной строки/логического блока

  • / #Название блока# / код / #Название блока#. Конец. / Используется в блоках, которые чаще всего приходится кастомизировать. Также используется для объяснения сложных блоков кода

  • / ---Ошибка--- #Текст ошибки# / Используется для обозначения всех ошибок (чтобы в лишний раз не лезть в lang/ru/#скрипт#.php)

Также присутствуют комментарии с пометкой «Важно!», предназначенные для особо ключевых участков в коде.

Ссылка на архив, позже добавим ссылку на гит

Валидатор YML

https://webmaster.yandex.ru/tools/xml-validator/
http://gitlab.stmd.pro/any/yml-1c-bitrixgitlab.stmd.pro
Ссылка на модуль в gitlab
Файловая структура профиля
Основные настройки профиля
Детальные настройки профиля. Настройка выгрузки
Детальные настройки профиля. Валюты и цены
Пример выгрузки