Я хотел бы добавить атрибут «epagine_download» для пунктов счета. Я создал Observer, который прослушивает событие sales_order_invoice_pay. Идея состоит в том, что наблюдатель заполнит этот атрибут «epagine_download» URL-адресом, специфичным для клиента (и фактически будет получен путем вызова внешнего веб-сервиса).
Мне удалось создать атрибут с помощью следующего кода:
$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». Что мне не хватает? Я проверяю это, создав счет в модуле admin. По какой-то причине я не могу использовать 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)
Спасибо за отзыв ...