無効ステータスが0ではなく2になるのはなぜですか


19

magento開発者への質問:

有効な製品のステータスが1で、無効な製品のステータスが2であるのはなぜですか?通常、「有効」または「アクティブ」またはステータス1を取得するものは何でも、逆は0です。magentoが代わりにここで2を使用する理由はありますか?


よくわからないが、よくわからない。おそらくブール値ではないでしょう。有効または無効以外の状態がありますか?
ジェームズオールウッド

2
@JamesAllwoodいや。Mage_Catalog_Model_Product_Statusは、STATUS_ENABLEDとSTATUS_DISABLEDを定義しますが、それ以外は何も定義しません。
ベヌバード

美しい質問は、私が理解しようとしていたものにうっかり答えてくれました!
SR_Magento 14

回答:


20

まず第一に、値は重要でさえないはずです。
これらの定数Mage_Catalog_Model_Product_Status::STATUS_ENABLEDとをコードで使用しますMage_Catalog_Model_Product_Status::STATUS_DISABLED
私がこれまでに見つけた理由は、製品を作成するときに、ほとんどの場合、製品を有効にすることです。ステータスがdisabledの値がの場合、0現在の値がを介してフォームに渡されるため、これが選択されます$form->setValues($data)
製品を作成するとき$dataは空で、ドロップダウンの場合は0 =空です。
[編集]
何か他のことを思い出しました。
最初、ステータスには別のテーブルがあり、3つの値がありました。

insert  into {$this->getTable('catalog_product_status')}(`status_id`,`status_code`) values (1,'Enabled'),(2,'Disabled'),(3,'Out-of-stock');

さらに追加できます。確認してくださいapp/code/core/Mage/Catalog/sql/catalog_setup/mysql4-install-0.7.0.php
このアプローチは廃止されmysql4-upgrade-0.7.4-0.7.5.php、互換性のためにステータスのIDを保持していると思います。

DROP TABLE IF EXISTS {$this->getTable('catalog_product_status')};

「まず第一に、値も重要ではないはずです。」これは、csvインポートファイルを作成するときです!
jscar

いいえそうではありません。盲目的に値を取得して、インポートで使用できます。
マリウス

OK、私はあなたの元のポイントを今理解していると思う。言い換えると、インポートを行う際に値が何であるかを知ることが重要です:) 1と2であるという事実は直観に反しています。0と1を期待します
jscar

-1

製品ステータス値は、adminの製品管理の「ステータス」選択フィールドから取得されます。「有効」および「無効」は、値1および2の選択フィールドのオプションです。これらはブール値ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.