コードは、明示的に注文を設定する(つまり、注文を作成する) ことをsetId($orderId)
望んでいるように見えます。または、指定された注文を更新するだけの場合、ロード後に必要ないという事実に気付いていないだけのようです。 .entity_id
setId($orderId)
注文を作成しようとしている場合:sales/order
モデルは通常、デフォルトで自動インクリメントされる主キーを使用するため、注文の を明示的に設定することを許可しません。entity_id
既存の注文を更新しようとしている場合: をチェーンsetId($orderId)
から削除しsave()
ます。
次に、その値をデータベースに保存できるようにする場合は、まず属性を使用してsales/order
モデルを拡張する必要があります。xxx
sales/order
カスタム属性を持つようにモデルを拡張するには、いくつかの方法があります。たとえば、app/code/local/Mycompany/Mymodule/sql/myresource/
フォルダーに独自のセットアップ スクリプトを含めることができます。
// Mage_Eav_Model_Entity_Setup
$oInstaller = $this;
// Add EAV attribute
$oInstaller->startSetup();
$oInstaller->addAttribute(
'order',
'my_attribute',
array(
'type' => 'int'
)
);
$oInstaller->endSetup();
// Add flat attribute
if (Mage::getVersion() >= 1.1) {
$oInstaller->startSetup();
$oConnection = $oInstaller->getConnection();
$oConnection->addColumn(
$oInstaller->getTable('sales_flat_order'),
'my_attribute',
'TINYINT(1) NOT NULL'
);
$oInstaller->endSetup();
}