チェックアウト時に使用されるクーポンコードはsales_flat_order
、顧客がチェックアウトするときに一次注文テーブル()に保存されます。値がない場合、クーポンコードは使用されていません。ただし、管理者のグリッドのデータはsales_flat_order_grid
テーブルから取得されます。非常にトラフィックの多いサイトで特に明らかになるパフォーマンス上の理由から、プライマリオーダーテーブルの代わりにそこから取得されます。
フィルタリングする必要のあるデータがどこにあるか、グリッドのデータがどこから来ているかがわかったので、次に進んでデータを作成します。
最初に行う必要があるのは、テーブルの列の定義に一致するcoupon_code
列をテーブルに追加することです。の列の値は、一致する列があり、キャッシュストレージがフラッシュされると、自動的に入力されます。sales_flat_order_grid
sales_flat_order
coupon_code
sales_flat_order
sales_flat_order_grid
データは注文の保存時に更新されるため、具体的には、新しい注文と管理者を介して更新された注文(注文に関するコメントも)にデータが入力されます。既存の注文の場合は、データアップグレードスクリプトを実行して値をコピーします。
データ/スキーマを配置したら、グリッドにフィルター可能な列を表示させる必要があります。このためにはMage_Adminhtml_Block_Sales_Order_Grid
、カスタムモジュールからクラスを書き直し(コアファイルを直接編集しないでください。後で気になります)、_prepareColumns
列定義を含むメソッドでメソッドをオーバーライドします。
$this->addColumn('coupon_code', array(
'header' => Mage::helper('sales')->__('Coupon Code'),
'index' => 'coupon_code',
));
あなたがMagentoの開発に非常に慣れているのであれば、私はあなたを助け始めたばかりだと思い切って言いたいと思います。ただし、必要な機能を掘り下げて構築するための参照ポイントはたくさんあります。HTH!:)