Magento - 为发票项添加属性

时间:2011-08-02 21:32:12

标签: magento magento-1.4

我想将“epagine_download”属性添加到发票项目中。我创建了一个侦听sales_order_invoice_pay事件的Observer。想法是观察者将使用特定于客户的URL填充该属性'epagine_download'(实际上将通过调用外部Web服务获得)。

我已设法通过以下代码创建属性:

    $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('invoice_item', 'epagine_download', array(
    'label'                       => 'Download',
    'type'                        => 'varchar',
    'input'                       => 'text'  ,
    'visible'                     => false,
    'required'                    => false  
))

这是观察者的配置:

<?xml version="1.0"?>
<config>
    <global>
        <models>
            <eboeksales>
                <class>Eboek_Sales_Model</class>
            </eboeksales>
        </models>
        <events>
            <sales_order_invoice_pay>
                <observers>
                    <eboek_sales_pay_observer>
                        <type>singleton</type>
                        <class>Eboek_Sales_Model_Pay_Observer</class>
                        <method>handle_sales_invoice_paid</method>
                    </eboek_sales_pay_observer>

                </observers>
            </sales_order_invoice_pay>    
        </events>
    </global>

</config>

现在我无法实施观察者。似乎getData没有重新调用我的新属性“epagine_download”。我错过了什么?我通过在adminmodule中创建发票来测试它。由于某种原因,我不能在这里使用var_dump,所以我使用Mage :: log。我还调用一个未使用的函数GetBlahBlah,因此我得到一个异常,从而阻止创建发票,所以每次我想测试时我都不需要创建新的订单。

class Eboek_Sales_Model_Pay_Observer {
    public function __construct()
    {

    }
    /**
     *
     * @param Varien_Event_Observer $observer
     * @return Eboek_Sales_Model_Pay_Observer
     */
    public function handle_sales_invoice_paid($observer)
    {

        $event = $observer->getEvent();
        Mage::log("Hello8812");
        $inv=$event->getInvoice();

        #Mage::log($inv);
        $a= $inv->getAllItems();

        Mage::log("=========================================================================");
        Mage::log($a[0]->getOrderItem()->getData());
        Mage::log("=========================================================================");
        Mage::log($a[0]->getData());
        Mage::log("=========================================================================");
        $event->GetBlahBlah();

        return $this;
    }
}

(Magento版本为1.4) 感谢您的反馈...

0 个答案:

没有答案