wagood/commerceml

CommerceML 2.0 解析库

dev-master 2023-10-06 12:26 UTC

This package is auto-updated.

Last update: 2024-09-06 14:27:08 UTC


README

原始

基于库 commerceml 的分支。更新为支持 PHP v.8+、Symfony Event Dispatcher v.6+。

关于库

此库旨在对按 Commerce ML 2.0 标准导出的 1C 文件进行流式解析。

解析器本身是一个事件调度器,即当在 Commerce ML 2.0 结构中找到所需结构的对象时,调度器会调用相应的事件,并将根据模型结构已形成的对象传递给它。

目前存在 7 个主要事件

  • 获取所有者;
  • 获取类别;
  • 获取提议;
  • 获取价格类别;
  • 获取仓库;
  • 获取商品;
  • 获取商品属性。

简单使用解析器

// Создание экземпляра класса парсера
$parser = \CommerceMLParser\Parser::getInstance(); 

// добавление функции обработки события CategoryEvent
$parser->addListener("CategoryEvent", function (\CommerceMLParser\Event\CategoryEvent $event) {
    $categories = $event->getFlatCategories(); // get collection of Category's
}); 

// добавление функции обработки события ProductEvent
$parser->addListener("ProductEvent", function (\CommerceMLParser\Event\ProductEvent $event)
    $product = $event->getProduct(); // get one Product Model
}); 

$parser->parse($pathToImportXmlFile); // полный путь до файла import.xml (Commerce ML 2) выгрузки из 1с
$parser->parse($pathToOfferXmlFile); // полный путь до файла offer.xml (Commerce ML 2) выгрузки из 1с