web-dev-qa-db-ja.com

Magento-注文にカスタム属性を追加

注文にカスタムフィールドを追加しようとしています。この時点で、データベースにそのような属性を作成するのに役立つ次の投稿を見つけました: http://fabrizioballiano.net/2011/11/15/create-a-custom-order-attribute-in- magento /

require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;
$attribute  = array(
   'type'          => 'int',
   'backend_type'  => 'text',
   'frontend_input' => 'text',
   'is_user_defined' => true,
   'label'         => 'My Label',
   'visible'       => true,
   'required'      => false,
   'user_defined'  => true,
   'searchable'    => true,
   'filterable'    => true,
   'comparable'    => true,
   'default'       => 0
);
$installer->addAttribute('order', 'special_attribute', $attribute);
$installer->endSetup();

上記のコードを実行していくつかの注文を作成した後、すべての注文をループして、すべての注文のデフォルト値を確認できます。

問題は、必要なデータをこのフィールドにどのように格納できるかということです。このようなデータを取得するにはどうすればよいですか?

ありがとう!

18
MatheusJardimB

これをconfig.xmlのgobalスコープに追加します。次に、見積もりの​​属性を設定するだけです-見積もりから注文への変換プロセスで自動的に注文に転送されます。

<global>
...
    <fieldsets>
        <sales_convert_quote>
            <your_special_attribute>
                <to_order>*</to_order>
            </your_special_attribute>
        </sales_convert_quote>
    </fieldsets>
...
</global>

マジックゲッター/セッターを介して、いつでも属性を取得/設定できます。

$quote->getYourSpecialAttribute()
$order->getYourSpecialAttribute()

$quote->setYourSpecialAttribute()
28
Michael Leiss

billing.phtmlファイルにテキストフィールドを追加し、そのフィールドを見積および注文テーブルに保存したら、属性を表示できます。 [マイアカウント]-> [注文の表示]でフィールドを表示できます。 custom.xmlfieで次の変更を行います。

<?xml version="1.0"?>
<layout version="0.1.0">
    <sales_order_view>
        <reference name="my.account.wrapper">
            <block type="custom/custom_order" name="custom.order" template="custom/order.phtml" after='sales.order.info' />
        </reference>
    </sales_order_view>
</layout>
0
Henry Roger