импортировать пользовательский XML-файл в magento - PullRequest
2 голосов
/ 30 ноября 2010

У меня есть XML-файл, который содержится в продуктах. Структура файла такая:

<?xml version="1.0" encoding="iso-8859-2"?>
  <service >
   <product id="2476" sku="SA 177-2" category="51" visible="1" >
     <title><![CDATA[Fedde Le Grand - OUTPUT]]></title>
     <short><![CDATA[Fedde Le Grand presents OUTPUT...]]</short>
     <long />
     <category><![CDATA[elektronika/dance/ambient]]></category>
     <price>1600</price>
     <vat>25</vat>
     <image>200909/92917a17f143088ce219_20090907.jpg</image>
     <actor><![CDATA[Fedde le Grand]]></actor>
     <album><![CDATA[Output]]></album>
     <label><![CDATA[CLS]]></label>
     <type><![CDATA[Audio CD]]></type>
   </product>
  </service>

Я бы хотел использовать систему импорта magento, но она не работает. Я устанавливаю карты в профиле действий XML. Структура этого файла:

<action type="dataflow/convert_parser_xml_excel" method="parse">
    <var name="single_sheet"><![CDATA[]]></var>
    <var name="fieldnames"></var>
    <var name="map">
        <map name="product_category"><![CDATA[category_ids]]></map>
        <map name="product_sku"><![CDATA[sku]]></map>
        <map name="title"><![CDATA[name]]></map>
        <map name="short"><![CDATA[short_description]]></map>
        <map name="long"><![CDATA[description]]></map>
        <map name="price"><![CDATA[price]]></map>
        <map name="vat"><![CDATA[tax_class_id]]></map>
        <map name="image"><![CDATA[image]]></map>
        <map name="actor"><![CDATA[meta_description]]></map>
        <map name="album"><![CDATA[meta_title]]></map>
        <map name="label"><![CDATA[meta_keyword]]></map>
        <map name="type"><![CDATA[samples_title]]></map>
    </var>
    <var name="store"><![CDATA[0]]></var>
    <var name="number_of_records">1</var>
    <var name="decimal_separator"><![CDATA[.]]></var>
    <var name="adapter">catalog/convert_adapter_product</var>
    <var name="method">parse</var>
</action>

.Результат НАЙДЕН 0 строк, поэтому он не удался Кто-нибудь может мне помочь? Я не понимаю эту проблему. Привет, Роланд Дерченьи

1 Ответ

1 голос
/ 02 декабря 2010

Вы должны написать свой собственный класс анализатора, а затем использовать расширенные профили. Convert_parser_xml_excel ожидает файл в формате Excel xml. Если вы посмотрите на функцию Mage_Dataflow_Model_Convert_Parser_Xml_Excel :: parse (), вы увидите, что она ожидает другой формат xml, чем у вас.

//excerpt from Mage_Dataflow_Model_Convert_Parser_Xml_Excel::parse()
    $worksheet = $this->getVar('single_sheet', '');

            $xmlString = $xmlRowString = '';
            $countRows = 0;
            $isWorksheet = $isRow = false;
            while (($xmlOriginalString = $batchIoAdapter->read()) !== false) {
                $xmlString .= $xmlOriginalString;
                if (!$isWorksheet) {
                    $strposS = strpos($xmlString, '<Worksheet');
                    $substrL = 10;
                    //fix for OpenOffice
                    if ($strposS === false) {
                        $strposS = strpos($xmlString, '<ss:Worksheet');
                        $substrL = 13;
                    }

Для резюме:

  1. Вы должны использовать расширенные профили и написать собственную функцию парсера
  2. используйте профиль импорта xml в качестве основы и напишите свой собственный класс и функцию анализа, используя Mage_Dataflow_Model_Convert_Parser_Xml_Excel в качестве демонстрационной версии
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...