ambimax / magento-module-ambimax-arrayexport

此包的最新版本(dev-master)没有可用的许可证信息。

Magento模块,允许您将所有产品导出为数组,以便在导出过程中修改和排列,并保存为csv或其他格式

dev-master 2017-04-28 12:30 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:14:16 UTC


README

Magento模块,允许您将所有产品导出为数组,以便在导出过程中修改和排列,并保存为csv或其他格式

安装

将src/*复制到您的根目录或使用composer.json

"require": {
    "ambimax/magento-module-ambimax-arrayexport": "~1.0"
}

用法

1.) 创建一个包含所有逻辑的文件

在app/code/comminity/My/Module/Model/Export.php中创建一个Model文件

class My_Module_Model_Export {

    /** @var  Mage_ImportExport_Model_Export_Adapter_Csv */
    protected $_writeAdapter;
    
    /** @var bool */
    protected $_headerColsSet = false;

    /**
     * Init to export all products
     *
     * @param Varien_Event_Observer $observer
     */
    public function initExport()
    {
        $file = Mage::getBaseDir('var').DS.'export'.DS.'exportfile.csv';
        $this->_writeAdapter = new Mage_ImportExport_Model_Export_Adapter_Csv($file);

        $data = array(
            "entity" => 'catalog_product',
            "file_format" => 'csv',
            "export_filter" => array(),
            "skip_attr" => array(),
        );

        /** @var Ambimax_ArrayExport_Model_Export $export */
        $export = Mage::getModel('ambimax_arrayexport/export');
        $export->setData($data);
        $export->export();
    }

    /**
     * Writes every product to $_writeAdapter
     *
     * @param Varien_Event_Observer $observer
     */
    public function writeRow(Varien_Event_Observer $observer)
    {
        // Set header cols
        if( ! $this->_headerColsSet) {
            $this->_writeAdapter->setHeaderCols($observer->getHeaderCols());
            $this->_headerColsSet = true;
        }

        // $data contains store codes with product data
        $data = $observer->getProductData();
        $row = $data['default'];

        // do something with all the data

        // write to csv
        $this->_writeAdapter->writeRow($row);
    }
}

2.) 添加Observer.php

在app/code/community/My/Module/Model/Observer.php中创建一个Observer文件

此文件是必需的,因此我们始终使用Singleton,否则writeAdapter将不会被设置

class My_Module_Model_Observer {

    /**
     * Init to export all products
     *
     * @param Varien_Event_Observer $observer
     */
    public function initCompleteProductExport(Varien_Event_Observer $observer)
    {
        Mage::getSingleton('my_module/export')->initExport();
    }

    /**
     * Write row to file
     *
     * @param Varien_Event_Observer $observer
     */
    public function writeRow(Varien_Event_Observer $observer)
    {
        Mage::getSingleton('my_module/export')->writeRow($observer);
    }
}

3.) 添加行处理事件

此事件用于处理您的数据并将其发送到您的写入适配器

<events>
    <ambimax_arrayexport_product_row>
        <observers>
            <start_export>
                <class>my_module/observer</class>
                <method>writeRow</method>
            </start_export>
        </observers>
    </ambimax_arrayexport_product_row>
</events>

4.) 添加cronjob以触发事件

<crontab>
    <jobs>
        <my_module_product_export>
            <schedule><cron_expr>0 0 * * *</cron_expr></schedule>
            <run>
                <model>my_module/observer::initExport</model>
            </run>
        </my_module_product_export>
    </jobs>
</crontab>

提示

许可证

MIT许可证

作者信息