yokel / gfeed
Класс для создание фида в xml и csv
Requires
- php: >=7.0
This package is auto-updated.
Last update: 2025-06-23 23:17:01 UTC
README
Класс для создание фида в xml и csv
Системные требования
- PHP 7 и выше
Установка
Через composer
composer require yokel/gfeed
Использование
// Создать экземпляр класса $feed = new \Yokel\GFeed\GFeed(); // Указать идентификатор инфоблока с товарами // второй параметр - идентификатор родительского инфоблока (обязательный, если есть ТП) $feed->setIblockId(25, 24); // Указать название поля с ценой товара (для фильтрации - исключить товары с нулевой ценой) $feed->setPriceField('CATALOG_PRICE_1'); // Экспорт в xml $feed->export('/feed.xml'); // Экспорт в csv $feed->export('/feed.csv', \Yokel\GFeed\GFeed::FORMAT_CSV); // Экспорт в yml $feed->export('/feed.xml', \Yokel\GFeed\GFeed::FORMAT_YML);
Константы
const PRODUCT_AVAILABLE_XML = 'в наличии'; const PRODUCT_NOT_AVAILABLE_XML = 'нет в наличии'; const PRODUCT_NEW_XML = 'новый'; const PRODUCTS_AVAILABLE_CSV = 'in stock'; const PRODUCTS_NOT_AVAILABLE_CSV = 'out of stock'; const PRODUCT_NEW_CSV = 'new'; const FORMAT_XML = 'xml'; const FORMAT_CSV = 'csv'; const FORMAT_YML = 'yml';
Маппинг полей
Добавляет или переопределяет поля в создаваемом файле xml/csv
// Добавляет маппинг для xml function addMappingXml($name, $value) // Добавляет маппинг для csv function addMappingCsv($name, $value) // Добавляет маппинг для yml function addMappingYml($name, $value) // Добавляет маппинг для всех function addMappingAll($name, $value)
- $name - название поля в файле
- $value - значение поля
Примеры использования
- Простой тип
// Подставляет значение 567 в поле google_product_category $feed->addMappingCsv('google_product_category', '567');
- Макрос
// Подставляет значение поля SECTION_CODE из товара в поле custom_label_0 в файле $feed->addMappingXml('custom_label_0', 'element.SECTION_CODE'); //или $feed->addMappingXml('custom_label_0', '.SECTION_CODE'); // Подставляет значение поля SECTION_CODE из родительского товара (для ТП) $feed->addMappingXml('custom_label_0', 'parent.SECTION_CODE');
Доступные макросы для товара:
.ID - id товара в инфоблоке
.NAME - название товара
.SECTION_ID - id раздела в инфоблоке
.SECTION_CODE - код раздела в инфоблоке
.LINK - ссылка на карточку товара
.IMG - ссылка на картинку товара (PREVIEW_PICTURE или DETAIL_PICTURE или первая из MORE_PHOTO)
.TEXT - описание товара (PREVIEW_TEXT или DETAIL_TEXT)
Доступные макросы для родительского товара:
parent.ID - id родительского товара в инфоблоке
parent.NAME - название родительского товара
parent.SECTION_ID - id раздела родительского в инфоблоке
parent.SECTION_CODE - код раздела родительского в инфоблоке
parent.LINK - ссылка на карточку родительского товара
parent.TEXT - описание родительского товара (PREVIEW_TEXT или DETAIL_TEXT)
- Вычисляемое значение
// $item - товар из инфоблока $feed->addMappingAll('description', function ($item) { return $item['PARENT']['PROPS']['DESCRIPTION']['VALUE']['TEXT']; });