2016-11-07 14 views
1

私のMagento 1.9インストールでは、私はオブザーバーにイベントsales_order_invoice_payを観察しています。このイベントが発生すると、作成したカスタムモデルに請求書のIDを格納しようとしています。ここでMagento 1.9 - 支払いイベントで請求書IDを取得

は、私はイベントからの請求書を取得しています方法は次のとおりです。$invoice = $observer->getEvent()->getInvoice();

私が使用してこれをしようとすると、しかし、:getId()getData('entity_id')getIncrementId()、またはgetOrigData('entity_id')を、私はnull値を受け取ります。

私はインボイスからインクリメントIDを取得するようにも思われません。私はgetIncrementId()getData('increment_id')を使用しました。

私はここで完全に迷っています。

この特定の請求書IDは、後で請求書を読み込んで請求書を作成する際に使用するため、保管することが重要です。

IDを取得してもらえますか?

答えて

1

sales_order_invoice_payイベントを送信する\Mage_Sales_Model_Order_Invoice::payメソッドも\Mage_Sales_Model_Order_Invoice::captureで呼び出されていますので、ご確認の際に請求書が保存されないことがあります。の後にの派遣イベントsales_order_invoice_save_afterを使用してみてください。請求書が保存されます。インクリメントを保存し、IDを設定する必要があります。

+0

ありがとうございます。残念ながら、イベント、 'sales_order_invoice_save_after'は、だから、私はここに途方に暮れてよ理由のようなものだMagentoの1.9 :(では使用できません。 –

+0

私は、モジュールを作成し、自分自身のイベントを作成し、これを書き直したらどう? –

+0

@RyanScottCadyにいます確かに?私は、バージョン1.9.3のメソッド\ Mage_Core_Model_Abstract :: _ afterSaveをチェックしました。それでも動作するはずです。ここではmagentoのインストールがないので、enzでplzをテストします。 – clinical

関連する問題