An open API service indexing awesome lists of open source software.

https://github.com/frizus/importyml

Импорт yml файла в 1С-Битрикс
https://github.com/frizus/importyml

bitrix bitrix-cms yml-parser

Last synced: 5 months ago
JSON representation

Импорт yml файла в 1С-Битрикс

Awesome Lists containing this project

README

          

# import-yml

[![Latest Stable Version](https://poser.pugx.org/frizus/importyml/v)](//packagist.org/packages/frizus/importyml)
[![License](https://poser.pugx.org/frizus/importyml/license)](//packagist.org/packages/frizus/importyml)
[![Total Downloads](https://poser.pugx.org/frizus/importyml/downloads)](//packagist.org/packages/frizus/importyml)

Импорт yml файла в 1С-Битрикс

Установка
---------

```
composer require frizus/importyml
```

## Описание

Скрипт поддерживает импорт UTF-8 yml-файла со структурой вида:
```xml


Интернет-магазин Бренд X
Бренд X
http://example.com
1C-Bitrix




Категория 1
Подкатегория 1
...



https://example.com/product-id1/
500
600
RUB
1
http://example.com/images/5bwa35naw35n.jpg
Товар
Описание товара
500
400
300

...

```

### Особенности
* Поддерживаются только валюта `RUB`, только `базовый тип цен`, только три параметра: `param[name="Ширина"]`, `param[name="Глубина"]`, `param[name="Высота"]`
* Читаемые поля ``: `offer[id]`, ``, ``[, ``], ``, ``, ``, ``, ``
* Сделаны скидки на товары
* Поддерживается как добавление у товаров полей/свойств/цен/скидок, так и их обновление, так и удаление несуществующих в yml-файле товаров
* Для определения товаров и скидок у них используются префиксы (`внешний код` у элементов и `название` у скидок)
* Можно удалить все созданные товары и скидки по их префиксам
* Сделана привязка категорий (``) к имеющимся разделам каталога
* Картинки загружаются из локальной директории
* Торговые предложения схлопываются в один товар (предложения определяются по одинаковой ссылке (``) без GET-параметров) с минимальной ценой из всех предложений и объединенными параметрами (``)
* Есть более менее приличный вывод отладочной информации при импорте. Вызов через cron не сделан

### Привязка категорий
Привязка категорий yml-файла к разделам инфоблока реализована файлом, где категория yml-файла, которая привязывается идет до знака `=` (настраивается), а раздел, к которому привязываем, идет после знака `=`
Путь категории/раздела состоит из наименования категории/раздела и присоединенных категорий/разделов предков, разбитых строкой ` → ` (настраивается)
Есть привязка «без раздела», для этого надо написать: `Категория 1 = ` (обозначение товаров yml-файла `Категории 1`, как товаров без раздела инфоблока), ` = Раздел 1` (обозначение товаров yml-файла без категории, как товары привязанные к `Разделу 1` инфоблока), ` = ` (обозначение товаров yml-файла без категории, как товары без раздела инфоблока)
Заглушку файла привязки категорий с именами категорий yml-файла и разделами инфоблока можно сгененировать

```
Категория 1 = Раздел каталога 1
Категория 1 → Подкатегория 1 = Раздел каталога 1 → Подраздел 1
```