Invoice/Shipment/Creditmemo pdf に変更を加えるために Pdf クラスをオーバーライドしようとしましたが、反映されていないようです。
Mymodule/etc/config.xml に次のモジュールを作成しました
<config>
<modules>
<Mymodule_Printtemplates>
<version>0.1.0</version>
</Mymodule_Printtemplates>
</modules>
<global>
<models>
<sales>
<rewrite>
<order_pdf_abstract>Mymodule_Printtemplates_Model_Order_Pdf_Abstract</order_pdf_abstract>
<order_pdf_invoice>Mymodule_Printtemplates_Model_Order_Pdf_Invoice</order_pdf_invoice>
<order_pdf_creditmemo>Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo</order_pdf_Creditmemo>
<order_pdf_shipment>Mymodule_Printtemplates_Model_Order_Pdf_Shipment</order_pdf_shipment>
</rewrite>
</sales>
</models>
</global>
次に、Mymodule/models/ に以下の Model クラスを Abstract.php、Invoice.php、Shipment.php、Creditmemo.php として作成しました。
abstract class Mymodule_Printtemplates_Model_Order_Pdf_Abstract extends Mage_Sales_Model_Order_Pdf_Abstract
class Mymodule_Printtemplates_Model_Order_Pdf_Invoice extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract { ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Shipment extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
class Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo extends Mymodule__Printtemplates_Model_Order_Pdf_Abstract{ ... functions here ...}
モジュールは有効になっています - System>Configuration>Admin>Advanced で確認しましたが、変更が反映されていないようです
一方、Mage/Sales/Model/Order/Pdf/*.php をローカルにコピーペーストして変更すると、変更が反映されます。これは推奨される方法ではないことはわかっていますが、クラスを書き換える方法はうまくいかないようです。
クラスの書き換えによる最初のメソッドの助けをいただければ幸いです。
ありがとう、ラブリーン
本当の問題は、etc/config.xml の Syntax in error でした [終了タグの大文字 C を参照]
Mymodule_Printtemplates_Model_Order_Pdf_Creditmemo
私は問題をデバッグするために以下を使用しました: これを index.php の一番下にドロップします。これは Alans モジュール リストに似ていますが、コードをすばやくコピーして貼り付ける方法です。Magento のすべての XML が 1 つの XML ツリーに結合されることを思い出してください。
header("Content-Type: テキスト/xml"); die(Mage::app()->getConfig()->getNode()->asXML());
次の回答から取得: Config.xml ファイルが Magento で機能しているかどうかを知るにはどうすればよいですか?