1

私は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を使用しないように言われました。必要なものを実現する他の方法はありますか?

4

1 に答える 1

0

おそらく、あなたが探しているものはこの回答で見つかると思います: https://stackoverflow.com/a/4389786/823549

その回答で重要な点は、発生したイベントです。sales_convert_quote_to_orderこれは、見積もりが注文に変換されているときに発生し、他のチェックアウト モジュールの動作に関係なく発生します。注文グリッド ページでカスタム列の詳細を確認できるため、この回答も役立ちます。

于 2012-10-06T14:31:37.013 に答える