Расширенный профиль экспорта в Magento

Я не могу найти никакой документации по этому поводу, я даже не знаю, возможно ли это. Мне нужно экспортировать некоторые продукты, у меня уже есть профиль, потому что этот экспорт предназначен для конкурентного сайта, такого как nextag.com или pricegrabber.com, мы хотим экспортировать только несколько продуктов, а не 3000, которые у нас есть.

Я мог бы создать логический атрибут с именем Export.

Проблема в том, как я могу указать в профиле экспортировать только те продукты, для которых экспорт установлен в да?

Это код, который он генерирует:

<action type="catalog/convert_adapter_product" method="load">
    <var name="store"><![CDATA[5]]></var>
    <var name="filter/type"><![CDATA[simple]]></var>
    <var name="filter/price/from"><![CDATA[90]]></var>
    <var name="filter/price/to"><![CDATA[6000]]></var>
    <var name="filter/status"><![CDATA[1]]></var>
</action>

<action type="catalog/convert_parser_product" method="unparse">
    <var name="store"><![CDATA[5]]></var>
    <var name="url_field"><![CDATA[1]]></var>
</action>

<action type="dataflow/convert_mapper_column" method="map">
    <var name="map">
        <map name="sku"><![CDATA[MPN/UPC]]></map>
        <map name="brand"><![CDATA[Manufacturer]]></map>
        <map name="name"><![CDATA[Product Name]]></map>
        <map name="product_link"><![CDATA[product_link]]></map>
        <map name="condition"><![CDATA[Product Condition]]></map>
        <map name="price"><![CDATA[Selling Price]]></map>
        <map name="shipping_costs"><![CDATA[Shipping costs]]></map>
        <map name="weight_box1"><![CDATA[Weight]]></map>
    </var>
    <var name="_only_specified">true</var>
</action>

<action type="dataflow/convert_parser_csv" method="unparse">
    <var name="delimiter"><![CDATA[,]]></var>
    <var name="enclose"><![CDATA["]]></var>
    <var name="fieldnames">true</var>
</action>

<action type="dataflow/convert_adapter_io" method="save">
    <var name="type">file</var>
    <var name="path">var/export</var>
    <var name="filename"><![CDATA[nextagfeed.csv]]></var>
</action>

Благодарить


person Luis Valencia    schedule 17.10.2011    source источник
comment
Привет, у меня есть вопрос о терминах, используемых в этом коде профиля. В частности, sku и MPN/UPC. Какие из них находятся на сайте администратора Magento? Являются ли они кодом атрибута и меткой атрибута?   -  person musicliftsme    schedule 24.06.2012


Ответы (1)


Попробуйте добавить фильтр экспорта в свои действия xml

<var name="filter/export"><![CDATA[1]]></var>

Что-то типа

<action type="catalog/convert_adapter_product" method="load">
    <var name="store"><![CDATA[5]]></var>
    <var name="filter/type"><![CDATA[simple]]></var>
    <var name="filter/price/from"><![CDATA[90]]></var>
    <var name="filter/price/to"><![CDATA[6000]]></var>
    <var name="filter/status"><![CDATA[1]]></var>
    <var name="filter/export"><![CDATA[1]]></var>
</action>

<action type="catalog/convert_parser_product" method="unparse">
    <var name="store"><![CDATA[5]]></var>
    <var name="url_field"><![CDATA[1]]></var>
</action>

<action type="dataflow/convert_mapper_column" method="map">
    <var name="map">
        <map name="sku"><![CDATA[MPN/UPC]]></map>
        <map name="brand"><![CDATA[Manufacturer]]></map>
        <map name="name"><![CDATA[Product Name]]></map>
        <map name="product_link"><![CDATA[product_link]]></map>
        <map name="condition"><![CDATA[Product Condition]]></map>
        <map name="price"><![CDATA[Selling Price]]></map>
        <map name="shipping_costs"><![CDATA[Shipping costs]]></map>
        <map name="weight_box1"><![CDATA[Weight]]></map>
    </var>
    <var name="_only_specified">true</var>
</action>

<action type="dataflow/convert_parser_csv" method="unparse">
    <var name="delimiter"><![CDATA[,]]></var>
    <var name="enclose"><![CDATA["]]></var>
    <var name="fieldnames">true</var>
</action>

<action type="dataflow/convert_adapter_io" method="save">
    <var name="type">file</var>
    <var name="path">var/export</var>
    <var name="filename"><![CDATA[nextagfeed.csv]]></var>
</action>

Это говорит magento фильтровать коллекцию продуктов по статусу цены и атрибуту экспорта, поскольку экспорт является логическим, вам нужно установить соответствующее логическое значение в этом случае 1 для true.

Теперь, если это не работает, может быть, было бы проще добавить парсер вашего продукта и использовать расширенный импорт. Дайте мне знать, как это происходит.

Хорошо, теперь мы знаем, что это определенно не работает, но давайте посмотрим, почему это не работает. Причина в том, что нам не хватает этого фильтра на нашем адаптере.

app/core/Mage/Catalog/Model/Convert/Adapter/Product.php

найдите функцию загрузки в строке 99:

public function load()
{
    $attrFilterArray = array();
    $attrFilterArray ['name']           = 'like';
    $attrFilterArray ['sku']            = 'startsWith';
    $attrFilterArray ['type']           = 'eq';
    $attrFilterArray ['attribute_set']  = 'eq';
    $attrFilterArray ['visibility']     = 'eq';
    $attrFilterArray ['status']         = 'eq';
    $attrFilterArray ['price']          = 'fromTo';
    $attrFilterArray ['qty']            = 'fromTo';
    $attrFilterArray ['store_id']       = 'eq';

    $attrToDb = array(
        'type'          => 'type_id',
        'attribute_set' => 'attribute_set_id'
    );

И чуть ниже идентификатора магазина добавьте свой новый фильтр

 $attrFilterArray ['is_imported']     = 'eq';

Ваше здоровье

person Allan MacGregor    schedule 17.10.2011
comment
это не сработало, но я проверил, и атрибут не логический, а раскрывающийся, поэтому я изменил его на это? ‹имя карты=is_exported›‹![CDATA[is_imported]]›‹/map›. и он все еще экспортирует все - person Luis Valencia; 17.10.2011
comment
подожди минутку, action.xml? этот файл не существует во всей моей установке magento, настройки, которые вы сказали, я добавил в расширенный редактор профилей. - person Luis Valencia; 17.10.2011
comment
Лол, я не сказал action.xml, я имел в виду действия профиля xml, и если ваше свойство называется is_exported, то оно должно быть ‹var name=filter/is_exported›‹![CDATA[is_imported]]›‹/var› внутри действий - person Allan MacGregor; 17.10.2011
comment
Я удалил комментарий, я сделал это не очень хорошо, я немного торопился, однако я перепроверил, и теперь я использовал правильный код атрибута, но все равно не работает. ‹var name=filter/is_import›‹![CDATA[Да]]›‹/var›? - person Luis Valencia; 17.10.2011
comment
Луис, почему ты используешь Да? каков фактический код атрибута? и ценности - person Allan MacGregor; 17.10.2011
comment
код атрибута = is_import, это раскрывающийся атрибут, возможные значения которого: «Да» и «Нет». Я сделал ошибку в исходном сообщении, поэтому я написал «Да» в комментарии. Я запутался? - person Luis Valencia; 17.10.2011
comment
Да, попробуйте разместить следующее ‹var name=filter/is_import›‹![CDATA[1]]›‹/var› - person Allan MacGregor; 18.10.2011
comment
тот же результат :) он экспортирует все. - person Luis Valencia; 18.10.2011
comment
@LuisEValencia, пожалуйста, сформулируйте немного яснее, решение работает для вас? хотя вы приняли ответ ... но ваш последний комментарий довольно сбивает с толку - person Zaffar Saffee; 11.11.2012