すべての製品を在庫レベルで更新した後、構成可能なすべての製品の在庫を設定する最善の方法は何ですか? 最良の方法は、サーバーへの負荷を最小限に抑えて最速を意味することです。
編集:
プログラムでこれを行う方法を言うのを忘れていました!
すべての製品を在庫レベルで更新した後、構成可能なすべての製品の在庫を設定する最善の方法は何ですか? 最良の方法は、サーバーへの負荷を最小限に抑えて最速を意味することです。
編集:
プログラムでこれを行う方法を言うのを忘れていました!
あなたのCatalog > Manage Products
見解では:
グリッドのドロップダウンから[構成可能]を選択します。
グリッドテーブルヘッダーの[すべて選択]をクリックします。
グリッド上部のドロップダウンメニューから[属性の更新]を選択し、[送信]をクリックします。
最後に、次の画面から大量の在庫更新を実行できます。画面の左側にある[在庫]タブをクリックし、すべてを「在庫あり」および「有効」に設定します。
バージョンによっては、管理インターフェースから、設定可能なタイプのすべての製品を選択してから、Actions -> Update Attributes -> Inventory
.
例 (最後のオプションを参照): http://i.imgur.com/x03YN.png
それは、それか、まったく同じことを行う可能性が高い独自のスクリプトを作成することです(validate呼び出しなどを忘れて効果が低下しない場合、天国は、孤立したDBエントリを誤って残し、世界に導くことを禁じます負荷/時間および有効性の観点から。正直なところ、構成可能な製品の数が数万に及ぶ場合、またはサーバーの仕様が非常に貧弱な場合を除き、非常に長い時間がかかるとは想像できません。
編集:
これにより、プログラムで実行できるようになります。ただし、「Stock Item」の Magentos 機能は、その存続期間中に大幅に変更されているため、最初にバージョンでテストして、機能することを確認してください。
// Get all products with a type_id of configurable
$configurable_products =
Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('type_id', 'configurable');
foreach ($configurable_products as $configurable_product) {
$configurable_product->load();
// Set is in stock attribute to 1
$configurable_product->getStockItem()->setIsInStock(1);
try {
$configurable_product->getStockItem()->save();
} catch (Exception $e) {
// Failed to save for some reason...
}
}