私はMagentoをまったく使用していないので、バージョン1.6.2.0を使用しています。
独自のカスタム配送方法モジュールを追加しようとしていますが、問題はほとんどありません。私のmagentoにはすでにカスタムチェックアウトモジュールがあります-スリーステップチェックアウト、私がやろうとしているのは、3番目のステップ(支払いと配送)(店舗受け取り場所など)で選択した追加の配送情報を見積もりに保存し、レビューで見積もりを取得することですデータを入力してOrderに保存します。
これを行うためにイベントを使用しています:
checkout_controller_onepage_save_shipping_methodを使用してデータをQuote
に保存しますcheckout_type_onepage_save_orderデータをOrderに保存します
問題は、Quote and Orderにデータを保存できる空き場所がないため、モジュールのインストーラーを作成しました。
$installer = $this;
$installer->startSetup();
$packboxName = array(
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'packboxname',
'input' => '',
'class' => '',
'source' => '',
'global' => 1,
'visible' => true,
'required' => false,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'visible_in_advanced_search' => false,
'unique' => false
);
$installer->addAttribute('order', "packboxname", $packboxName);
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'packboxname', 'varchar(255) DEFAULT NULL');
$installer->addAttribute('quote', "packboxname", $packboxName);
$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'packboxname', 'varchar(255) DEFAULT NULL');
$installer->endSetup();
そして、私はそれを言ってエラーが発生しました
$ installer-> addAttribute('quote'
エンティティIDが間違っています。そこで、DB、テーブル:eav_entity_typeを確認しましたが、「quote」タイプはありませんでした(「order」があったといいのですが)。どうすればよいかわからなかったので、何かをググってみました。チュートリアルを見つけて変更しました。私のインストーラー。
$installer->addEntityType('quote', array(
'entity_model' => 'sales/quote',
'table' =>'sales/quote',
));
これで機能しています。情報を保存できる場所が追加されましたが、友人からaddEntityTypeを使用しないように言われました。必要なものを実現する他の方法はありますか?