【问题标题】:How can I get the selected order ids in custom action in sales order onclick?如何在销售订单 onclick 的自定义操作中获取选定的订单 ID?
【发布时间】:2014-07-22 10:11:22
【问题描述】:

我在销售订单中添加了名为发票的新批量操作。我想在单击此操作时创建发票。当我从列表中选择订单,然后在销售订单操作中选择发票时,我如何获取订单 ID。

我的新批量操作发票显示在操作中,但是当我选择发票操作并提交时,我无法为所选订单开具发票。

app/code/local/MagePsycho/Newmodule/Block/Sales/Order/Grid.php:

<?php
class MagePsycho_Newmodule_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
{   
    protected function _prepareMassaction()
    {
        parent::_prepareMassaction();

        // Append new mass action option 
        $this->getMassactionBlock()->addItem(
            'newmodule',
            array('label' => $this->__('New Mass Action Title'), 
                  'url'   => $this->getUrl('newmodule/controller/action') //this should be the url where there will be mass operation
            )
        );
    }
}

app/code/local/MagePsycho/Newmodule/etc:-

 <global>
        <blocks>
            <adminhtml>
                <rewrite>
                    <sales_order_grid>MagePsycho_Newmodule_Block_Sales_Order_Grid</sales_order_grid>
                </rewrite>

<events>
        <core_block_abstract_prepare_layout_before>
            <observers>
                <newmodule_core_block_abstract_prepare_layout_before>
                    <class>newmodule/observer</class>
                    <method>addMassAction</method>
                </newmodule_core_block_abstract_prepare_layout_before>
            </observers>
        </core_block_abstract_prepare_layout_before>
    </events>
            </adminhtml>
        </blocks> 
    </global>

app/code/local/MagePsycho/Newmodule/Model/Observer.php:-

<?php
class MagePsycho_Newmodule_Model_Observer
{
    public function addMassAction($observer)
    {
        echo 'hello magento';
        $block = $observer->getEvent()->getBlock();
        if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction'
            && $block->getRequest()->getControllerName() == 'sales_order')
        {
            $block->addItem('newmodule', array(
                'label' => 'New Mass Action Title',
                'url' => Mage::app()->getStore()->getUrl('newmodule/controller/action'),
            ));
        }
    }
}

我可以做些什么来为我的行为开具发票?

【问题讨论】:

    标签: magento invoice


    【解决方案1】:

    您可以通过getRequest 在自定义控制器操作的getParam 方法中获取此信息,如下所示

      public function massChangeTypeAction()
        {
          $orderIds = (array)$this->getRequest()->getParam('order_ids');        
        }
    

    您可以打印$orderIds 以从网格中获取选定的订单。

    【讨论】:

    • 嗨 Liyakat,它工作正常。现在请您告诉我,如何在其中添加管理布局??
    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 2018-09-10
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多