免責事項: 私は 6 か月間 Magento に触れていません。app/code/core/Mage/Sales/sql/sales_setup/ ディレクトリを見ると、注文テーブルを変更する方法の例が見つかります。たとえば、app/code/core/Mage/Sales/sql/sales_setup/mysql4-upgrade-0.9.12-0.9.13.php の内容は次のとおりです (ヘッダー コメントなし):
$installer = $this;
/* @var $installer Mage_Sales_Model_Mysql4_Setup */
$installer->addAttribute('quote', 'subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'subtotal_with_discount', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal_with_discount', array('type'=>'decimal'));
$this は app/code/core/Mage/Sales/etc/config.xml で見つかったものから初期化され、 config/global/resources/sales_setup/setup/class がこのクラスを調べると、デフォルトのセットアップ クラスである Mage_Eav_Model_Entity_Setup と、いくつかのメソッドをオーバーライドまたは追加します (たとえば、フラット テーブル サポート用)。
最初のポイント (最初の質問) に答えるために、このクラスの addAttribute() メソッドを使用して列を追加できます。2 番目の質問に対する答えは「はい」ですが、Mage_Sales_Model_Mysql4_Setup をセットアップ クラスとして使用することをモジュールの config.xml ファイルで指定する必要があります。これは、前に app/code/core/Mage/Sales/etc/config.xml にあるのと同じ xml 要素を追加することによって行われます (sales_setup を yourmod_setup に置き換えます)。データベースをダンプし、mysql4-install-0.1.0.php ファイルで get_class($this) を使用して動作を確認してから、データベースを復元します。そして、app/code/core/Mage/Sales/sql/sales_setup のファイルに表示される内容からインスピレーションを得て、セットアップ ファイルに書き込みを続けます。問題ないはずです! 2 番目のポイントについては…わかりません… 自動的に機能することを願っています。幸運を!