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С-Битрикс
- Host: GitHub
- URL: https://github.com/frizus/importyml
- Owner: frizus
- License: mit
- Fork: true (Zukra/import-yml)
- Created: 2021-04-13T10:03:35.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-08T18:22:37.000Z (about 5 years ago)
- Last Synced: 2025-09-19T15:34:36.884Z (9 months ago)
- Topics: bitrix, bitrix-cms, yml-parser
- Language: PHP
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# import-yml
[](//packagist.org/packages/frizus/importyml)
[](//packagist.org/packages/frizus/importyml)
[](//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
```