Magento показывает неверные итоговые записи в продажах. / Сетка заказа

Я сделаю все возможное, чтобы объяснить, что я делаю.

  1. Я вручную добавил четыре столбца в файл grid.php для сетки продаж / заказов.

  2. Теперь он показывает неправильный счет в общем количестве записей.

  3. Есть более 1500 записей, но показывает только 1190.

  4. Итак, вот код файла 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));
    }
    
    }
    
  5. Теперь я написал свой код для присоединения к таблице и доступа к нему из таблицы в функции _prepareCollections ().

  6. Добавлено 4 столбца в функцию _addcolumns (). Я добавляю способ оплаты, Sku, название, track_number.

проблема

всего найдено 1190 записей.

Но это должно показать все 1500 записей.
Пожалуйста, дайте мне знать, что я должен сделать.

Также, пожалуйста, обратитесь по ссылке для моей предыдущей проблемы моя предыдущая ссылка на проблему

0

Решение

У меня есть решение (Райан помог мне). Там не всегда будет весь номер отслеживания доставки, а также оплата.

Так что здесь мы должны использовать joinLeft on sales_flat_shipment_track and sales_flat_order_payment.

Следовательно, это работает. ! 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]