Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento在销售/订单网格中显示错误的总记录_Php_Mysql_Magento_Grid_Magento 1.9.1 - Fatal编程技术网

Php Magento在销售/订单网格中显示错误的总记录

Php Magento在销售/订单网格中显示错误的总记录,php,mysql,magento,grid,magento-1.9.1,Php,Mysql,Magento,Grid,Magento 1.9.1,我会尽力解释我在做什么 我在grid.php文件中为销售/订单网格手动添加了四列 现在它在总记录中显示了错误的计数 有1500多条记录,但只有1190条 下面是代码grid.php文件 <?php class Mage_Adminhtml_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid { public function callback_skus($value, $row, $column, $is

我会尽力解释我在做什么

  • 我在grid.php文件中为销售/订单网格手动添加了四列

  • 现在它在总记录中显示了错误的计数

  • 有1500多条记录,但只有1190条

  • 下面是代码grid.php文件

    <?php
    
    class Mage_Adminhtml_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid
    {
        public function callback_skus($value, $row, $column, $isExport)
        {
            $increment_id = $value;
            $_order = Mage::getModel('sales/order')->loadByIncrementId($increment_id);
            $_items = $_order->getAllItems();
            $skus="";
            foreach ($_items as $item)
            {
                $skus .= $item->getSku()."<br />";
            }
            return $skus;
        }
    
        public function __construct()
        {
            parent::__construct();
            $this->setId('sales_order_grid');
            $this->setUseAjax(true);
            $this->setDefaultSort('created_at');
            $this->setDefaultDir('DESC');
            $this->setSaveParametersInSession(true);
        }
    
        /**
        * Retrieve collection class
        *
        * @return string
        */
        protected function _getCollectionClass()
        {
            return 'sales/order_grid_collection';
        }
    
        protected function _prepareCollection()
        {
            $collection = Mage::getResourceModel($this->_getCollectionClass());
    
            $collection->getSelect()->join('sales_flat_order_payment', 'sales_flat_order_payment.parent_id = main_table.entity_id',array('method'));
            $collection->getSelect()->group('main_table.entity_id');
            $collection->getSelect()->group('sales_flat_order_payment.parent_id');
    
            $collection->getSelect()->join('sales_flat_shipment_track', 'main_table.entity_id = sales_flat_shipment_track.order_id',array('track_number'=> new Zend_Db_Expr('group_concat(DISTINCT `sales_flat_shipment_track`.track_number SEPARATOR ", ")'),'title' => new Zend_Db_Expr('(SELECT group_concat(`sales_flat_shipment_track`.title SEPARATOR ", ")FROM `sales_flat_shipment_track` As `sales_flat_shipment_track` WHERE `main_table`.`entity_id` = `sales_flat_shipment_track`.`order_id` )')));
            $collection->getSelect()->join('sales_flat_order_address', "main_table.entity_id = sales_flat_order_address.parent_id AND sales_flat_order_address.address_type='shipping'",array('country_id')); 
            $collection->getSelect()->joinLeft('sales_flat_order_item', 'main_table.entity_id = sales_flat_order_item.order_id',array('sku'));
            $collection->getSelect()->group('main_table.entity_id');
            $this->setCollection($collection);
    
    
            $orders = Mage::getResourceModel('sales/order_collection');
            foreach($orders as $order){
                $items = $order->getAllVisibleItems();
                foreach($items as $item){
                    $sku = $item->getSku();
                }
            }
            $collection->getSize();
            $collection->count();
            return parent::_prepareCollection();    
        }
    
        public function count()
        {
            $this->load();
            return count($this->_prepareColumns);
        }
    
    
        protected function _prepareColumns()
        {
    
    
    
            $this->addColumn('sku', array(
                'header' => Mage::helper('sales')->__('SKU#'),
                'index' => 'increment_id',
                'width' => '80px',
                'frame_callback' => array($this, 'callback_skus'),
                'filter_index' => 'sales_flat_order_item.sku',
                ));
    
    
            $this->addColumn('real_order_id', array(
                'header'=> Mage::helper('sales')->__('Order #'),
                'width' => '80px',
                'type'  => 'text',
                'index' => 'increment_id',
                ));
    
            $this->addColumn('country_id', array(
                'header'=> Mage::helper('sales')->__('Shipping Country'),
                'width' => '80px',
                'type'  => 'text',
                'index' => 'country_id',
                ));
    
    
            $this->addColumn('method', array(
                'header'=> Mage::helper('sales')->__('Payment Method'),
                'width' => '80px',
                'type'  => 'text',
                'index' => 'method',
                ));
    
    
            if (!Mage::app()->isSingleStoreMode()) {
                $this->addColumn('store_id', array(
                    'header'    => Mage::helper('sales')->__('Purchased From (Store)'),
                    'index'     => 'store_id',
                    'type'      => 'store',
                    'store_view'=> true,
                    'display_deleted' => true,
                    ));
            }
    
            $this->addColumn('created_at', array(
                'header' => Mage::helper('sales')->__('Purchased On'),
                'index' => 'created_at',
                'type' => 'datetime',
                'width' => '100px',
                ));
    
            $this->addColumn('billing_name', array(
                'header' => Mage::helper('sales')->__('Bill to Name'),
                'index' => 'billing_name',
                ));
    
            $this->addColumn('shipping_name', array(
                'header' => Mage::helper('sales')->__('Ship to Name'),
                'index' => 'shipping_name',
                ));
    
            $this->addColumn('base_grand_total', array(
                'header' => Mage::helper('sales')->__('G.T. (Base)'),
                'index' => 'base_grand_total',
                'type'  => 'currency',
                'currency' => 'base_currency_code',
                ));
    
            $this->addColumn('grand_total', array(
                'header' => Mage::helper('sales')->__('G.T. (Purchased)'),
                'index' => 'grand_total',
                'type'  => 'currency',
                'currency' => 'order_currency_code',
                ));
    
            $this->addColumn('status', array(
                'header' => Mage::helper('sales')->__('Status'),
                'index' => 'status',
                'type'  => 'options',
                'width' => '70px',
                'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
                ));
    
            $this->addColumn('track_number', array(
                'header'=> Mage::helper('sales')->__(' Track Number'),
                'width' => '80px',
                'type'  => 'text',
                'index' => 'track_number',
    
                ));
    
    
            $this->addColumn('title', array(
                'header'=> Mage::helper('sales')->__('Title'),
                'width' => '80px',
                'index' => 'title',
    
                ));
    
    
            if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
                $this->addColumn('action',
                    array(
                        'header'    => Mage::helper('sales')->__('Action'),
                        'width'     => '50px',
                        'type'      => 'action',
                        'getter'     => 'getId',
                        'actions'   => array(
                            array(
                                'caption' => Mage::helper('sales')->__('View'),
                                'url'     => array('base'=>'*/sales_order/view'),
                                'field'   => 'order_id',
                                'data-column' => 'action',
                                )
                            ),
                        'filter'    => false,
                        'sortable'  => false,
                        'index'     => 'stores',
                        'is_system' => true,
                        ));
            }
            $this->addRssList('rss/order/new', Mage::helper('sales')->__('New Order RSS'));
    
            $this->addExportType('*/*/exportCsv', Mage::helper('sales')->__('CSV'));
            $this->addExportType('*/*/exportExcel', Mage::helper('sales')->__('Excel XML'));
    
            return parent::_prepareColumns();
        }
    
    
    
        protected function _prepareMassaction()
        {
            $this->setMassactionIdField('entity_id');
            $this->getMassactionBlock()->setFormFieldName('order_ids');
            $this->getMassactionBlock()->setUseSelectAll(false);
    
            if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/cancel')) {
                $this->getMassactionBlock()->addItem('cancel_order', array(
                    'label'=> Mage::helper('sales')->__('Cancel'),
                    'url'  => $this->getUrl('*/sales_order/massCancel'),
                    ));
            }
    
            if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/hold')) {
                $this->getMassactionBlock()->addItem('hold_order', array(
                    'label'=> Mage::helper('sales')->__('Hold'),
                    'url'  => $this->getUrl('*/sales_order/massHold'),
                    ));
            }
    
            if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/unhold')) {
                $this->getMassactionBlock()->addItem('unhold_order', array(
                    'label'=> Mage::helper('sales')->__('Unhold'),
                    'url'  => $this->getUrl('*/sales_order/massUnhold'),
                    ));
            }
    
            $this->getMassactionBlock()->addItem('pdfinvoices_order', array(
                'label'=> Mage::helper('sales')->__('Print Invoices'),
                'url'  => $this->getUrl('*/sales_order/pdfinvoices'),
                ));
    
            $this->getMassactionBlock()->addItem('pdfshipments_order', array(
                'label'=> Mage::helper('sales')->__('Print Packingslips'),
                'url'  => $this->getUrl('*/sales_order/pdfshipments'),
                ));
    
            $this->getMassactionBlock()->addItem('pdfcreditmemos_order', array(
                'label'=> Mage::helper('sales')->__('Print Credit Memos'),
                'url'  => $this->getUrl('*/sales_order/pdfcreditmemos'),
                ));
    
            $this->getMassactionBlock()->addItem('pdfdocs_order', array(
                'label'=> Mage::helper('sales')->__('Print All'),
                'url'  => $this->getUrl('*/sales_order/pdfdocs'),
                ));
    
            $this->getMassactionBlock()->addItem('print_shipping_label', array(
                'label'=> Mage::helper('sales')->__('Print Shipping Labels'),
                'url'  => $this->getUrl('*/sales_order_shipment/massPrintShippingLabel'),
                ));
    
            return $this;
        }
    
        public function getRowUrl($row)
        {
            if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
                return $this->getUrl('*/sales_order/view', array('order_id' => $row->getId()));
            }
            return false;
        }
    
        public function getGridUrl()
        {
            return $this->getUrl('*/*/grid', array('_current'=>true));
        }
    
    }
    
    setMassactionIdField('entity_id');
    $this->getMassactionBlock()->setFormFieldName('order_id');
    $this->getMassactionBlock()->setUseSelectAll(false);
    如果(Mage::getSingleton('admin/session')->被允许('sales/order/actions/cancel')){
    $this->getMassactionBlock()->addItem('cancel_order',array(
    'label'=>Mage::helper('sales')->\uuuu('Cancel'),
    'url'=>$this->getUrl('*/sales\u order/massCancel'),
    ));
    }
    如果(Mage::getSingleton('admin/session')->被允许('sales/order/actions/hold')){
    $this->getMassactionBlock()->addItem('hold_order',数组(
    'label'=>Mage::helper('sales')->,
    'url'=>$this->getUrl('*/sales\u order/masshhold'),
    ));
    }
    如果(Mage::getSingleton('admin/session')->被允许('sales/order/actions/unhold')){
    $this->getMassactionBlock()->addItem('unhold_order',数组(
    'label'=>Mage::helper('sales')->,
    'url'=>$this->getUrl('*/sales\u order/massUnhold'),
    ));
    }
    $this->getMassactionBlock()->addItem('pdfinvoices_order',数组(
    'label'=>Mage::helper('sales')->(打印发票)),
    'url'=>$this->getUrl('*/sales\u order/pdfinvoices'),
    ));
    $this->getMassactionBlock()->addItem('pdfshipments\u order',数组(
    'label'=>Mage::helper('sales')->\uuuu('Print packingsslips'),
    'url'=>$this->getUrl('*/sales\u order/pdfshipments'),
    ));
    $this->getMassactionBlock()->addItem('pdfcreditmemos_order',数组(
    'label'=>Mage::helper('sales')->\uuuuu('Print Credit Memos'),
    'url'=>$this->getUrl('*/sales\u order/pdfcreditmemos'),
    ));
    $this->getMassactionBlock()->addItem('pdfdocs_order',数组(
    'label'=>Mage::helper('sales')->\uuuu('Print All'),
    'url'=>this->getUrl('*/sales\u order/pdfdocs'),
    ));
    $this->getMassactionBlock()->addItem('print\u shipping\u label',数组(
    'label'=>Mage::helper('sales')->\uuuu('Print Shipping Labels'),
    'url'=>$this->getUrl('*/sales\u order\u shippinglabel'),
    ));
    退还$this;
    }
    公共函数getRowUrl($row)
    {
    如果(Mage::getSingleton('admin/session')->被允许('sales/order/actions/view')){
    返回$this->getUrl('*/sales\u order/view',数组('order\u id'=>$row->getId());
    }
    返回false;
    }
    公共函数getGridUrl()
    {
    返回$this->getUrl('*/*/grid',数组(''u current'=>true));
    }
    }
    
  • 现在我已经编写了连接表的代码,并在_prepareCollections()函数中从网格访问它

  • 在_addcolumns()函数中添加了4列。我正在添加付款方式、Sku、标题、跟踪号

  • 问题

    共找到1190项记录

    但它应该显示所有1500条记录。 请让我知道我要做什么

    另外,请参考我上一个问题的链接

    我已经找到了解决方案(Ryan帮助了我)。不会总是有所有的装运跟踪号和付款

    因此,在这里,我们需要使用
    joinLeft进行销售(平装)装运(跟踪)和销售(平装)订单(付款)。


    因此它是有效的。!:)

    您能按字段
    sales\u flat\u order\u grid
    和表
    sales\u flat\u shipping\u track
    显示表
    sales\u flat\u order\u grid
    中有多少记录,以及
    sales\u flat\u order\u grid
    中有多少不同的记录吗。?我该怎么做?我从数据库检索数据的查询是否良好?我是否正确地加入了表???执行并显示下一次查询的结果:
    从sales\u flat\u order\u网格中选择count(*)
    从销售\平面\订单\网格中选择计数(不同的实体\ id)和<代码>从销售\平面\发货\跟踪中选择计数(*)