yokel/gfeed

用于创建 XML 和 CSV 格式 feed 的类

v1.0 2020-05-13 10:12 UTC

This package is auto-updated.

Last update: 2024-09-23 21:46:09 UTC


README

用于创建 XML 和 CSV 格式 feed 的类

系统要求

  • 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'];
});