異なるカスタム言語での請求書の印刷


7

異なる言語の複数のストアビューを持つ1つのWebサイトがあります。すべてのストアビューは同じ製品を持っていますが、ロケールに格納されている異なるフロントエンド言語を使用しています。

ドイツのストアビューから注文すると、Sales => Invoices =>(invoice#)=> PrintドイツのPDF請求書を印刷します。また、すべてのPDF請求書を会計用に英語で印刷できるようにしたいと考えています。どうすればそれを達成できますか?

回答:


5

これに関するいくつかの情報:

言語はのgetPdf()メソッドで設定しMage_Sales_Model_Order_Pdf_Invoiceます。ロケールとストアが無効データに従って設定されていることがわかります。

Mage::app()->getLocale()->emulate($invoice->getStoreId());
Mage::app()->setCurrentStore($invoice->getStoreId());

あなたができることは、この機能を拡張し、おそらく英語の請求書を常に生成する2番目のボタンを管理バックエンドに追加することです。

emulate()はストアID が必要です。英語のストアがない場合、これは機能しません。

この場合Mage::app()->getLocale()->emulate($invoice->getStoreId());、書き換えたメソッドから最初の行を削除しMage::app()->getLocale()->revert();、関数の最後に戻ってロケールをエミュレーション前の最後のロケールに戻すこともできます。


これは私が行った少しの微調整です、私の場合、いくつかの店は異なる言語を持っていましたが、請求書は店が置かれた言語で発行されなければなりませんでした。ここでそれを設定する方法である:switch ($invoice->getStoreId()){case 1: $langcode=1; break; case 2: $langcode=1; break; case 3: $langcode=1; break; case 4: $langcode=5; break; } if ($invoice->getStoreId()) { Mage::app()->getLocale()->emulate($langcode);Mage::app()->setCurrentStore($langcode); }
アンドラーシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.