Magento的高级出口档案

时间:2011-10-17 17:36:02

标签: magento magento-1.4 magento-1.5

我找不到任何关于此的文件,我甚至不知道它是否可行。 我需要出口一些产品,我已经有了个人资料,因为这个出口是针对像nextag.com或pricegrabber.com这样的竞争网站,我们只想出口少数产品,而不是我们现有的3000个产品。

我可以创建一个名为Export的布尔属性。

问题是如何在配置文件中仅导出导出设置为yes的产品?

这是它生成的代码:

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

感谢

1 个答案:

答案 0 :(得分:4)

尝试将导出过滤器添加到您的操作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按价格状态和导出属性过滤产品集合,因为export是布尔值,你需要在这种情况下设置相应的布尔值1为真。

现在,如果这不起作用,可能更容易添加产品Parser并使用高级导入。让我知道它是怎么回事。

好的,现在我们知道最终不起作用,但让我们看看为什么它不起作用。原因是我们错过了打开适配器的过滤器

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'
    );

在商店ID下方添加新过滤器

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

干杯