如何在商品属性上为Magento高级导出配置文件添加过滤器? [英] How do I add a filter on a product attribute to Magento Advanced Export Profiles?

查看:33
本文介绍了如何在商品属性上为Magento高级导出配置文件添加过滤器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用制造商"字段将数据过滤到csv.我试过了,但是没用:

I want to filter my data to csv using the "Manufacturer" field. I tried this, but it didn't work:

<action type="catalog/convert_adapter_product" method="load">
    <var name="store"><![CDATA[0]]></var>
    <var name="filter/manufacturer"><![CDATA[898]]></var>
</action>

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

<action type="dataflow/convert_mapper_column" method="map">
    <var name="map">
        <map name="sku"><![CDATA[sku]]></map>
        <map name="name"><![CDATA[name]]></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[safety-gates-export.csv]]></var>
</action>

关于如何使它与默认属性以外的其他属性一起使用的任何想法?

Any thoughts on how to get this to work with filtering on other attributes than the default ones?

推荐答案

不幸的是,通过阅读代码,看起来可以过滤的属性集非常有限.

Unfortunately, from reading the code it looks like the set of attributes you can filter on is very limited.

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

要过滤其他属性,需要对类进行较小的扩展.

To filter on other attributes requires a minor extension to the class.

/app/code/local/YourCompany/YourModule/Model/DataFlow/Catalog/Product/Adapter.php

<?php
class YourCompany_YourModule_Model_DataFlow_Catalog_Product_Adapter 
extends Mage_Catalog_Model_Convert_Adapter_Product
{

    /**
     * Extend the parent method to add filtering capability for additional fields
     *
     * This is required since the parent load() uses a parent::setFilter instead of $this->setFilter
     *
     * @return Mage_Dataflow_Model_Convert_Adapter_Interface
     */
    public function load()
    {
        // Add any additional attributes you want to filter on here
        $attrFilterArray = array(
            'manufacturer' => 'eq',
        );

        $this->setFilter($attrFilterArray, array());

        return parent::load();
    }

}

/app/code/local/YourCompany/YourModule/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <YourCompany_YourModule>
            <version>0.0.1</version>
        </YourCompany_YourModule>
    </modules>
    <global>
        <models>
            <catalog>
                <rewrite>
                    <convert_adapter_product>YourCompany_YourModule_Model_DataFlow_Catalog_Product_Adapter</convert_adapter_product>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

这篇关于如何在商品属性上为Magento高级导出配置文件添加过滤器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆