Magento导出订单同时导出产品信息

Magento导出订单同时导出产品信息,根据业务扩展,Magento自身的功能也越来越满足不了我们的需求了。今天Hicoogle根据需求改善批量导出订单的同时,也要带上该订单的产品信息。花了一点时间,在网上找一些资料,完成了这项功能。今天Hicoogle把它分享出来。以下是部分代码,由于代码较长,在代码尾部附上下载该代码文件。

该功能需要插件Webshopapps来支持,下载地址http://www.magentocommerce.com/magento-connect/webshopapps-orderexport.html

安装完后,找到app\code\community\Webshopapps\Ordermanager\Model\Export\Csv.php,正修改。

先贴一部分代码出来:

<?php
class Webshopapps_Ordermanager_Model_Export_Csv extends Webshopapps_Ordermanager_Model_Export_Abstractcsv
{
  const ENCLOSURE = ‘"‘;
    const DELIMITER = ‘,‘;

    /**
     * Concrete implementation of abstract method to export given orders to csv file in var/export.
     *
     * @param $orders List of orders of type Mage_Sales_Model_Order or order ids to export.
     * @return String The name of the written csv file in var/export
     */
    public function exportOrders($orders)
    {
        $fileName = ‘magento_‘.date("Ymd").‘.csv‘;
        $fp = fopen(Mage::getBaseDir(‘export‘).‘/‘.$fileName, ‘w‘);
        fwrite($fp,"\xEF\xBB\xBF");
        $this->writeHeadRow($fp);
        $record = array();
        foreach ($orders as $order) {
            $order = Mage::getModel(‘sales/order‘)->load($order);
            //$this->writeOrder($order, $fp);
            $common = $this->getCommonOrderValues($order);
            $orderItems = $order->getItemsCollection();
            $common2 = $this->getCommonOrderValues2($order);
            $itemInc = 0;
            foreach ($orderItems as $item)
            {
                if (!$item->isDummy()) {
                    $record[] = array_merge($common, $this->getOrderItemValues($item, $order, ++$itemInc),$common2);
                }
            }
        }
        $this->writeOrder($this->mergeSameKey($record), $fp);

        fclose($fp);
        return $fileName;
    }

由于代码较长,贴出来有可能不完整的情况,于是作为附件来下载该文件。

这个功能需要在后台选择要导出的订单才能正常导出。
点击下载:Csv.zip

转载请注明:嗨酷哥,有你更酷! » [原创]Magento导出订单同时导出产品信息

时间: 2024-10-14 05:49:42

Magento导出订单同时导出产品信息的相关文章

ecshop 导出订单 导出excel订单

ecshop 导出订单 导出excel订单 很多时候,我们每月或者每年都需要做一个订单销售总结,这时要从ecshop订单管理里面拿订单详情,所以需要给ecshop订单管理加一个“导出订单”功能! 思路分析:ecshop后台的“订单管理”里面“打印订单”就是我们要的内容,只需要把内容用PHPExcel导出到一个excel表里面即可. 最终效果:所有信息版,为了能看全所有信息,我把列缩小了 1,admin\templates\order_list.htm 加入“导出订单”按钮 <input name

Ecshop 后台导出订单Excel时, 内存溢出的解决方法

今天继续跟大家分享一下,在我配置Ecshop时的问题. 今天的问题是在后台想要导出订单列表Excel时出现的内存溢出.错误提示如下 问题:  Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate XXXXX) 原因: 出现此问题的原因是因为ECshop 项目中限定了 PHP 可以分配的内存大小.限制内存的作用是为了防止其他恶性插件滥用内存. 在我的项目中内存被限制在64MB,所以问题提示时出

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦

safari 收藏导出 手机safari 导出

safari 收藏导出 手机safari 导出 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:[email protected] E-mail: 313134555 @qq.com 电脑安装itool连接iphone,转到信息这一栏,里面有一个safari书签,列出所有的网址.你导出来在电脑上就是一个网址的快捷链接方式了. ======== 电脑上导出 第一步,打开safari浏览器,一般情况下这个safari浏览器默认是没有显示菜单栏的,如何显示菜单栏呢,点击右边的箭头

Oracle11g在使用exp导出时不导出空表问题的解决办法

11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALUE --------

给 magento 后台订单加入详情预览

一. 后台订单列表grid页 二. 后台订单View页 1) 加入图片预览. 修改  app/design/adminhtml/default/default/template/sales/order/view/items/renderer/default.phtml, 在 <?php if ($this->canDisplayContainer()): ?>  之前插入: <div style="width:60px;height:60px;float:left;dis

magento如何在首页显示产品

1.首先现在magento后台创建一个新的分类,记下这个分类的 ID 号码.使用这个新建的分类来管理你的首页产品,这个分类设置为前台不可见.这样就不会显示在你的分类菜单中了,但使用代码调用的时候却会显示出来. 2.在cms–>manage page–>home 适当位置添加如下代码(例如代码的最后) {{block type=”catalog/product_list” category_id=”3″ template=”catalog/product/list.phtml”}} (注意编码,

新订单、新反馈信息、新投稿 各种场景 各种给管理员发通知邮件

一.设置管理员邮件地址和发邮参数后台,系统设置,系统参数设置基本属性标签:管理员邮箱.以后的通知邮件都会发到这一邮箱FTP/EMAIL标签:如果主机支持mail函数,则个人感觉用这个效率可能高一点,主机不支持的话也没关系,还可以用SMTP,设置方法跟邮件客户端一样.需要说明的是,如果想用gmail的帐号发送实现起来比较麻烦,gmail的smtp需要ssl,且不说帝国自带的邮件发送类不支持ssl,就是帝国后台设置邮件的地方也没有提供ssl选项,所以就不折腾了,用国内的邮箱帐号发就是了. 二.新增给

Excel导入DataTable兼容2003-2012(请细心查看注释)以及 DataTable导出Excel(导出格式2003.xls)注释:需要引用NPOI

1.#region Excel导入DataTable兼容2003-2012(请细心查看注释)/// <summary> /// 读取Excel文件到DataSet中/// 注释1:2012导出如报错“ System.InvalidOperationException: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序.”解决:下载2007 Office system 驱动程序:数据连接组件安装http://download.microsoft.com/downl