2 Stimmen

Erweitertes Exportprofil in Magento

Ich kann keine Dokumentation dazu finden, ich weiß nicht einmal, ob es möglich ist. Ich muss einige Produkte exportieren, ich habe bereits das Profil, weil dieser Export für eine konkurrierende Website wie nextag.com oder pricegrabber.com ist, wollen wir nur ein paar Produkte zu exportieren und nicht die 3000 wir haben.

Ich könnte ein boolesches Attribut namens Export erstellen.

Das Problem ist, wie kann ich im Profil festlegen, dass nur Produkte exportiert werden, deren Export auf "Ja" eingestellt ist?

Dies ist der Code, den er erzeugt:

<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>

Danke

4voto

Allan MacGregor Punkte 914

Versuchen Sie, den Exportfilter zu Ihren Aktionen xml hinzuzufügen

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

Etwas wie

<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>

Damit wird Magento angewiesen, die Produktsammlung nach dem Preisstatus und dem Exportattribut zu filtern. Da Export boolesch ist, müssen Sie den entsprechenden booleschen Wert setzen, in diesem Fall 1 für true.

Wenn dies nicht funktioniert, wäre es vielleicht einfacher, Ihren Produkt-Parser hinzuzufügen und erweiterte Importe zu verwenden. Lassen Sie mich wissen, wie es geht.

Ok, jetzt wissen wir, dass das definitiv nicht funktioniert, aber schauen wir uns an, warum es nicht funktioniert. Der Grund ist, dass wir den Filter auf unserem Adapter nicht geöffnet haben

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

Suchen Sie die Ladefunktion um Zeile 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'
    );

Und fügen Sie direkt unter store id Ihren neuen Filter hinzu

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

Prost

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X